Source code for asdf_astropy.converters.coordinates.representation
from asdf.extension import Converter
[docs]
class RepresentationConverter(Converter):
tags = ("tag:astropy.org:astropy/coordinates/representation-*",)
types = (
"astropy.coordinates.representation.CartesianDifferential",
"astropy.coordinates.representation.CartesianRepresentation",
"astropy.coordinates.representation.CylindricalDifferential",
"astropy.coordinates.representation.CylindricalRepresentation",
"astropy.coordinates.representation.PhysicsSphericalDifferential",
"astropy.coordinates.representation.PhysicsSphericalRepresentation",
"astropy.coordinates.representation.RadialDifferential",
"astropy.coordinates.representation.RadialRepresentation",
"astropy.coordinates.representation.SphericalCosLatDifferential",
"astropy.coordinates.representation.SphericalDifferential",
"astropy.coordinates.representation.SphericalRepresentation",
"astropy.coordinates.representation.UnitSphericalCosLatDifferential",
"astropy.coordinates.representation.UnitSphericalDifferential",
"astropy.coordinates.representation.UnitSphericalRepresentation",
# classes were moved in https://github.com/astropy/astropy/pull/14792
"astropy.coordinates.representation.cartesian.CartesianDifferential",
"astropy.coordinates.representation.cartesian.CartesianRepresentation",
"astropy.coordinates.representation.cylindrical.CylindricalDifferential",
"astropy.coordinates.representation.cylindrical.CylindricalRepresentation",
"astropy.coordinates.representation.spherical.PhysicsSphericalDifferential",
"astropy.coordinates.representation.spherical.PhysicsSphericalRepresentation",
"astropy.coordinates.representation.spherical.RadialDifferential",
"astropy.coordinates.representation.spherical.RadialRepresentation",
"astropy.coordinates.representation.spherical.SphericalCosLatDifferential",
"astropy.coordinates.representation.spherical.SphericalDifferential",
"astropy.coordinates.representation.spherical.SphericalRepresentation",
"astropy.coordinates.representation.spherical.UnitSphericalRepresentation",
"astropy.coordinates.representation.spherical.UnitSphericalDifferential",
"astropy.coordinates.representation.spherical.UnitSphericalCosLatDifferential",
)
[docs]
def to_yaml_tree(self, obj, tag, ctx):
components = {}
for c in obj.components:
value = getattr(obj, "_" + c, None)
if value is not None:
components[c] = value
return {
"type": type(obj).__name__,
"components": components,
}
[docs]
def from_yaml_tree(self, node, tag, ctx):
from astropy.coordinates import representation
return getattr(representation, node["type"])(**node["components"])