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.

../../../_images/ska_oso_pdm_sb_definition_sdp.svg

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": "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_ref": "vis0",
              "channels_ref": "vis_channels",
              "polarisations_ref": "all"
            },
            {
              "beam_ref": "pss1",
              "field_ref": "M83",
              "channels_ref": "pulsar_channels",
              "polarisations_ref": "all"
            },
            {
              "beam_ref": "pss2",
              "field_ref": "Polaris Australis",
              "channels_ref": "pulsar_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"
            },
            {
              "beam_ref": "vlbi",
              "field_ref": "Polaris Australis",
              "channels_ref": "vlbi_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: ExecutionBlock | None = None, resources: Resources | None = None, processing_blocks: list[ProcessingBlock] = None)[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 = 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.

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: Script, sbi_refs: list[str] = None, parameters: dict = None, dependencies: list[PbDependency] = None)[source]

Class to hold ProcessingBlock configuration

class Script(*, name: str, kind: ScriptKind, version: str)[source]

Class to hold Script for ProcessingBlock

class ScriptKind(value)[source]

Enumeration class to hold the kind of processing script

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] = None, receptors: list[str] = None, 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.

class BeamFunction(value)[source]

Enumeration of possible functions for an SDP Beam.

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] = None)[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[BeamMapping] = None)[source]

Class to hold ScanType configuration

The ska_oso_pdm.sb_definition.sdp.polarisation module defines a Python representation of polarisations for SDP configuration.

class Polarisation(*, polarisations_id: str, corr_type: list[str])[source]

Class that defines an SDP Polarisation configuration