Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spectral-cube uses astropy.coordinates.angle_utilities which is removed in Astropy 6 #892

Closed
olebole opened this issue Nov 28, 2023 · 6 comments · Fixed by #893
Closed

Comments

@olebole
Copy link
Contributor

olebole commented Nov 28, 2023

With Astropy 6.0, the CI tests of spectral-cube no longer pass; there are now many failures like

______________________ test_casa_read_basic[False-False] _______________________

memmap = False, bigendian = False

    @pytest.mark.parametrize(('memmap', 'bigendian'), product((False, True), (False, True)))
    def test_casa_read_basic(memmap, bigendian):
        […]
>       cube.moment0()

/usr/lib/python3/dist-packages/spectral_cube/tests/test_casafuncs.py:133: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3/dist-packages/spectral_cube/spectral_cube.py:1702: in moment0
    return self.moment(axis=axis, order=0, how=how)
/usr/lib/python3/dist-packages/spectral_cube/dask_spectral_cube.py:1069: in moment
    pix_cen = self._pix_cen()[axis]
/usr/lib/python3/dist-packages/spectral_cube/utils.py:18: in wrapper
    self._cache[(func, args)] = func(self, *args)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = DaskSpectralCube with shape=(3, 4, 5) and unit=Jy / beam and chunk size (3, 4, 5):
 n_x:      5  type_x: RA---SIN  uni...9.934094 deg:   29.935778 deg
 n_s:      3  type_s: FREQ      unit_s: Hz     range: 1421917021.146 Hz:1421929254.325 Hz

    @cached
    def _pix_cen(self):
        """…"""
        # Start off by extracting the world coordinates of the pixels
        _, lat, lon = self.world[0, :, :]
        spectral, _, _ = self.world[:, 0, 0]
        spectral -= spectral[0] # offset from first pixel
    
        # Convert to radians
        lon = np.radians(lon)
        lat = np.radians(lat)
    
        # Find the dx and dy arrays
>       from astropy.coordinates.angle_utilities import angular_separation
E       ModuleNotFoundError: No module named 'astropy.coordinates.angle_utilities'

/usr/lib/python3/dist-packages/spectral_cube/spectral_cube.py:1456: ModuleNotFoundError

full test log

Reason is that angle_utilities was deprecated in Astropy 4.2 and removed in 6.0:

Removed deprecated angle parsing and formatting utilities from angle_utilities. Use the functions from angle_formats instead. [#14675]

@keflavich
Copy link
Contributor

See also astropy/astropy#15666

keflavich added a commit that referenced this issue Dec 5, 2023
* fix deprecated import path

* Drop "docs" builds based on changed in the tox file

* Update rtd build to fix it

* Change to a normal python install

---------

Co-authored-by: e-koch <koch.eric.w@gmail.com>
@NithyaSathyan
Copy link

While doing FERMI LAT data analysis using fermipy , I encountered similar error which is given below :
WARNING: FITSFixedWarning: RADECSYS= 'FK5 '
the RADECSYS keyword is deprecated, use RADESYSa. [astropy.wcs.wcs]
WARNING: FITSFixedWarning: 'datfix' made the change 'Set DATEREF to '2001-01-01T00:01:04.184' from MJDREF.
Set MJD-OBS to 54682.655283 from DATE-OBS.
Set MJD-END to 59852.000000 from DATE-END'. [astropy.wcs.wcs]
Traceback (most recent call last):
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/fermipy/gtanalysis.py", line 5196, in setup
self._bexp = Map.read(self.files['bexpmap'], hdu=hpxhduname)
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/maps/core.py", line 240, in read
return Map.from_hdulist(
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/maps/core.py", line 308, in from_hdulist
map_type = Map._get_map_type(hdulist, hdu)
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/maps/core.py", line 339, in _get_map_type
header = hdu_list[hdu_name].header
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/astropy/io/fits/hdu/hdulist.py", line 390, in getitem
super().getitem, self._positive_index_of(key)
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/astropy/io/fits/hdu/hdulist.py", line 857, in _positive_index_of
index = self.index_of(key)
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/astropy/io/fits/hdu/hdulist.py", line 839, in index_of
raise KeyError(f"Extension {key!r} not found.")
KeyError: "Extension 'HPXEXPOSURES' not found."

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/dell/data backup ubuntu dell mint/Documents/low_z_BLLACs/1ES1959+650/xx.py", line 3, in
gta.setup()
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/fermipy/gtanalysis.py", line 1087, in setup
c.setup(overwrite=overwrite)
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/fermipy/gtanalysis.py", line 5198, in setup
self._bexp = Map.read(self.files['bexpmap'])
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/maps/core.py", line 240, in read
return Map.from_hdulist(
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/maps/core.py", line 315, in from_hdulist
return cls_out.from_hdulist(
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/maps/wcs/core.py", line 142, in from_hdulist
wcs_map = cls.from_hdu(hdu, hdu_bands, format=format)
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/maps/wcs/ndmap.py", line 88, in from_hdu
geom = WcsGeom.from_header(hdu.header, hdu_bands, format=format)
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/maps/wcs/geom.py", line 485, in from_header
axes = MapAxes.from_table_hdu(hdu_bands, format=format)
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/maps/axes.py", line 1962, in from_table_hdu
return cls.from_table(table, format=format)
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/maps/axes.py", line 1980, in from_table
from gammapy.irf.io import IRF_DL3_AXES_SPECIFICATION
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/irf/init.py", line 6, in
from .background import Background2D, Background3D
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/irf/background.py", line 10, in
from .core import IRF
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/irf/core.py", line 17, in
from .io import IRF_DL3_HDU_SPECIFICATION, IRF_MAP_HDU_SPECIFICATION, gadf_is_pointlike
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/irf/io.py", line 4, in
from gammapy.data.hdu_index_table import HDUIndexTable
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/data/init.py", line 3, in
from .data_store import DataStore
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/data/data_store.py", line 15, in
from .observations import Observation, ObservationChecker, Observations
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/data/observations.py", line 22, in
from .event_list import EventList, EventListChecker
File "/home/dell/miniconda3/envs/fermipy/lib/python3.9/site-packages/gammapy/data/event_list.py", line 8, in
from astropy.coordinates.angle_utilities import angular_separation
ModuleNotFoundError: No module named 'astropy.coordinates.angle_utilities'

@Firestar-Reimu
Copy link

Firestar-Reimu commented May 9, 2024

Same issue, still not fixed?

Sorry, the spectral-cube on conda-forge is still 0.6.3, it needs to be updated to 0.6.5

Do you maintain the conda-forge package?

@keflavich
Copy link
Contributor

@Firestar-Reimu
Copy link

Firestar-Reimu commented May 9, 2024

Quick Reply, Thanks!

I can change /home/firestar/.miniconda/lib/python3.12/site-packages/spectral_cube/spectral_cube.py manually for now.

Bash exited with code '1'.

I still do not know why it cannot be merged, what a pity.

@Firestar-Reimu
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants