Source code for asdf_astropy.converters.transform.projections
from .core import TransformConverterBase, import_type, parameter_to_value
[docs]
class ProjectionConverter(TransformConverterBase):
"""
ASDF support for serializing most projection models.
An instance of this class must be created for each
projection.
Parameters
----------
tags : list of str
Tag patterns.
pix2sky_type_name : str
Fully-qualified type name of the projection's Pix2Sky model.
sky2pix_type_name : str
Fully-qualified type name of the projection's Sky2Pix model.
"""
def __init__(self, tags, pix2sky_type_name, sky2pix_type_name):
self._tags = tags
self._pix2sky_type_name = pix2sky_type_name
self._sky2pix_type_name = sky2pix_type_name
self._pix2sky_type = None
self._sky2pix_type = None
@property
def tags(self):
return self._tags
@property
def types(self):
return [self._pix2sky_type_name, self._sky2pix_type_name]
@property
def pix2sky_type(self):
# Delay import until the model class is needed to improve speed
# of loading the extension.
if self._pix2sky_type is None:
self._pix2sky_type = import_type(self._pix2sky_type_name)
return self._pix2sky_type
@property
def sky2pix_type(self):
# Delay import until the model class is needed to improve speed
# of loading the extension.
if self._sky2pix_type is None:
self._sky2pix_type = import_type(self._sky2pix_type_name)
return self._sky2pix_type