import copy
import json
from ska_ser_skallop.mvp_control.configuration import generators as gen
standard_configuration_template = {
"pointing": {
"target": {
"system": "ICRS",
"name": "Polaris Australis",
"RA": "21:08:47.92",
"dec": "-88:57:22.9",
}
},
"dish": {"receiverBand": "1"},
"csp": {
"interface": "https://schema.skatelescope.org/ska-csp-configure/1.0",
"subarray": {"subarrayName": "science period 23"},
"common": {
"id": "sbi-mvp01-20200325-00001-science_A",
"frequencyBand": "1",
"subarrayID": 1,
},
"cbf": {
"fsp": [
{
"fspID": 1,
"functionMode": "CORR",
"frequencySliceID": 1,
"integrationTime": 1400,
"corrBandwidth": 0,
"channelAveragingMap": gen.generate_channel_averaging(744, 0, 1, 19),
"fspChannelOffset": 0,
"outputLinkMap": gen.merge(gen.distribute(0, 200, 2), gen.distribute(0, 1, 2)),
"outputHost": [[0, "192.168.1.1"]],
"outputPort": [[0, 9000, 1]],
},
{
"fspID": 2,
"functionMode": "CORR",
"frequencySliceID": 2,
"integrationTime": 1400,
"corrBandwidth": 0,
"channelAveragingMap": gen.generate_channel_averaging(744, 0, 2, 19),
"fspChannelOffset": 14880,
"outputLinkMap": gen.merge(gen.distribute(0, 200, 2), gen.distribute(4, 1, 2)),
"outputHost": [[0, "192.168.1.1"]],
"outputPort": [[0, 9744, 1]],
},
],
"vlbi": {},
},
"pss": {},
"pst": {},
},
"sdp": {"scan_type": "science_A"},
"tmc": {"scanDuration": 6.0},
}
[docs]def generate_standard_conf_to_file(
location: str, sub_array_id: int, sb_id: str, duration: float
) -> str:
template = copy.deepcopy(standard_configuration_template)
template["csp"]["common"]["id"] = f'{sb_id}-{template["sdp"]["scan_type"]}'
template["csp"]["common"]["subarrayID"] = sub_array_id
template["tmc"]["scanDuration"] = duration
file_name = f"{location}/standard_comp.json"
with open(file_name, "w") as file:
json.dump(template, file)
return file_name
[docs]def generate_standard_conf(sub_array_id: int, sb_id: str, duration: float) -> str:
template = standard_configuration_template.copy()
template["csp"]["common"]["id"] = f'{sb_id}-{template["sdp"]["scan_type"]}'
template["csp"]["common"]["subarrayID"] = sub_array_id
template["tmc"]["scanDuration"] = duration
return json.dumps(template)