From 2fe4e7f2015aa5d4b7275967775d45ee4b541898 Mon Sep 17 00:00:00 2001 From: Jan David Mol <mol@astron.nl> Date: Thu, 10 Aug 2023 15:48:23 +0200 Subject: [PATCH] TMSS-2647: Support duplicate subbands in the same SAP (for debugging, and holography) --- .../backend/src/tmss/tmssapp/adapters/parset.py | 7 +++++-- .../{visibilities-8.json => visibilities-9.json} | 13 ++++++++++--- SAS/TMSS/backend/src/tmss/tmssapp/subtasks.py | 2 +- 3 files changed, 16 insertions(+), 6 deletions(-) rename SAS/TMSS/backend/src/tmss/tmssapp/schemas/dataproduct_specifications_template/{visibilities-8.json => visibilities-9.json} (77%) diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/adapters/parset.py b/SAS/TMSS/backend/src/tmss/tmssapp/adapters/parset.py index 3fbe0cf941a..2eaad1fcb24 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/adapters/parset.py +++ b/SAS/TMSS/backend/src/tmss/tmssapp/adapters/parset.py @@ -115,10 +115,13 @@ def _convert_correlator_settings_to_parset_dict(subtask: models.Subtask, spec: d # marshall dataproducts, but only if they're supplied. in some use cases, we want a parset before the subtask is scheduled. for digi_beam in digi_beams: - for subband in digi_beam["subbands"]: + for subband_index, subband in enumerate(digi_beam["subbands"]): dataproduct = [dp for dp in dataproducts if dp.specifications_doc.get("sap") == digi_beam['name'] - and dp.specifications_doc.get("subband") == subband] + and dp.specifications_doc.get("subband") == subband + # In some cases, a subband can appear twice in the same SAP, + # so also match by its index. + and dp.specifications_doc.get("subband_index", subband_index) == subband_index] correlator_dataproducts.append(dataproduct[0] if dataproduct else None) diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/schemas/dataproduct_specifications_template/visibilities-8.json b/SAS/TMSS/backend/src/tmss/tmssapp/schemas/dataproduct_specifications_template/visibilities-9.json similarity index 77% rename from SAS/TMSS/backend/src/tmss/tmssapp/schemas/dataproduct_specifications_template/visibilities-8.json rename to SAS/TMSS/backend/src/tmss/tmssapp/schemas/dataproduct_specifications_template/visibilities-9.json index c351a571ba4..a5bb864afa6 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/schemas/dataproduct_specifications_template/visibilities-8.json +++ b/SAS/TMSS/backend/src/tmss/tmssapp/schemas/dataproduct_specifications_template/visibilities-9.json @@ -3,7 +3,7 @@ "name": "visibilities", "purpose": "technical_commissioning", "schema": { - "$id": "https://tmss.lofar.eu/api/schemas/dataproductspecificationstemplate/visibilities/8#", + "$id": "https://tmss.lofar.eu/api/schemas/dataproductspecificationstemplate/visibilities/9#", "$schema": "http://json-schema.org/draft-06/schema#", "additionalProperties": false, "default": {}, @@ -24,6 +24,13 @@ "minimum": 0, "title": "subband number", "type": "integer" + }, + "subband_index": { + "default": 0, + "maximum": 487, + "minimum": 0, + "title": "subband index with in the SAP", + "type": "integer" } }, "required": [ @@ -32,8 +39,8 @@ ], "title": "visibilities", "type": "object", - "version": 8 + "version": 9 }, "state": "active", - "version": 8 + "version": 9 } diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/subtasks.py b/SAS/TMSS/backend/src/tmss/tmssapp/subtasks.py index 3ac53416a75..1a7c367f73b 100644 --- a/SAS/TMSS/backend/src/tmss/tmssapp/subtasks.py +++ b/SAS/TMSS/backend/src/tmss/tmssapp/subtasks.py @@ -1578,7 +1578,7 @@ def schedule_observation_subtask(observation_subtask: Subtask, misc_unavailable_ dataformat=dataformat, datatype=datatype, producer=output, - specifications_doc={"sap": pointing["name"], "subband": subband}, + specifications_doc={"sap": pointing["name"], "subband": subband, "subband_index": sb_nr - sb_nr_offset}, specifications_template=dataproduct_specifications_template, feedback_doc=dataproduct_feedback_doc, feedback_template=dataproduct_feedback_template, -- GitLab