SB Definition examples

MID JSON

A full example of a simple MID SB serialised to JSON is given below. This SB is not self consistent (i.e. does not correctly describe an observation “end-to-end”) but gives an example of the structure and possible contents of a MID SB.

SBDefinition also allows to optionally include SDP and CSP configurations.

{
  "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",
    "pdm_version": "15.3.0"
  },
  "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_ms": 60000,
      "target_ref": "target-12345",
      "dish_allocation_ref": "dish-allocation-74519",
      "scan_type_ref": "calibration_B",
      "csp_configuration_ref": "csp-configuration-12345",
      "pointing_correction": "MAINTAIN"
    },
    {
      "scan_duration_ms": 60000,
      "target_ref": "target-67890",
      "dish_allocation_ref": "dish-allocation-74519",
      "scan_type_ref": "science_A",
      "scan_definition_id": "science scan",
      "csp_configuration_ref": "csp-configuration-12345",
      "pointing_correction": "UPDATE"
    }
  ],
  "scan_sequence": [
    "calibrator scan",
    "science scan",
    "science scan",
    "calibrator scan"
  ],
  "targets": [
    {
      "target_id": "target-12345",
      "name": "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",
        "epoch": 2000.0,
        "reference_frame": "icrs",
        "unit": [
          "hourangle",
          "deg"
        ]
      },
      "radial_velocity": {
        "quantity": {
          "value": -12.345,
          "unit": "km / s"
        },
        "definition": "OPTICAL",
        "reference_frame": "LSRK",
        "redshift": 1.23
      },
      "tied_array_beams": {
        "pst_beams": [
          {
            "beam_id": 1,
            "beam_coordinate": {
              "target_id": "PSR J0024-7204R",
              "reference_frame": "icrs",
              "ra_str": "00:24:05.670",
              "dec_str": "-72:04:52.62",
              "pm_ra": 4.8,
              "pm_dec": -3.3,
              "parallax": 0,
              "epoch": 2000.0
            },
            "stn_weights": [1.0, 1.0]
          },
          {
            "beam_id": 2,
            "beam_coordinate": {
              "target_id": "PSR J0024-7204W",
              "reference_frame": "icrs",
              "ra_str": "00:24:06.0580",
              "dec_str": "-72:04:49.088",
              "pm_ra": 6.1,
              "pm_dec": -2.6,
              "parallax": 0,
              "epoch": 2000.0
            },
            "stn_weights": [1.0, 1.0]
          }
        ]
      }
    },
    {
      "target_id": "target-67890",
      "name": "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",
        "epoch": 2000.0,
        "reference_frame": "icrs",
        "unit": [
          "hourangle",
          "deg"
        ]
      },
      "radial_velocity": {
        "quantity": {
          "value": 0.0,
          "unit": "km / s"
        },
        "definition": "RADIO",
        "reference_frame": "LSRK",
        "redshift": 0.0
      },
      "tied_array_beams": {
        "pst_beams": [
          {
            "beam_id": 1,
            "beam_coordinate": {
              "target_id": "PSR J0024-7204R",
              "reference_frame": "icrs",
              "ra_str": "00:24:05.670",
              "dec_str": "-72:04:52.62",
              "pm_ra": 4.8,
              "pm_dec": -3.3,
              "parallax": 0.0,
              "epoch": 2000.0
            },
            "stn_weights": [1.0, 1.0]
          },
          {
            "beam_id": 2,
            "beam_coordinate": {
              "target_id": "PSR J0024-7204W",
              "reference_frame": "icrs",
              "ra_str": "00:24:06.0580",
              "dec_str": "-72:04:49.088",
              "pm_ra": 6.1,
              "pm_dec": -2.6,
              "parallax": 0.0,
              "epoch": 2000.0
            },
            "stn_weights": [1.0, 1.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": "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
    }
  },
  "csp_configurations": [
    {
      "config_id": "csp-configuration-12345",
      "name": "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
          }
        ]
      },
      "midcbf": {
        "frequency_band": "1",
        "subbands": [
          {
            "band_5_tuning": 12.3e9,
            "frequency_slice_offset": {
              "value": 0,
              "unit": "MHz"
            },
            "correlation_spws": [
              {
                "spw_id": 1,
                "logical_fsp_ids": [
                  1,
                  2
                ],
                "receptors":["SKA063", "SKA001", "SKA100"],
                "zoom_factor": 1,
                "centre_frequency": 800e6,
                "number_of_channels": 20000,
                "channel_averaging_factor": 1,
                "time_integration_factor": 1
              }
            ],
            "pst_spws": [
              {
                "spw_id": 2,
                "logical_fsp_ids": [
                  3
                ],
                "centre_frequency": 396291840,
                "number_of_channels": 3700
              }
            ]
          }
        ]
      }
    }
  ],
  "dish_allocations": {
    "dish_ids": ["SKA100", "SKA001", "SKA063", "SKA036"],
    "dish_allocation_id": "dish-allocation-74519",
    "selected_subarray_definition": "AA0.5"
  }
}

LOW JSON

A full example of a simple SKA LOW SB serialised to JSON is given below. This LOW SBDefinition, identified as “sbi-mvp01-20200325-00001”, defines a MCCS subarray beam, beam A, composed of stations 1 and 2, configured to output on one channel block. One field consisting of two targets is defined. The targets are drift scan targets, at 45 degree and 85 degree elevation respectively. One subarray beam configuration is defined. If other scans required different subarray beam configurations, they would be defined here too. The SB then defines two target beam configurations that link subarray beam configurations to targets: each configuration points beam A at 45 degree elevation and 85 degree elevation targets respectively. Two scan definitions are defined that each perform a drift scan. The first is defined as the ‘calibrator scan’ that is using the subarray beam configuration for the first ‘target’ at 45 degrees elevation, the second is the ‘science scan’ which uses the same subarray beam configuration with the second target at 85 degrees. Finally, the scan sequence declares the observation to consist of four scans, with a calibrator scan bookending two science scans performed back-to-back.

{
  "interface": "https://schema.skao.int/ska-oso-pdm-sbd/0.1",
  "sbd_id": "sbi-mvp01-20200325-00001",
  "telescope": "ska_low",
  "metadata": {
    "version": 1,
    "created_by": "Liz Bartlett",
    "created_on": "2022-03-28T15:43:53.971548Z",
    "last_modified_on": "2024-07-15T21:55:09.654185Z",
    "pdm_version": "15.3.0"
  },
  "activities": {
    "allocate": {
      "function_args": {
        "init": {
          "args": [
            "posarg1",
            "posarg2"
          ],
          "kwargs": {
            "argname": "argval"
          }
        },
        "main": {
          "args": [
            "posarg1",
            "posarg2"
          ],
          "kwargs": {
            "argname": "argval"
          }
        }
      },
      "kind": "filesystem",
      "path": "/path/to/allocatescript.py"
    },
    "observe": {
      "function_args": {
        "init": {
          "args": [
            "posarg1",
            "posarg2"
          ],
          "kwargs": {
            "argname": "argval"
          }
        },
        "main": {
          "args": [
            "posarg1",
            "posarg2"
          ],
          "kwargs": {
            "argname": "argval"
          }
        }
      },
      "kind": "git",
      "repo": "https://gitlab.com/script_repo/operational_scripts",
      "path": "/relative/path/to/scriptinsiderepo.py",
      "branch": "main",
      "commit": "d234c257dadd18b3edcd990b8194c6ad94fc278a"
    }
  },
  "targets": [
    {
      "target_id": "target-12345",
      "name": "47 Tuc",
      "pointing_pattern": {
        "active": "SinglePointParameters",
        "parameters": [
          {
            "kind": "SinglePointParameters",
            "offset_x_arcsec": 0.0,
            "offset_y_arcsec": 0.0
          }
        ]
      },
      "reference_coordinate": {
        "kind": "equatorial",
        "ra": "00:24:05.359",
        "dec": "-72:04:53.20",
        "epoch": 2000.0,
        "reference_frame": "icrs",
        "unit": [
          "hourangle",
          "deg"
        ]
      },
      "radial_velocity": {
        "quantity": {
          "value": -17.2,
          "unit": "km / s"
        },
        "definition": "OPTICAL",
        "reference_frame": "BARYCENTRIC",
        "redshift": 0.0
      },
      "tied_array_beams": {
        "pst_beams": [
          {
            "beam_id": 1,
            "beam_coordinate": {
              "target_id": "PSR J0024-7204R",
              "reference_frame": "icrs",
              "ra_str": "00:24:05.670",
              "dec_str": "-72:04:52.62",
              "pm_ra": 4.8,
              "pm_dec": -3.3,
              "parallax": 0.0,
              "epoch": 2000.0
            },
            "stn_weights": [1.0, 1.0]
          },
          {
            "beam_id": 2,
            "beam_coordinate": {
              "target_id": "PSR J0024-7204W",
              "reference_frame": "icrs",
              "ra_str": "00:24:06.0580",
              "dec_str": "-72:04:49.088",
              "pm_ra": 6.1,
              "pm_dec": -2.6,
              "parallax": 0.0,
              "epoch": 2000.0
            },
            "stn_weights": [1.0, 1.0]
          }
        ]
      }
    }
  ],
  "mccs_allocation": {
    "mccs_allocation_id": "mccs-allocation-74519",
    "selected_subarray_definition": "AA0.5",
    "subarray_beams": [
	{
	    "subarray_beam_id": 1,
	    "apertures": [
		{
		    "station_id": 345,
		    "substation_id": 1,
		    "weighting_key": "uniform"
		},
		{
		    "station_id": 350,
		    "substation_id": 1,
		    "weighting_key": "uniform"
		},
		{
		    "station_id": 352,
		    "substation_id": 1,
		    "weighting_key": "uniform"
		},
		{
		    "station_id": 431,
		    "substation_id": 1,
		    "weighting_key": "uniform"
		}
	    ]
	}
    ]
},
  "csp_configurations": [
    {
      "config_id": "csp-configuration-12345",
      "name": "csp config 123",
      "lowcbf": {
        "do_pst": true,
        "correlation_spws": [
          {
            "spw_id": 1,
            "logical_fsp_ids": [
              0,
              1
            ],
            "zoom_factor": 0,
            "centre_frequency": 199.609375e6,
            "number_of_channels": 96,
            "integration_time_ms": 849
          }
        ]
      }
    }
  ],
  "scan_definitions": [
    {
      "scan_definition_id": "scan 1",
      "target_ref": "target-12345",
      "mccs_allocation_ref": "mccs-allocation-74519",
      "csp_configuration_ref": "csp-configuration-12345",
      "scan_duration_ms": 64000,
      "scan_intent": "Science",
      "pointing_correction": "MAINTAIN"
    }
  ],
  "scan_sequence": [
    "scan 1"
  ]
}