From d5063a9701b282423abf5074185eb122475b1054 Mon Sep 17 00:00:00 2001 From: maaijke <mevius@astron.nl> Date: Fri, 9 May 2025 09:32:13 +0200 Subject: [PATCH] add function to extract fly eye station --- scintillation/averaging.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scintillation/averaging.py b/scintillation/averaging.py index d2c7836..1d6749a 100644 --- a/scintillation/averaging.py +++ b/scintillation/averaging.py @@ -685,6 +685,11 @@ def round_up_datetime(datet, interval): def round_down_datetime(datet, interval): return datetime.utcfromtimestamp(numpy.floor(datet.timestamp() / interval) * interval).replace(tzinfo=timezone.utc) +def get_station_and_beam_names(dataset): + stations_list = dataset['/'].attrs['OBSERVATION_STATIONS_LIST'] + beam_name = list(dataset['/']['SUB_ARRAY_POINTING_000'].keys())[0] + station_name = stations_list[int(beam_name[-1])] + return station_name, beam_name def split_samples(dynspec_name, metadata, @@ -726,13 +731,12 @@ def split_samples(dynspec_name, station_name, *_ = metadata['BEAM_STATIONS_LIST'] station_name = decode_str(station_name) else: - station_name, *_ = metadata['OBSERVATION_STATIONS_LIST'] + station_name, beam_name = get_station_and_beam_names(dataset) if 'DATA' in dataset[dynspec_name]: data_array = dataset[dynspec_name]['DATA'] nofch = 1 #TODO check if this is always the case for DYNSPEC data else: - beam_name = [ibeam for ibeam in dataset[dynspec_name].keys() if "BEAM" in ibeam ][0] data_array = dataset[dynspec_name][beam_name]['STOKES_0'] #take median over channels for raw data nofch = dataset[dynspec_name][beam_name]['STOKES_0'].attrs['NOF_CHANNELS'][0] -- GitLab