From 40a168a01b5b9f40e6200b79ef562a854e39b693 Mon Sep 17 00:00:00 2001 From: Drew Leonard Date: Mon, 18 Mar 2024 11:35:48 +0000 Subject: [PATCH] Fix inverse preservation on yaml export and some tidying --- dkist/io/asdf/converters/models.py | 20 ++------------------ dkist/io/asdf/tests/test_models.py | 2 +- dkist/wcs/models.py | 1 + 3 files changed, 4 insertions(+), 19 deletions(-) diff --git a/dkist/io/asdf/converters/models.py b/dkist/io/asdf/converters/models.py index d0e31f2a..e962be59 100644 --- a/dkist/io/asdf/converters/models.py +++ b/dkist/io/asdf/converters/models.py @@ -23,25 +23,9 @@ class VaryingCelestialConverter(TransformConverterBase): ] def select_tag(self, obj, tags, ctx): - from dkist.wcs.models import (InverseVaryingCelestialTransform, - InverseVaryingCelestialTransform2D, - InverseVaryingCelestialTransform3D, - VaryingCelestialTransform, VaryingCelestialTransform2D, - VaryingCelestialTransform3D) - - if isinstance( - obj, - (VaryingCelestialTransform, - VaryingCelestialTransform2D, - VaryingCelestialTransform3D) - ): + if not obj.is_inverse: return "asdf://dkist.nso.edu/tags/varying_celestial_transform-1.1.0" - elif isinstance( - obj, - (InverseVaryingCelestialTransform, - InverseVaryingCelestialTransform2D, - InverseVaryingCelestialTransform3D) - ): + elif obj.is_inverse: return "asdf://dkist.nso.edu/tags/inverse_varying_celestial_transform-1.1.0" else: raise ValueError(f"Unsupported object: {obj}") # pragma: no cover diff --git a/dkist/io/asdf/tests/test_models.py b/dkist/io/asdf/tests/test_models.py index e0e1635a..6304f440 100644 --- a/dkist/io/asdf/tests/test_models.py +++ b/dkist/io/asdf/tests/test_models.py @@ -49,7 +49,7 @@ def test_roundtrip_vct_2d(): new_vct = roundtrip_object(vct) assert isinstance(new_vct, VaryingCelestialTransform2D) new_ivct = roundtrip_object(vct.inverse) - assert isinstance(new_ivct, InverseVaryingCelestialTransform2D) + assert isinstance(new_ivct, VaryingCelestialTransform2D) assert u.allclose(u.Quantity(new_vct.crpix), (5, 5) * u.pix) assert u.allclose(u.Quantity(new_ivct.crpix), (5, 5) * u.pix) diff --git a/dkist/wcs/models.py b/dkist/wcs/models.py index 1a2c8b05..6944d26d 100755 --- a/dkist/wcs/models.py +++ b/dkist/wcs/models.py @@ -529,6 +529,7 @@ def varying_celestial_transform_from_tables( pc_table=pc_table, lon_pole=lon_pole, projection=projection, + inverse=inverse ) # For slit models we duplicate one of the spatial pixel inputs to also be