"""
The ska_oso_pdm.sb_definition.scan_definition module defines
simple Python representation of a single observation scan
"""
__all__ = ["ScanDefinition"]
from ska_oso_pdm._shared import (
PdmObject,
ScanDefinitionID,
TargetID,
TerseStrEnum,
TimedeltaMs,
)
from .csp.csp_configuration import CSPConfigurationID
from .dish.dish_allocation import DishAllocationID
from .mccs.mccs_allocation import MCCSAllocationID
from .sdp import ScanTypeID
class PointingCorrection(TerseStrEnum):
"""
Operation to apply to the pointing correction model.
MAINTAIN: continue applying the current pointing correction model
UPDATE: wait for (if necessary) and apply new pointing calibration solution
RESET: reset the applied pointing correction to the pointing model defaults
"""
MAINTAIN = "MAINTAIN"
UPDATE = "UPDATE"
RESET = "RESET"
[docs]
class ScanDefinition(PdmObject):
"""
ScanDefinition represents the instrument configuration for a single scan.
:param scan_definition_id: the unique ID for this scan definition
:param scan_duration_ms: scan duration
:target_ref: ID of target to observe
:mccs_allocation_ref: ID of MCCS Config
:target_beam_configuration_refs: SKA LOW sub-array beam configurations to apply during this scan.
:dish_allocation_ref: SKA MID dish configuration ID during this scan.
:scan_type_ref: SKA MID scan type ID
:csp_configuration_ref: SKA MID Central Signal Processor ID
:pointing_correction: operation to apply to the pointing correction model.
"""
scan_definition_id: ScanDefinitionID | None = None
scan_duration_ms: TimedeltaMs
target_ref: TargetID | None = None
mccs_allocation_ref: MCCSAllocationID | None = None
dish_allocation_ref: DishAllocationID | None = None
scan_type_ref: ScanTypeID | None = None
csp_configuration_ref: CSPConfigurationID | None = None
scan_intent: str | None = None
pointing_correction: PointingCorrection = PointingCorrection.MAINTAIN