Source code for esis.optics._requirements._requirements
import dataclasses
import numpy as np
import astropy.units as u
import optika
__all__ = [
"Requirements",
]
[docs]
@dataclasses.dataclass(repr=False)
class Requirements(
optika.mixins.Printable,
):
"""The requirements of the ESIS optical system."""
resolution_spatial: u.Quantity
"""The required spatial resolution of the instrument."""
resolution_spectral: u.Quantity
"""The required spectral resolution of the instrument."""
fov: u.Quantity
"""The required field of view of the instrument."""
snr: u.Quantity
"""The required signal-to-noise ratio of the instrument."""
cadence: u.Quantity
"""The required cadence of the instrument."""
length_observation: u.Quantity
"""The required amount of observing time."""
@property
def resolution_angular(self) -> u.Quantity:
"""The angular resolution of the instrument."""
return np.arctan2(self.resolution_spatial, 1 * u.AU).to(u.arcsec)