ska_oso_pdm.sb_definition.sdp
The ska_oso_pdm.sb_definition.sdp package contains modules that model SB entities concerned with SDP resource allocation and pipeline workflow configuration. The contents of the package are presented in the diagram below.
Class diagram for the sdp package
An example serialisation of this model to JSON is shown below.
"sdp_configuration": {
"execution_block": {
"eb_id": "eb-mvp01-20200325-00001",
"max_length": 100.0,
"context": {
"foo": "bar",
"baz": 123
},
"beams": [
{
"beam_id": "vis0",
"function": "visibilities"
},
{
"beam_id": "pst1",
"timing_beam_id": 1,
"function": "pulsar timing"
},
{
"beam_id": "pst2",
"timing_beam_id": 2,
"function": "pulsar timing"
}
],
"scan_types": [
{
"scan_type_id": ".default",
"beams": [
{
"beam_ref": "vis0",
"channels_ref": "vis_channels",
"polarisations_ref": "all"
},
{
"beam_ref": "pst1",
"field_ref": "M83",
"channels_ref": "pulsar_channels",
"polarisations_ref": "all"
},
{
"beam_ref": "pst2",
"field_ref": "Polaris Australis",
"channels_ref": "pulsar_channels",
"polarisations_ref": "all"
}
]
},
{
"scan_type_id": ".default",
"derive_from": ".default",
"beams": [
{
"beam_ref": "vis0",
"field_ref": "M83"
}
]
}
],
"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_refs": [
"sbi-mvp01-20200325-00001"
],
"script": {
"version": "0.1.0",
"name": "vis_receive",
"kind": "realtime"
}
},
{
"pb_id": "pb-mvp01-20200325-00002",
"sbi_refs": [
"sbi-mvp01-20200325-00001"
],
"script": {
"version": "0.1.0",
"name": "test_realtime",
"kind": "realtime"
}
},
{
"pb_id": "pb-mvp01-20200325-00003",
"sbi_refs": [
"sbi-mvp01-20200325-00001"
],
"script": {
"version": "0.1.0",
"name": "ical",
"kind": "batch"
},
"dependencies": [
{
"pb_ref": "pb-mvp01-20200325-00001",
"kind": [
"visibilities"
]
}
]
},
{
"pb_id": "pb-mvp01-20200325-00004",
"sbi_refs": [
"sbi-mvp01-20200325-00001"
],
"script": {
"version": "0.1.0",
"name": "dpreb",
"kind": "batch"
},
"dependencies": [
{
"pb_ref": "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.sb_definition.sdp.sdp_configuration module defines a Python object model for the SDP configuration JSON string passed to CentralNode.AssignResources.
- class SDPConfiguration(*, execution_block: ~ska_oso_pdm.sb_definition.sdp.execution_block.ExecutionBlock | None = None, resources: ~ska_oso_pdm.sb_definition.sdp.resources.Resources | None = None, processing_blocks: list[~ska_oso_pdm.sb_definition.sdp.processing_block.ProcessingBlock] = <factory>)[source]
SDPConfiguration captures the SDP resources and pipeline configuration required to process an execution block.
- Parameters:
execution_block – the SDP ExecutionBlock object
resources – external resources
processing_blocks – list of SDP ProcessingBlock objects
The ska_oso_pdm.sb_definition.sdp.execution_block 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 = <factory>, beams: list[~ska_oso_pdm.sb_definition.sdp.beam.Beam], scan_types: list[~ska_oso_pdm.sb_definition.sdp.scan_type.ScanType], channels: list[~ska_oso_pdm.sb_definition.sdp.channels.Channels], polarisations: list[~ska_oso_pdm.sb_definition.sdp.polarisation.Polarisation])[source]
ExecutionBlock captures the Execution Block resources and pipeline configuration required to process an execution block.
- Parameters:
eb_id – execution block ID
max_length – maximum length
context – context
beams – list of Beams
scan_types – list of EB scan types
channels – list of EB channels
polarisations – list of polarisations
The ska_oso_pdm.sb_definition.sdp.processing_block module defines a Python representation of a processing block for SDP configuration.
- class PbDependency(*, pb_ref: str, kind: list[str])[source]
Class to hold Dependencies for ProcessingBlock
- class ProcessingBlock(*, pb_id: str, script: ~ska_oso_pdm.sb_definition.sdp.processing_block.Script, sbi_refs: list[str] = <factory>, parameters: dict = <factory>, dependencies: list[~ska_oso_pdm.sb_definition.sdp.processing_block.PbDependency] = <factory>)[source]
Class to hold ProcessingBlock configuration
- class Script(*, name: str, kind: ScriptKind, version: str)[source]
Class to hold Script for ProcessingBlock
The ska_oso_pdm.sb_definition.sdp.resources module defines a Python representation of a Resources for SDP configuration.
- class Resources(*, csp_links: list[int] = <factory>, receptors: list[str] = <factory>, receive_nodes: int | None = None)[source]
Class to hold SDP Resources
The ska_oso_pdm.sb_definition.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 ska_oso_pdm.sb_definition.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] = <factory>)[source]
Class to hold Spectral Windows configuration
The ska_oso_pdm.sb_definition.sdp.scan_type module defines a Python representation of a scan type for SDP configuration.
- class BeamMapping(*, beam_ref: str, field_ref: str | None = None, channels_ref: str | None = None, polarisations_ref: 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[~ska_oso_pdm.sb_definition.sdp.scan_type.BeamMapping] = <factory>)[source]
Class to hold ScanType configuration
The ska_oso_pdm.sb_definition.sdp.polarisation module defines a Python representation of polarisations for SDP configuration.