import dataclasses
import enum
from astropy.coordinates import SkyCoord
from astropy.units import Quantity
from ska_ost_senscalc.mid_utilities import Weighting
from ska_ost_senscalc.subarray import LOWArrayConfiguration
[docs]@dataclasses.dataclass
class CalculatorResult:
"""
This dataclass represents the internal result of a single Calculation.
"""
sensitivity: float
units: str
[docs]class LowSpectralMode(enum.Enum):
"""
Enumeration for calculator modes supported by the LOW calculator.
"""
LINE = "line"
CONTINUUM = "continuum"
[docs]@dataclasses.dataclass
class WeightingQuery:
"""
WeightingQuery is a typed Python encapsulation of the arguments required
for a LOW weighting calculation.
"""
spectral_mode: LowSpectralMode
freq_centre: Quantity
pointing_centre: SkyCoord
subarray_configuration: LOWArrayConfiguration
weighting_mode: Weighting
robustness: int | None = None