Source code for gwcs.coordinate_frames._stokes

from astropy import units as u
from astropy.coordinates import StokesCoord

from ._axis import AxisType
from ._base import WorldAxisObjectClass, WorldAxisObjectComponent
from ._core import CoordinateFrame

__all__ = ["StokesFrame"]


[docs] class StokesFrame(CoordinateFrame): """ A coordinate frame for representing Stokes polarisation states. Parameters ---------- name : str Name of this frame. axes_order : tuple A dimension in the data that corresponds to this axis. """ def __init__( self, axes_order: tuple[int] = (0,), axes_names: tuple[str] = ("stokes",), name: str | None = None, axis_physical_types: tuple[str | None] | None = None, ) -> None: super().__init__( naxes=1, axes_type=(AxisType.STOKES,), axes_order=axes_order, name=name, axes_names=axes_names, unit=(u.one,), axis_physical_types=axis_physical_types, ) def _default_axis_physical_types( self, axes_type: tuple[AxisType | str, ...] ) -> tuple[str, ...]: return ("phys.polarization.stokes",) @property def world_axis_object_classes(self) -> dict[str, WorldAxisObjectClass]: return { "stokes": WorldAxisObjectClass( StokesCoord, (), {}, ) } @property def _native_world_axis_object_components(self) -> list[WorldAxisObjectComponent]: return [WorldAxisObjectComponent("stokes", 0, "value")]