SDP assign resources 0.5
Example
{
"execution_block": {
"eb_id": "eb-mvp01-20210623-00000",
"max_length": 100.0,
"context": {},
"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 timing"
}, {
"beam_id": "pst2",
"timing_beam_id": 2,
"function": "pulsar timing"
}, {
"beam_id": "vlbi1",
"vlbi_beam_id": 1,
"function": "vlbi"
}],
"scan_types": [{
"scan_type_id": ".default",
"beams": {
"vis0": {
"channels_id": "vis_channels",
"polarisations_id": "all"
},
"pss1": {
"field_id": "pss_field_0",
"channels_id": "pulsar_channels",
"polarisations_id": "all"
},
"pss2": {
"field_id": "pss_field_1",
"channels_id": "pulsar_channels",
"polarisations_id": "all"
},
"pst1": {
"field_id": "pst_field_0",
"channels_id": "pulsar_channels",
"polarisations_id": "all"
},
"pst2": {
"field_id": "pst_field_1",
"channels_id": "pulsar_channels",
"polarisations_id": "all"
},
"vlbi": {
"field_id": "vlbi_field",
"channels_id": "vlbi_channels",
"polarisations_id": "all"
}
}
}, {
"scan_type_id": "target:a",
"derive_from": ".default",
"beams": {
"vis0": {
"field_id": "field_a"
}
}
}],
"channels": [{
"channels_id": "vis_channels",
"spectral_windows": [{
"spectral_window_id": "fsp_1_channels",
"count": 744,
"start": 0,
"stride": 2,
"freq_min": 350000000.0,
"freq_max": 368000000.0,
"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.0,
"freq_max": 368000000.0,
"link_map": [
[2000, 4],
[2200, 5]
]
}, {
"spectral_window_id": "zoom_window_1",
"count": 744,
"start": 4000,
"stride": 1,
"freq_min": 360000000.0,
"freq_max": 361000000.0,
"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.0,
"freq_max": 368000000.0
}]
}],
"polarisations": [{
"polarisations_id": "all",
"corr_type": ["XX", "XY", "YY", "YX"]
}],
"fields": [{
"field_id": "field_a",
"phase_dir": {
"ra": [123, 0.1],
"dec": [80, 0.1],
"reference_time": "...",
"reference_frame": "ICRF3"
},
"pointing_fqdn": "low-tmc/telstate/0/pointing"
}]
},
"processing_blocks": [{
"pb_id": "pb-mvp01-20210623-00000",
"sbi_ids": ["sbi-mvp01-20200325-00001"],
"script": {
"kind": "realtime",
"name": "vis_receive",
"version": "0.1.0"
},
"parameters": {}
}, {
"pb_id": "pb-mvp01-20210623-00001",
"sbi_ids": ["sbi-mvp01-20200325-00001"],
"script": {
"kind": "realtime",
"name": "test_realtime",
"version": "0.1.0"
},
"parameters": {}
}, {
"pb_id": "pb-mvp01-20210623-00002",
"sbi_ids": ["sbi-mvp01-20200325-00002"],
"script": {
"kind": "batch",
"name": "ical",
"version": "0.1.0"
},
"parameters": {},
"dependencies": [{
"pb_id": "pb-mvp01-20210623-00000",
"kind": ["visibilities"]
}]
}, {
"pb_id": "pb-mvp01-20210623-00003",
"sbi_ids": ["sbi-mvp01-20200325-00001", "sbi-mvp01-20200325-00002"],
"script": {
"kind": "batch",
"name": "dpreb",
"version": "0.1.0"
},
"parameters": {},
"dependencies": [{
"pb_id": "pb-mvp01-20210623-00002",
"kind": ["calibration"]
}]
}],
"resources": {
"receptors": ["SKA001", "SKA036", "SKA063", "SKA100"]
}
}
Used for assigning resources to an SDP subarray.
As concrete resource usage for the SDP depend strongly on the underlying processing script, this fully parameterises all processing blocks to be executed. This especially means that in contrast to most other sub-systems, SDP processing deployments might persist across scans (and scan configuration) boundaries.
type |
object |
|||
properties |
||||
|
type |
string |
||
|
type |
string |
||
|
SDP external resources 0.5 |
|||
External resources |
||||
type |
object |
|||
properties |
||||
|
type |
array |
||
items |
type |
string |
||
additionalProperties |
True |
|||
|
Execution block |
|||
|
Processing blocks |
|||
type |
array |
|||
items |
A Processing Block is an atomic unit of data processing for the purpose of SDP’s internal scheduler. Each PB references a processing script and together with the associated execution block provides all parameters necessary to carry out scheduling - both on TM’s side for observation planning and on SDP’s side - as well as enable processing to locate all required inputs once it is in progress. PBs are used for both real-time and deferred, batch, processing. An execution block will often contain many Processing Blocks, for example for ingest, self-calibration and Data Product preparation. |
|||
additionalProperties |
True |
|||
Execution_block_0.5
Execution block
type |
object |
|
properties |
||
|
type |
string |
|
Free-form information from OET, see ADR-54 |
|
type |
object |
|
|
Maximum observation length in seconds. Used to ensure that enough buffer capacity is available to capture data. Resource assignment might fail if we do not have enough space to guarantee that all data could be captured. |
|
type |
number |
|
|
Beams |
|
type |
array |
|
items |
Beam parameters for the purpose of the Science Data Processor. |
|
|
Fields |
|
type |
array |
|
items |
Field |
|
|
Channels |
|
type |
array |
|
items |
Spectral windows per channel configuration. |
|
|
Polarisations |
|
type |
array |
|
items |
Polarisations |
|
|
Scan types. Associates scans with per-beam fields & channel configurations |
|
type |
array |
|
items |
Scan type |
|
additionalProperties |
True |
|
Beam_0.5
Beam parameters for the purpose of the Science Data Processor.
type |
object |
|
properties |
||
|
Name to identify the beam within the SDP configuration. |
|
type |
string |
|
|
Identifies the type and origin of the generated beam data. This corresponds to a certain kind of calibration or receive functionality SDP is meant to provide for it. Possible options:
|
|
type |
string |
|
|
type |
integer |
|
type |
integer |
|
type |
integer |
|
type |
integer |
additionalProperties |
True |
|
Field_0.5
Field
type |
object |
||
properties |
|||
|
type |
string |
|
|
phase_dir 0.5 |
||
Phase direction |
|||
type |
object |
||
properties |
|||
|
type |
array |
|
items |
|||
|
type |
array |
|
items |
|||
|
type |
string |
|
|
const |
ICRF3 |
|
additionalProperties |
True |
||
|
type |
string |
|
additionalProperties |
True |
||
Channels_0.5
Spectral windows per channel configuration.
type |
object |
|||
properties |
||||
|
type |
string |
||
|
Spectral windows |
|||
type |
array |
|||
items |
Spectral window 0.5 |
|||
type |
object |
|||
properties |
||||
|
type |
string |
||
|
Number of channels |
|||
type |
integer |
|||
|
First channel ID |
|||
type |
integer |
|||
|
Distance between subsequent channel IDs |
|||
type |
integer |
|||
|
Lower bound of first channel |
|||
type |
number |
|||
|
Upper bound of last channel |
|||
type |
number |
|||
|
Channel map that specifies which network link is going to get used to send channels to SDP. Intended to allow SDP to optimise network and receive node configuration. |
|||
type |
array |
|||
items |
||||
additionalProperties |
True |
|||
additionalProperties |
True |
|||
Polarisations_0.5
Polarisations
type |
object |
||
properties |
|||
|
type |
string |
|
|
type |
array |
|
items |
type |
string |
|
additionalProperties |
True |
||
Scan_type_0.5
Scan type
type |
object |
|||
properties |
||||
|
Scan type ID |
|||
type |
string |
|||
|
ID of scan type this scan type derives from |
|||
type |
string |
|||
|
Scan type beams 0.5 |
|||
Beams |
||||
type |
object |
|||
properties |
||||
|
Scan type beam 0.5 |
|||
type |
object |
|||
properties |
||||
|
Field ID |
|||
type |
string |
|||
|
Channels ID |
|||
type |
string |
|||
|
Polarisations ID |
|||
type |
string |
|||
additionalProperties |
True |
|||
additionalProperties |
True |
|||
additionalProperties |
True |
|||
Processing_block_0.5
A Processing Block is an atomic unit of data processing for the purpose of SDP’s internal scheduler. Each PB references a processing script and together with the associated execution block provides all parameters necessary to carry out scheduling - both on TM’s side for observation planning and on SDP’s side - as well as enable processing to locate all required inputs once it is in progress.
PBs are used for both real-time and deferred, batch, processing. An execution block will often contain many Processing Blocks, for example for ingest, self-calibration and Data Product preparation.
type |
object |
||||
properties |
|||||
|
Unique identifier for this processing block. |
||||
type |
string |
||||
|
Scheduling block instances that the processing block belongs to. |
||||
type |
array |
||||
items |
type |
string |
|||
|
Script 0.5 |
||||
Specification of the script to be executed. |
|||||
type |
object |
||||
properties |
|||||
|
The kind of processing script (realtime or batch) |
||||
type |
string |
||||
|
The name of the processing script |
||||
type |
string |
||||
|
Version of the processing script. Uses semantic versioning. |
||||
type |
string |
||||
additionalProperties |
True |
||||
|
Parameters needed to execute the script. As these parameters will be specific to the script, this is left as an object to be specified by the script definition. |
||||
type |
object |
||||
|
A dependency between processing blocks means that one processing block requires something from the other processing block to run - typically an intermediate Data Product. This generally means that
As processing blocks might have many different outputs, the dependency “kind” can be used to specify how this dependency is meant to be interpreted (e.g. “visibilities”, “calibration”…) |
||||
type |
array |
||||
items |
Processing block dependency 0.5 |
||||
type |
object |
||||
properties |
|||||
|
type |
string |
|||
|
type |
array |
|||
items |
type |
string |
|||
additionalProperties |
True |
||||
additionalProperties |
True |
||||