TMC CentralNode

Overview

Sub-array resource allocation is achieved via communication with a TMC CentralNode device. The centralnode package models the JSON input and responses for TMC CentralNode commands. The contents of this package are shown in the figure below.

High-level overview of centralnode package

Classes in the assign_resources.py module model the arguments for the CentralNode.AssignResources() command.

Classes in the release_resources.py module model the arguments for the CentralNode.ReleaseResources() command.

assign_resources.py

Overview of the assign_resources.py module

assign_resources.py object model

The assign_resources.py module models the the JSON input and response for a CentralNode.AssignResources() command.

Example PI16 JSON input modelled by AssignResourcesRequest for MID:

{
   "interface":"https://schema.skao.int/ska-tmc-assignresources/2.1",
   "transaction_id":"txn-....-00001",
   "subarray_id":1,
   "dish":{
      "receptor_ids":[
         "0001"
      ]
   },
   "sdp":{
      "interface":"https://schema.skao.int/ska-sdp-assignres/0.4",
      "resources":{
         "receptors":[
            "SKA001",
            "SKA002",
            "SKA003",
            "SKA004"
         ]
      },
      "execution_block":{
         "eb_id":"eb-test-20220916-00000",
         "context":{

         },
         "max_length":3600.0,
         "beams":[
            {
               "beam_id":"vis0",
               "function":"visibilities"
            }
         ],
         "scan_types":[
            {
               "scan_type_id":".default",
               "beams":{
                  "vis0":{
                     "channels_id":"vis_channels",
                     "polarisations_id":"all"
                  }
               }
            },
            {
               "scan_type_id":"target:a",
               "derive_from":".default",
               "beams":{
                  "vis0":{
                     "field_id":"field_a"
                  }
               }
            },
            {
               "scan_type_id":"calibration:b",
               "derive_from":".default",
               "beams":{
                  "vis0":{
                     "field_id":"field_b"
                  }
               }
            }
         ],
         "channels":[
            {
               "channels_id":"vis_channels",
               "spectral_windows":[
                  {
                     "spectral_window_id":"fsp_1_channels",
                     "count":4,
                     "start":0,
                     "stride":2,
                     "freq_min":350000000.0,
                     "freq_max":368000000.0,
                     "link_map":[
                        [
                           0,
                           0
                        ],
                        [
                           200,
                           1
                        ],
                        [
                           744,
                           2
                        ],
                        [
                           944,
                           3
                        ]
                     ]
                  }
               ]
            }
         ],
         "polarisations":[
            {
               "polarisations_id":"all",
               "corr_type":[
                  "XX",
                  "XY",
                  "YX",
                  "YY"
               ]
            }
         ],
         "fields":[
            {
               "field_id":"field_a",
               "phase_dir":{
                  "ra":[
                     123.0
                  ],
                  "dec":[
                     -60.0
                  ],
                  "reference_time":"...",
                  "reference_frame":"ICRF3"
               },
               "pointing_fqdn":"..."
            },
            {
               "field_id":"field_b",
               "phase_dir":{
                  "ra":[
                     123.0
                  ],
                  "dec":[
                     -60.0
                  ],
                  "reference_time":"...",
                  "reference_frame":"ICRF3"
               },
               "pointing_fqdn":"..."
            }
         ]
      },
      "processing_blocks":[
         {
            "pb_id":"pb-test-20220916-00000",
            "script":{
               "kind":"realtime",
               "name":"test-receive-addresses",
               "version":"0.5.0"
            },
            "sbi_ids":[
               "sbi-test-20220916-00000"
            ],
            "parameters":{

            }
         }
      ]
   }
}

For PI14 JSON, Please refer confluence schema page

Example JSON response modelled by AssignResourcesResponse for MID:

{
  "dish": {
    "receptor_ids_allocated": ["0001", "0002"]
  }
}

Example PI 17 JSON input modelled by AssignResourcesRequest for LOW:

