Delay Model Calculations
The TMC is responsible for calculation and distribution of the delay models during the observations execution. TMC calculates delay models for 3 types of beams. These are:
Subarray a.k.a station beams
Pulsar Timing (PST) beams
Pulsar search (PSS) beams
The delay model calculations are done separately for each of the subarray. As per TMC architecture, the CSP Subarray Leaf Node is responsible for calculating all types of delay models within the subarray. The delay calculations are performed in a separate subprocess running under the CSP Subarray Leaf Node. The calculation is triggrred as part of processing the Configure command. The calculation is stopped as part of processing the End command.
Subarray/ Station beams delay model
This delay model is calculated for each station or substation in the subarray. As of now, the terms station beam and subarray beam are interchangable. This is because the mapping between a station beam and a subarray beam is 1:1 in current implementation of MCCS. Please refer MCCS documentation for more details. The contents of the delay model are:
Subarray id
Configuration id
Timestamp from which the delay model is valid
Validity period of the delays in seconds.
Cadence of delay model generation in seconds
For each station and/or substation
Station id
Substation id
Coefficients of 5th order x ploynomial
Offset of y ploynomial (in nanoseconds. Currently hard coded to 0.0)
Note
Currently TMC supports four subarray beams per subarray. Please refer Observation Execution APIs section for the specific details of the APIs.
PST beams delay model
This delay model is calculated for each of the PST beam assigned to a subarray. The contents of the delay model are:
Subarray id
Configuration id
Timestamp from which the delay model is valid
Validity period of the delays in seconds.
Cadence of delay model generation in seconds
For each station and/or substation
Station id
Coefficients of 5th order x ploynomial
Offset of y ploynomial (in nanoseconds. Currently hard coded to 0.0)
Note
Currently TMC supports two PST beams per subarray. Please refer Observation Execution APIs section for the specific details of the APIs.
PSS beams delay model
This feature is not yet implemented.
Delay model Format
The delay model is provided in the form of JSON string. The primary consumers of the delay models are CBF, PST and PSS devices. It is also expected that the delays models should be available to anyone who wants for monitoring or any other purpose. Thus, the delay models are exposed in the form of Tango attributes. These attribute publish the delay model as a json string. Any interested consumer can subscribe to the change events of thse attributes.
CSP low delaymodel 1.1
type |
object |
|
properties |
||
|
Type: float Range: Non-zero positive number |
|
type |
number |
|
|
A string, should be the same as the equivalent value in the last “configure” JSON. If not it indicates that these are not yet valid polys for the current configuration. Type: str |
|
type |
string |
|
|
URI of JSON schema applicable to this JSON payload. Type: str |
|
type |
string |
|
|
Time when delay model becomes valid Start point of polynomial validity no sensible default. It indicates an epoch, which could be anytime. Type: float |
|
type |
number |
|
|
type |
array |
items |
||
|
The subarray for which the delay polynomials apply to. Type: int Range: Integer from 1-16 inclusive |
|
type |
integer |
|
|
Validity period of the delay model (starting at epoch) [s] Type: float Range: Non-zero positive number |
|
type |
number |
|
additionalProperties |
True |
station_beam_delays_1.1
type |
object |
||
properties |
|||
|
The station ids for which the delay polynomials apply to. Type: int Range: Integer from 1-512 inclusive |
||
type |
integer |
||
|
The substation ids for which the delay polynomials apply to. Type: int |
||
type |
integer |
||
|
X coefficient set Delay Model is specified as coefficients for a 5th order polynomial. Coefficients of the polynomial are specified as an array. The delay at time t, where t is measured with respect the beginning of the validity interval is calculated as: d(t) = c0 + c1*t + c2*t^2 + c3*t^3 + c4*t^4 + c5*t^5 Units for coefficients c0,c1,..c5: ns/s^k where k=0,1,..5 Type: float Range for coefficients: 64 bit number |
||
type |
array |
||
items |
type |
number |
|
|
Offset for the Y polarisation Type: float |
||
type |
number |
||
additionalProperties |
True |
Following example shows a subarray beam delay model:
1{
2 "interface": "https://schema.skao.int/ska-low-csp-delaymodel/1.1",
3 "start_validity_sec": 805557541.088861,
4 "cadence_sec": 300.0,
5 "validity_period_sec": 600.0,
6 "config_id": "sbi-mvp01-20200325-00001-science_A",
7 "subarray": 1,
8 "station_beam_delays": [
9 {
10 "station_id": 1,
11 "substation_id": 0,
12 "xypol_coeffs_ns": [
13 "#p1",
14 "#p2",
15 "#p3",
16 "#p4",
17 "#p5",
18 "#p6"
19 ],
20 "ypol_offset_ns": 0.0
21 },
22 {
23 "station_id": 2,
24 "substation_id": 0,
25 "xypol_coeffs_ns": [
26 "#p1",
27 "#p2",
28 "#p3",
29 "#p4",
30 "#p5",
31 "#p6"
32 ],
33 "ypol_offset_ns": 0.0
34 },
35 {
36 "station_id": 3,
37 "substation_id": 0,
38 "xypol_coeffs_ns": [
39 "#p1",
40 "#p2",
41 "#p3",
42 "#p4",
43 "#p5",
44 "#p6"
45 ],
46 "ypol_offset_ns": 0.0
47 },
48 {
49 "station_id": 4,
50 "substation_id": 0,
51 "xypol_coeffs_ns": [
52 "#p1",
53 "#p2",
54 "#p3",
55 "#p4",
56 "#p5",
57 "#p6"
58 ],
59 "ypol_offset_ns": 0.0
60 },
61 {
62 "station_id": 5,
63 "substation_id": 0,
64 "xypol_coeffs_ns": [
65 "#p1",
66 "#p2",
67 "#p3",
68 "#p4",
69 "#p5",
70 "#p6"
71 ],
72 "ypol_offset_ns": 0.0
73 },
74 {
75 "station_id": 6,
76 "substation_id": 0,
77 "xypol_coeffs_ns": [
78 "#p1",
79 "#p2",
80 "#p3",
81 "#p4",
82 "#p5",
83 "#p6"
84 ],
85 "ypol_offset_ns": 0.0
86 }
87 ]
88}
Following example shows a PST beam delay model:
1{
2 "interface": "https://schema.skao.int/ska-low-csp-delaymodel/1.1",
3 "start_validity_sec": 0.1,
4 "cadence_sec": 0.1,
5 "validity_period_sec": 0.1,
6 "config_id": "",
7 "subarray": 1,
8 "station_beam_delays": [
9 {
10 "station_id": 1,
11 "substation_id": 1,
12 "xypol_coeffs_ns": [],
13 "ypol_offset_ns": 0.0
14 },
15 {
16 "station_id": 1,
17 "substation_id": 1,
18 "xypol_coeffs_ns": [],
19 "ypol_offset_ns": 0.0
20 }
21 ]
22}