ilikecubesnstuff / commensurability

Packages for calculating orbit commensurabilities.
https://commensurability.readthedocs.io/en/latest/
MIT License
2 stars 2 forks source link

Quickstart error #24

Open TomWagg opened 2 weeks ago

TomWagg commented 2 weeks ago

Installation worked well but when I tried to run the quickstart code using gala I got the following error:

ValueError: Tessellation can only be performed on a 2D array of shape (npoints, ndim)

I'll copy the full traceback in a comment below. I wonder if the recent release of Gala v1.9 could have affected this?

https://github.com/openjournals/joss-reviews/issues/7009

TomWagg commented 2 weeks ago
with pidgey_chunksize=1:   0%|                   | 0[/2000](http://localhost:8888/2000) [00:00<?, ?it[/s](http://localhost:8888/s)]
  0%|                                               | 0[/1](http://localhost:8888/1) [00:00<?, ?it[/s](http://localhost:8888/s)]
with pidgey_chunksize=1:   0%|                   | 0[/2000](http://localhost:8888/2000) [00:00<?, ?it[/s](http://localhost:8888/s)]

---------------------------------------------------------------------------
RemoteTraceback                           Traceback (most recent call last)
RemoteTraceback: 
"""
Traceback (most recent call last):
  File "[/home/tom/miniconda3/envs/joss/lib/python3.11/multiprocessing/pool.py", line 125](http://localhost:8888/home/tom/miniconda3/envs/joss/lib/python3.11/multiprocessing/pool.py#line=124), in worker
    result = (True, func(*args, **kwds))
                    ^^^^^^^^^^^^^^^^^^^
  File "[/home/tom/miniconda3/envs/joss/lib/python3.11/site-packages/commensurability/analysis.py", line 498](http://localhost:8888/home/tom/miniconda3/envs/joss/lib/python3.11/site-packages/commensurability/analysis.py#line=497), in __eval__
    return Tessellation(orbit, incremental=False).measure
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "[/home/tom/miniconda3/envs/joss/lib/python3.11/site-packages/commensurability/tessellation/constructor.py", line 80](http://localhost:8888/home/tom/miniconda3/envs/joss/lib/python3.11/site-packages/commensurability/tessellation/constructor.py#line=79), in Tessellation
    raise ValueError(
ValueError: Tessellation can only be performed on a 2D array of shape (npoints, ndim)
"""

The above exception was the direct cause of the following exception:

ValueError                                Traceback (most recent call last)
Cell In[5], line 4
      1 # tessellation needs to know the pattern speed used to define the potential
      2 # so that it can perform its analysis in the co-rotating frame
      3 omega = 30 * u.km [/](http://localhost:8888/) u.s [/](http://localhost:8888/) u.kpc
----> 4 tanal = TessellationAnalysis(initial_condition, values, potential_definition,
      5                              dt, steps, pattern_speed=omega)

File [~/miniconda3/envs/joss/lib/python3.11/site-packages/commensurability/analysis.py:358](http://localhost:8888/home/tom/miniconda3/envs/joss/lib/python3.11/site-packages/commensurability/analysis.py#line=357), in MPAnalysisBase.__init__(self, ic_function, values, potential_function, dt, steps, pattern_speed, backend, progressbar, pidgey_chunksize, mp_chunksize, _blank_measures)
    345 super().__init__(
    346     ic_function,
    347     values,
   (...)
    355     _blank_measures=True,
    356 )
    357 if not _blank_measures:
--> 358     self._construct_image_with_mp(pidgey_chunksize, mp_chunksize, progressbar)

File [~/miniconda3/envs/joss/lib/python3.11/site-packages/commensurability/analysis.py:384](http://localhost:8888/home/tom/miniconda3/envs/joss/lib/python3.11/site-packages/commensurability/analysis.py#line=383), in MPAnalysisBase._construct_image_with_mp(self, pidgey_chunksize, mp_chunksize, progressbar)
    376 orbits = self.backend.compute_orbit(
    377     coords,
    378     self.potential,
   (...)
    381     pattern_speed=self.pattern_speed,
    382 )
    383 with Pool() as p:
--> 384     values = list(
    385         tqdm(
    386             p.imap(self.__eval__, orbits, chunksize=mp_chunksize),
    387             total=pidgey_chunksize,
    388             leave=False,
    389         )
    390     )
    391 for pixel, value in zip(pixels, values):
    392     self.measures[pixel] = value

File [~/miniconda3/envs/joss/lib/python3.11/site-packages/tqdm/std.py:1181](http://localhost:8888/home/tom/miniconda3/envs/joss/lib/python3.11/site-packages/tqdm/std.py#line=1180), in tqdm.__iter__(self)
   1178 time = self._time
   1180 try:
-> 1181     for obj in iterable:
   1182         yield obj
   1183         # Update and possibly print the progressbar.
   1184         # Note: does not call self.update(1) for speed optimisation.

File [~/miniconda3/envs/joss/lib/python3.11/multiprocessing/pool.py:873](http://localhost:8888/home/tom/miniconda3/envs/joss/lib/python3.11/multiprocessing/pool.py#line=872), in IMapIterator.next(self, timeout)
    871 if success:
    872     return value
--> 873 raise value

ValueError: Tessellation can only be performed on a 2D array of shape (npoints, ndim)
nstarman commented 1 week ago

I'm getting the same error.