ska_oso_pdm.sb_definition.sb_definition

The ska_oso_pdm.sb_definition.sb_definition module models SB data model entities concerned with the high-level composition of a Scheduling Block. An SB defines everything needed to schedule and perform an observation, for instance:

  • Target telescope

  • Dish allocations to sub-arrays (for SKA MID);

  • Dish configurations (receiver bands, etc., for SKA MID);

  • MCCS resource allocations to sub-arrays (for SKA LOW);

  • Sub-array Beam configurations (channels, antenna weights etc., for SKA LOW);

  • Target Beam configuration, defining the required Target for subarray beam configuration (for SKA LOW);

  • Targets and field positions, describing which points to observe on the sky;

  • CSP (Central Signal Processing) correlator configurations to be used;

  • SDHP configuration, defining the required pipeline workflows for the observation;

  • Scan information, which describes which CSP/SDHP/dish/target configurations to be used for each scan;

  • Scan sequence describing the sequence of scans constituting the observation.

as well as:

  • SB metadata (author, creation date and version number, as well as edit history);

  • SB script execution requirements;

The contents of the module are presented in the diagram below.

../../_images/sb_definition.svg

Class diagram for the sb_definition module

{
  "interface": "https://schema.skao.int/ska-oso-pdm-sbd/0.1",
  "sbd_id": "sbi-mvp01-20200325-00001",
  "telescope": "ska_mid",
  "metadata": {
    "version": 1,
    "created_by": "Liz Bartlett",
    "created_on": "2022-03-28T15:43:53.971548Z",
    "last_modified_on": "2022-03-28T15:43:53.971548Z",
    "last_modified_by": "Liz Bartlett"
  },
  "activities": {
    "allocate": {
      "kind": "filesystem",
      "path": "file:///path/to/allocatescript.py",
      "function_args": {
        "init": {
          "args": [
            "posarg1",
            "posarg2"
          ],
          "kwargs": {
            "argname": "argval"
          }
        },
        "main": {
          "args": [
            "posarg1",
            "posarg2"
          ],
          "kwargs": {
            "argname": "argval"
          }
        }
      }
    },
    "observe": {
      "kind": "git",
      "path": "git://relative/path/to/scriptinsiderepo.py",
      "repo": "https://gitlab.com/script_repo/operational_scripts",
      "branch": "main",
      "function_args": {
        "init": {
          "args": [
            "posarg1",
            "posarg2"
          ],
          "kwargs": {
            "argname": "argval"
          }
        },
        "main": {
          "args": [
            "posarg1",
            "posarg2"
          ],
          "kwargs": {
            "argname": "argval"
          }
        }
      }
    }
  },
  "scan_definitions": [
    {
      "scan_definition_id": "calibrator scan",
      "scan_duration": 60000,
      "target_ref": "Polaris Australis",
      "dish_configuration_ref": "dish config 123",
      "scan_type_ref": "calibration_B",
      "csp_configuration_ref": "csp config 123",
      "pointing_correction": "MAINTAIN"
    },
    {
      "scan_duration": 60000,
      "target_ref": "M83",
      "dish_configuration_ref": "dish config 123",
      "scan_type_ref": "science_A",
      "scan_definition_id": "science scan",
      "csp_configuration_ref": "csp config 123",
      "pointing_correction": "UPDATE"
    }
  ],
  "scan_sequence": [
    "calibrator scan",
    "science scan",
    "science scan",
    "calibrator scan"
  ],
  "targets": [
    {
      "target_id": "Polaris Australis",
      "pointing_pattern": {
        "active": "FivePointParameters",
        "parameters": [
          {
            "kind": "FivePointParameters",
            "offset_arcsec": 5.0
          },
          {
            "kind": "RasterParameters",
            "row_length_arcsec": 1.23,
            "row_offset_arcsec": 4.56,
            "n_rows": 2,
            "pa": 7.89,
            "unidirectional": true
          },
          {
            "kind": "StarRasterParameters",
            "row_length_arcsec": 1.23,
            "n_rows": 2,
            "row_offset_angle": 4.56,
            "unidirectional": true
          }
        ]
      },
      "reference_coordinate": {
        "kind": "equatorial",
        "ra": "21:08:47.92",
        "dec": "-88:57:22.9",
        "reference_frame": "icrs",
        "unit": [
          "hourangle",
          "deg"
        ]
      },
      "radial_velocity": {
        "quantity": {
          "value": -12.345,
          "unit": "km / s"
        },
        "definition": "OPTICAL",
        "reference_frame": "LSRK",
        "redshift": 1.23
      }
    },
    {
      "target_id": "M83",
      "pointing_pattern": {
        "active": "SinglePointParameters",
        "parameters": [
          {
            "kind": "SinglePointParameters",
            "offset_x_arcsec": 0.0,
            "offset_y_arcsec": 0.0
          }
        ]
      },
      "reference_coordinate": {
        "kind": "equatorial",
        "ra": "13:37:00.919",
        "dec": "-29:51:56.74",
        "reference_frame": "icrs",
        "unit": [
          "hourangle",
          "deg"
        ]
      },
      "radial_velocity": {
        "quantity": {
          "value": 0.0,
          "unit": "km / s"
        },
        "definition": "RADIO",
        "reference_frame": "LSRK",
        "redshift": 0.0
      }
    }
  ],
  "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
    }
  },
  "csp_configurations": [
    {
      "config_id": "csp config 123",
      "subarray": {
        "subarray_name": "science period 23"
      },
      "common": {
        "subarray_id": 1,
        "band_5_tuning": [
          5.85,
          7.25
        ]
      },
      "cbf": {
        "fsps": [
          {
            "fsp_id": 1,
            "function_mode": "CORR",
            "frequency_slice_id": 1,
            "integration_factor": 1,
            "zoom_factor": 0,
            "channel_averaging_map": [
              [
                0,
                2
              ],
              [
                744,
                0
              ]
            ],
            "channel_offset": 0,
            "output_link_map": [
              [
                0,
                0
              ],
              [
                200,
                1
              ]
            ]
          },
          {
            "fsp_id": 2,
            "function_mode": "CORR",
            "frequency_slice_id": 2,
            "integration_factor": 1,
            "zoom_factor": 1,
            "zoom_window_tuning": 650000
          }
        ]
      }
    }
  ],
  "dish_allocations": {
    "receptor_ids": [
      "0001",
      "0002"
    ]
  },
  "dish_configurations": [
    {
      "dish_configuration_id": "dish config 123",
      "receiver_band": "5a"
    }
  ]
}

The ska_oso_pdm.sb_definition_sb_definition module defines a simple Python representation of the scheduling block that contains the details of the observation

class SBDefinition(*, interface: str | None = 'https://schema.skao.int/ska-oso-pdm-sbd/0.1', sbd_id: str | None = None, name: str | None = None, description: str | None = None, telescope: TelescopeType | None = None, metadata: Metadata | None = None, prj_ref: str | None = None, activities: Dict[str, InlineScript | FilesystemScript | GitScript] | None = None, targets: List[Target] | None = None, scan_definitions: List[ScanDefinition] | None = None, scan_sequence: List[str] | None = None, sdp_configuration: SDPConfiguration | None = None, dish_configurations: List[DishConfiguration] | None = None, csp_configurations: List[CSPConfiguration] | None = None, dish_allocations: DishAllocation | None = None, mccs_allocation: MCCSAllocation | None = None, subarray_beam_configurations: List[SubarrayBeamConfiguration] | None = None, target_beam_configurations: List[TargetBeamConfiguration] | None = None)[source]

SKA scheduling block