diff --git a/jdaviz/app.py b/jdaviz/app.py index 73f44c87a7..f137b49666 100644 --- a/jdaviz/app.py +++ b/jdaviz/app.py @@ -121,6 +121,9 @@ def to_unit(self, data, cid, values, original_units, target_units): else: spectral_values = spec.spectral_axis + # By default include spectral density equivalency + eqv = u.spectral_density(spectral_values) + # Ensure a spectrum passed through Spectral Extraction plugin if '_pixel_scale_factor' in spec.meta and len(values) != 2: diff --git a/jdaviz/tests/test_app.py b/jdaviz/tests/test_app.py index 9a962184b9..500a15367c 100644 --- a/jdaviz/tests/test_app.py +++ b/jdaviz/tests/test_app.py @@ -286,3 +286,16 @@ def test_to_unit(cubeviz_helper): ([1, 2] * original_units) .to_value(target_units, equivalencies=u.spectral_density(cube.spectral_axis[0]))) + + # Change from Fnu to Flam/sr (with values shape matching spectral axis) + + values = np.ones(3001) + original_units = u.MJy + target_units = u.erg / u.cm**2 / u.s / u.AA / u.sr + + new_values = uc.to_unit(cubeviz_helper, data, cid, values, original_units, target_units) + + assert np.allclose(new_values, + (values * original_units) + .to_value(target_units, + equivalencies=u.spectral_density(cube.spectral_axis)))