Source code for ska_ost_senscalc.low.model

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 CalculatorInput: """ This dataclass represents the internal model of the Calculator. While currently it is the same as the API parameters, this will not necessarily be the case as the functionality expands. """ _: dataclasses.KW_ONLY freq_centre: float bandwidth: float num_stations: int pointing_centre: str duration: float
[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