From 38128abff09513661b522817a9395ef6ebf76ba1 Mon Sep 17 00:00:00 2001 From: mancini <mancini@astron.nl> Date: Wed, 21 Aug 2019 09:55:50 +0200 Subject: [PATCH] SSB-47: skipping undefined beamlets --- .../lib/datacontainers/holography_dataset.py | 17 ++++++++++++++++- .../datacontainers/holography_specification.py | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/CAL/CalibrationCommon/lib/datacontainers/holography_dataset.py b/CAL/CalibrationCommon/lib/datacontainers/holography_dataset.py index 2a8782ac50c..20ba1e2623f 100644 --- a/CAL/CalibrationCommon/lib/datacontainers/holography_dataset.py +++ b/CAL/CalibrationCommon/lib/datacontainers/holography_dataset.py @@ -7,7 +7,7 @@ from .calibration_table import CalibrationTable from .holography_dataset_definitions import * from .holography_observation import HolographyObservation from .holography_specification import HolographySpecification - +from numpy import isnan logger = logging.getLogger(__file__) @@ -201,6 +201,8 @@ class HolographyDataset(): # and iterate over the beamlets. for beamlet in beamlets: beamlet_string = str(beamlet) + if beamlet_string not in ra_dec[frequency_string]: + continue ra = ra_dec[frequency_string][beamlet_string]['RA'] dec = ra_dec[frequency_string][beamlet_string]['DEC'] @@ -289,6 +291,12 @@ class HolographyDataset(): frequency_string = str(frequency) for beamlet in self.beamlets: beamlet_string = str(beamlet) + if beamlet_string not in self.ra_dec[frequency_string]: + logger.error('missing pointing %s at frequency %s for station %s skipping', + beamlet_string, + frequency_string, + station_name) + continue reference_station_names, cross_correlation = \ ho.ms_for_a_given_beamlet_number[ beamlet].read_cross_correlation_time_flags_lm_per_station_name( @@ -392,6 +400,13 @@ class HolographyDataset(): self.ra_dec[frequency_string] = dict() for beamlet in self.beamlets: beamlet_string = str(beamlet) + ra, dec, _ = virtual_pointing[(frequency, beamlet)] + if isnan(ra) or isnan(dec): + logger.error('skipping pointing %s for frequency %s malformed : %s', + beamlet_string, frequency_string, virtual_pointing[(frequency, beamlet)]) + # skip if the pointing is ill specified + continue + self.ra_dec[frequency_string][beamlet_string] = numpy.array( virtual_pointing[(frequency, beamlet)], dtype=HDS_coordinate_type) diff --git a/CAL/CalibrationCommon/lib/datacontainers/holography_specification.py b/CAL/CalibrationCommon/lib/datacontainers/holography_specification.py index 55a5ac10b10..ce432c43051 100644 --- a/CAL/CalibrationCommon/lib/datacontainers/holography_specification.py +++ b/CAL/CalibrationCommon/lib/datacontainers/holography_specification.py @@ -165,7 +165,7 @@ def _split_line(line): :rtype: dict """ range_regex = '(\d*\:\d*)|(\d*)' - ra_dec_regex = '\d*\.\d*,-?\d*\.\d*,\w*' + ra_dec_regex = '(\d*\.\d*|nan),(-?\d*\.\d*|nan),(\w*)' regex = r'^(?P<station_name>\w*)\s*' \ r'(?P<mode_description>\w*)\s*' \ r'(?P<sub_band>[\d,]*)\s*' \ -- GitLab