Source code for ctao_datamodel.models.sciops
"""
Implementation of Science Operations data models.
* SchedulingBlock Model
* ...
"""
__all__ = [
"ObservingMode",
"SchedulingBlockType",
"PointingMode",
"TrackingMode",
"SkyQuality",
"SkyBrightness",
]
from enum import StrEnum, auto, nonmember
_NAMESPACE = "CTAO.SciOps"
[docs]
class ObservingMode(StrEnum):
"""How pointing changes within a ScheduleingBlock."""
_namespace = nonmember(_NAMESPACE)
WOBBLE = auto() #: regular offsets from central point
ONOFF = auto() #: On-source data taken pre- or proceeding Off-source
GRID = auto() #: regular pointings on a grid covering a region
CUSTOM = auto() #: Other
[docs]
class SchedulingBlockType(StrEnum):
"""Purpose of this scheduling block."""
_namespace = nonmember(_NAMESPACE)
OBSERVATION = auto() #: Scientific data acquisition
CALIBRATION = auto() #: Calibration activities
ENGINEERING = auto() #: Engineerng activities
[docs]
class PointingMode(StrEnum):
"""How telecopes within the subarray are pointed relative to each other."""
_namespace = nonmember(_NAMESPACE)
PARALLEL = auto() #: Telescopes aligned to same pointing
VERGENT = auto() #: Telescopes diverging or converging on a point
[docs]
class TrackingMode(StrEnum):
"""Coordinate system tracked by the nominal pointing position."""
_namespace = nonmember(_NAMESPACE)
FIXED_ICRS = auto() #: Follows a Right-ascension/Declination coordinate
FIXED_HORIZONTAL = auto() #: Follows an Azimuth/Elevation coordinate
OTHER = auto() #: Other
# from cite{ctao-sciops-concept}
[docs]
class SkyBrightness(StrEnum):
r"""
Average level of night-sky-background light during an observation.
*Dark*: corresponding to moon below the horizon and
sun elevation of less than −18 degrees for an ambient brightness of ≈ $0.24
ph\,ns^{−1}\,cm^{−2}\,sr^{−1}$ away from the Galactic plane. *Grey*:
corresponding to moon above the horizon for an increase in ambient NSB of up
to 5x the dark sky case. *Bright*: corresponding to moon above the horizon
for an increase in ambient NSB of up to 30x the dark sky case.
"""
_namespace = nonmember(_NAMESPACE)
DARK = auto()
GRAY = auto()
BRIGHT = auto()
# from cite{ctao-sciops-concept}
[docs]
class SkyQuality(StrEnum):
"""
Broad categorisation of sky quality.
For the purposes of scheduling or rough observation selection. *A*: no
clouds detectable within observable sky, very low aerosol optical depth
(AOD<0.1). *B*: intermediate aerosol optical depth (0.1<AOD<0.2) and/or
clouds visible in the sky but not within the target field of view (FoV).
*C*: clouds detectable within the FoV or AOD>0.2.
"""
_namespace = nonmember(_NAMESPACE)
A = auto()
B = auto()
C = auto()