Source code for esis.optics._sensors._sensors
import dataclasses
import astropy.units as u
import named_arrays as na
import optika
import msfc_ccd
from .. import mixins
__all__ = [
"Sensor",
]
[docs]
@dataclasses.dataclass(repr=False)
class Sensor(
optika.mixins.Printable,
optika.mixins.Rollable,
optika.mixins.Yawable,
optika.mixins.Pitchable,
optika.mixins.Translatable,
mixins.CylindricallyTransformable,
msfc_ccd.TeledyneCCD230,
):
"""A model of the CCD sensors used to detect light."""
distance_radial: u.Quantity | na.AbstractScalar = 0 * u.mm
"""The distance between the axis of symmetry and the center of the detector."""
azimuth: u.Quantity | na.AbstractScalar = 0 * u.deg
"""The angle that the detector has been rotated about the axis of symmetry."""
translation: u.Quantity | na.AbstractCartesian3dVectorArray = 0 * u.mm
"""An additional translation vector."""
pitch: u.Quantity | na.AbstractScalar = 0 * u.deg
"""The pitch angle of this sensor."""
yaw: u.Quantity | na.AbstractScalar = 0 * u.deg
"""The yaw angle of this sensor."""
roll: u.Quantity | na.AbstractScalar = 0 * u.deg
"""The roll angle of this sensor."""
position_image: u.Quantity | na.AbstractCartesian2dVectorArray = 0 * u.mm
"""The position of the center of the FOV on the sensor for the target wavelength."""