ska_oso_pdm.entities.sdp
The sdp package contains modules that model SB entities concerned with SDP resource allocation and pipeline workflow configuration. The contents of the module are presented in the diagram below.
An example serialisation of this model to JSON is shown below.
# JSON modelled specifically by entities in the sdp package
...
"sdp_configuration": {
"execution_block": {
"eb_id": "eb-mvp01-20200325-00001",
"max_length": 100,
"context": {"foo": "bar", "baz": 123},
"beams": [
{
"beam_id": "vis0",
"function": "visibilities"
},
{
"beam_id": "pss1",
"search_beam_id": 1,
"function": "pulsar search"
},
{
"beam_id": "pss2",
"search_beam_id": 2,
"function": "pulsar search"
},
{
"beam_id": "pst1",
"timing_beam_id": 1,
"function": "pulsar search"
},
{
"beam_id": "pst2",
"timing_beam_id": 2,
"function": "pulsar search"
},
{
"beam_id": "vlbi",
"vlbi_beam_id": 1,
"function": "vlbi"
}
],
"scan_types": [
{
"scan_type_id": ".default",
"beams": [
{
"beam_id": "vis0",
"channels_id": "vis_channels",
"polarisations_id": "all"
},
{
"beam_id": "pss1",
"field_id": "pss_field_0",
"channels_id": "pulsar_channels",
"polarisations_id": "all"
},
{
"beam_id": "pss2",
"field_id": "pss_field_1",
"channels_id": "pulsar_channels",
"polarisations_id": "all"
},
{
"beam_id": "pst1",
"field_id": "pst_field_0",
"channels_id": "pulsar_channels",
"polarisations_id": "all"
},
{
"beam_id": "pst2",
"field_id": "pst_field_1",
"channels_id": "pulsar_channels",
"polarisations_id": "all"
},
{
"beam_id": "vlbi",
"field_id": "vlbi_field",
"channels_id": "vlbi_channels",
"polarisations_id": "all"
}
]
},
{
"scan_type_id": ".default",
"derive_from": ".default",
"beams": [
{
"beam_id": "vis0",
"field_id": "field_a"
}
]
}
],
"channels": [
{
"channels_id": "vis_channels",
"spectral_windows": [
{
"spectral_window_id": "fsp_1_channels",
"count": 744,
"start": 0,
"stride": 2,
"freq_min": 350000000,
"freq_max": 368000000,
"link_map": [[0,0],[200,1],[744,2],[944,3]]
},
{
"spectral_window_id": "fsp_2_channels",
"count": 744,
"start": 2000,
"stride": 1,
"freq_min": 360000000,
"freq_max": 368000000,
"link_map": [[2000,4],[2200,5]]
},
{
"spectral_window_id": "zoom_window_1",
"count": 744,
"start": 4000,
"stride": 1,
"freq_min": 360000000,
"freq_max": 361000000,
"link_map": [[4000,6],[4200,7]]
}
]
},
{
"channels_id": "pulsar_channels",
"spectral_windows": [
{
"spectral_window_id": "pulsar_fsp_channels",
"count": 744,
"start": 0,
"freq_min": 350000000,
"freq_max": 368000000
}
]
}
],
"polarisations": [
{
"polarisations_id": "all",
"corr_type": ["XX","XY","YY","YX"]
}
]
},
"processing_blocks": [
{
"pb_id": "pb-mvp01-20200325-00001",
"sbi_ids": ["sbi-mvp01-20200325-00001"],
"script": {
"version": "0.1.0",
"name": "vis_receive",
"kind": "realtime"
},
"parameters": {}
},
{
"pb_id": "pb-mvp01-20200325-00002",
"sbi_ids": ["sbi-mvp01-20200325-00001"],
"script": {
"version": "0.1.0",
"name": "test_realtime",
"kind": "realtime"
},
"parameters": {}
},
{
"pb_id": "pb-mvp01-20200325-00003",
"sbi_ids": ["sbi-mvp01-20200325-00001"],
"script": {
"version": "0.1.0",
"name": "ical",
"kind": "batch"
},
"parameters": {},
"dependencies": [
{
"pb_id": "pb-mvp01-20200325-00001",
"kind": ["visibilities"]
}
]
},
{
"pb_id": "pb-mvp01-20200325-00004",
"sbi_ids": ["sbi-mvp01-20200325-00001"],
"script": {
"version": "0.1.0",
"name": "dpreb",
"kind": "batch"
},
"parameters": {},
"dependencies": [
{
"pb_id": "pb-mvp01-20200325-00003",
"kind": ["calibration"]
}
]
}
],
"resources": {
"csp_links": [1,2,3,4],
"receptors": [
"FS4",
"FS8",
"FS16",
"FS17",
"FS22",
"FS23",
"FS30",
"FS31",
"FS32",
"FS33",
"FS36",
"FS52",
"FS56",
"FS57",
"FS59",
"FS62",
"FS66",
"FS69",
"FS70",
"FS72",
"FS73",
"FS78",
"FS80",
"FS88",
"FS89",
"FS90",
"FS91",
"FS98",
"FS108",
"FS111",
"FS132",
"FS144",
"FS146",
"FS158",
"FS165",
"FS167",
"FS176",
"FS183",
"FS193",
"FS200",
"FS345",
"FS346",
"FS347",
"FS348",
"FS349",
"FS350",
"FS351",
"FS352",
"FS353",
"FS354",
"FS355",
"FS356",
"FS429",
"FS430",
"FS431",
"FS432",
"FS433",
"FS434",
"FS465",
"FS466",
"FS467",
"FS468",
"FS469",
"FS470"
],
"receive_nodes": 10
}
}
...
The ska_oso_pdm.entities.common.sdp.sdp_configuration module defines a Python object model for the SDP configuration JSON string passed to CentralNode.AssignResources.
- class SDPConfiguration(*, execution_block: ExecutionBlock | None = None, resources: Resources | None = None, processing_blocks: List[ProcessingBlock] | None = None)[source]
SDPConfiguration captures the SDP resources and pipeline configuration required to process an execution block.
The ska_oso_pdm.entities.common.sdp.sdp_configuration module defines a Python object model for the Execution Block JSON string passed to CentralNode.AssignResources.
- class ExecutionBlock(*, eb_id: str, max_length: float, context: Dict | None = None, beams: List[Beam], scan_types: List[ScanType], channels: List[Channels], polarisations: List[Polarisation])[source]
ExecutionBlock captures the Execution Block resources and pipeline configuration required to process an execution block.
The entities.sdp.processing_block module defines a Python representation of a processing block for SDP configuration.
- class PbDependency(*, pb_id: str, kind: List[str])[source]
Class to hold Dependencies for ProcessingBlock
- class ProcessingBlock(*, pb_id: str, script: Script, sbi_ids: List[str] | None = None, parameters: Dict | None = None, dependencies: List[PbDependency] | None = None)[source]
Class to hold ProcessingBlock configuration
- class Script(*, name: str, kind: ScriptKind, version: str)[source]
Class to hold Script for ProcessingBlock
The entities.sdp.resources module defines a Python representation of a Resources for SDP configuration.
- class Resources(*, csp_links: List[int] | None = None, receptors: List[str] | None = None, receive_nodes: int | None = None)[source]
Class to hold SDP Resources
The entities.sdp.beam module defines a Python representation of beams for SDP configuration.
- class Beam(*, beam_id: str, function: BeamFunction, search_beam_id: int | None = None, timing_beam_id: int | None = None, vlbi_beam_id: int | None = None)[source]
Class that defines an SDP Beam configuration.
The entities.sdp.channels module defines a Python representation of a channel configuration for SDP configuration.
- class Channels(*, channels_id: str, spectral_windows: List[SpectralWindow])[source]
Class to hold Channel configuration
- class SpectralWindow(*, spectral_window_id: str, count: int, start: int, freq_min: float, freq_max: float, stride: int | None = None, link_map: List[Tuple] | None = None)[source]
Class to hold Spectral Windows configuration
The entities.sdp.scan_type module defines a Python representation of a scan type for SDP configuration.
- class BeamMapping(*, beam_id: str, field_id: str | None = None, channels_id: str | None = None, polarisations_id: str | None = None)[source]
Class to hold mapping of beam parameters to scans
- class ScanType(*, scan_type_id: str, derive_from: str | None = None, beams: List[BeamMapping] | None = None)[source]
Class to hold ScanType configuration
The entities.sdp.polarisation module defines a Python representation of polarisations for SDP configuration.