Source code for gwcs.coordinate_frames._frame
# Licensed under a 3-clause BSD style license - see LICENSE.rst
from astropy import units as u
from ._core import CoordinateFrame
__all__ = ["Frame2D"]
[docs]
class Frame2D(CoordinateFrame):
"""
A 2D coordinate frame.
Parameters
----------
axes_order : tuple of int
A dimension in the input data that corresponds to this axis.
unit : list of astropy.units.Unit
Unit for each axis.
axes_names : list
Names of the axes in this frame.
name : str
Name of this frame.
"""
def __init__(
self,
axes_order=(0, 1),
unit=(u.pix, u.pix),
axes_names=("x", "y"),
name=None,
axes_type=None,
axis_physical_types=None,
):
if axes_type is None:
axes_type = ["SPATIAL", "SPATIAL"]
pht = axis_physical_types or self._default_axis_physical_types(
axes_names, axes_type
)
super().__init__(
naxes=2,
axes_type=axes_type,
axes_order=axes_order,
name=name,
axes_names=axes_names,
unit=unit,
axis_physical_types=pht,
)
def _default_axis_physical_types(self, axes_names, axes_type):
if axes_names is not None and all(axes_names):
ph_type = axes_names
else:
ph_type = axes_type
return tuple(f"custom:{t}" for t in ph_type)