{
  "interface": "https://schema.skao.int/ska-low-tmc-assignresources/3.0",
  "transaction_id": "txn-....-00001",
  "subarray_id": 1,
  "mccs": {
      "subarray_beam_ids": [1],
      "station_ids": [[1,2]],
      "channel_blocks": [3]
   },
  "sdp": {
      "interface": "https://schema.skao.int/ska-sdp-assignres/0.4",
      "resources": {
          "receptors": [
              "SKA001",
              "SKA002",
              "SKA003",
              "SKA004"
          ]
      },
      "execution_block": {
          "eb_id": "eb-test-20220916-00000",
          "context": {

          },
          "max_length": 3600,
          "beams": [
              {
                  "beam_id": "vis0",
                  "function": "visibilities"
              }
          ],
          "scan_types": [
              {
                  "scan_type_id": ".default",
                  "beams": {
                      "vis0": {
                          "channels_id": "vis_channels",
                          "polarisations_id": "all"
                      }
                  }
              },
              {
                  "scan_type_id": "target:a",
                  "derive_from": ".default",
                  "beams": {
                      "vis0": {
                          "field_id": "field_a"
                      }
                  }
              },
              {
                  "scan_type_id": "calibration:b",
                  "derive_from": ".default",
                  "beams": {
                      "vis0": {
                          "field_id": "field_b"
                      }
                  }
              }
          ],
          "channels": [
              {
                  "channels_id": "vis_channels",
                  "spectral_windows": [
                      {
                          "spectral_window_id": "fsp_1_channels",
                          "count": 4,
                          "start": 0,
                          "stride": 2,
                          "freq_min": 350000000,
                          "freq_max": 368000000,
                          "link_map": [
                              [
                                  0,
                                  0
                              ],
                              [
                                  200,
                                  1
                              ],
                              [
                                  744,
                                  2
                              ],
                              [
                                  944,
                                  3
                              ]
                          ]
                      }
                  ]
              }
          ],
          "polarisations": [
              {
                  "polarisations_id": "all",
                  "corr_type": [
                      "XX",
                      "XY",
                      "YX",
                      "YY"
                  ]
              }
          ],
          "fields": [
              {
                  "field_id": "field_a",
                  "phase_dir": {
                      "ra": [
                          123
                      ],
                      "dec": [
                          -60
                      ],
                      "reference_time": "...",
                      "reference_frame": "ICRF3"
                  },
                  "pointing_fqdn": "..."
              },
              {
                  "field_id": "field_b",
                  "phase_dir": {
                      "ra": [
                          123
                      ],
                      "dec": [
                          -60
                      ],
                      "reference_time": "...",
                      "reference_frame": "ICRF3"
                  },
                  "pointing_fqdn": "..."
              }
          ]
      },
      "processing_blocks": [
          {
              "pb_id": "pb-test-20220916-00000",
              "script": {
                  "kind": "realtime",
                  "name": "test-receive-addresses",
                  "version": "0.5.0"
              },
              "sbi_ids": [
                  "sbi-test-20220916-00000"
              ],
              "parameters": {

              }
          }
      ]
  },
  "csp": {
  "interface": "https://schema.skao.int/ska-low-csp-assignresources/2.0",
  "common": {
    "subarray_id": 1
  },
  "lowcbf": {
    "resources": [
      {
        "device": "fsp_01",
        "shared": true,
        "fw_image": "pst",
        "fw_mode": "unused"
      },
      {
        "device": "p4_01",
        "shared": true,
        "fw_image": "p4.bin",
        "fw_mode": "p4"
      }
    ]
  }
 }
}

release_resources.py

Overview of the release_resources.py module

release_resources.py object model

The release_resources.py module models the input JSON for a CentralNode.ReleaseResources() command.

Example ReleaseResourcesRequest JSON that requests specific dishes be released from a sub-array:

{
  "interface": "https://schema.skao.int/ska-tmc-releaseresources/2.1",
  "transaction_id": "txn-mvp01-20200325-00001",
  "subarray_id": 1,
  "receptor_ids": ["0001", "0002"]
}

Example JSON that requests all sub-array resources be released:

{
  "interface": "https://schema.skao.int/ska-tmc-releaseresources/2.1",
  "transaction_id": "txn-mvp01-20200325-00001",
  "subarray_id": 1,
  "release_all": true
}

Example JSON that requests all sub-array resources be released for LOW:

{
  "interface": "https://schema.skao.int/ska-low-tmc-releaseresources/3.0",
  "subarray_id": 1,
  "release_all": true,
  "transaction_id": "txn-....-00001"
}