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;
Targets and field positions, describing which points to observe on the sky;
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);
CSP (Central Signal Processing) correlator configurations to be used;
SDP configuration, defining the required pipeline workflows for the observation;
Scan information, which describes which CSP/SDP/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.
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",
"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"
}
}
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: ~ska_oso_pdm._shared.atoms.TelescopeType | None = None, metadata: ~ska_oso_pdm._shared.metadata.Metadata | None = None, prj_ref: str | None = None, activities: ~typing.Dict[str, ~ska_oso_pdm.sb_definition.procedures.InlineScript | ~ska_oso_pdm.sb_definition.procedures.FilesystemScript | ~ska_oso_pdm.sb_definition.procedures.GitScript] | None = <factory>, targets: ~typing.List[~ska_oso_pdm._shared.target.Target] | None = <factory>, scan_definitions: ~typing.List[~ska_oso_pdm.sb_definition.scan_definition.ScanDefinition] | None = <factory>, scan_sequence: ~typing.List[str] | None = <factory>, sdp_configuration: ~ska_oso_pdm.sb_definition.sdp.sdp_configuration.SDPConfiguration | None = None, csp_configurations: ~typing.List[~ska_oso_pdm.sb_definition.csp.csp_configuration.CSPConfiguration] | None = <factory>, dish_allocations: ~ska_oso_pdm.sb_definition.dish.dish_allocation.DishAllocation | None = None, mccs_allocation: ~ska_oso_pdm.sb_definition.mccs.mccs_allocation.MCCSAllocation | None = None)[source]
SKA scheduling block