Source code for ska_ser_skallop.mvp_control.configuration.configuration

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)