From e6e9042e1f963c2bddb02816fde10f633db8da8b Mon Sep 17 00:00:00 2001 From: Ansgar Wehrhahn <31626864+AWehrhahn@users.noreply.github.com> Date: Thu, 28 Oct 2021 15:39:24 +0200 Subject: [PATCH] bugfix if mode name does not match mode keyword --- pyreduce/instruments/common.py | 15 ++++++++------- pyreduce/instruments/filters.py | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/pyreduce/instruments/common.py b/pyreduce/instruments/common.py index 1f40cfaf..a56f9edf 100644 --- a/pyreduce/instruments/common.py +++ b/pyreduce/instruments/common.py @@ -506,10 +506,13 @@ def apply_filters(self, files, expected, allow_calibration_only=False): if shared in step_key.keys() and shared != self.night ] if all(match): - if j is None or abs( - step_data[j][0][self.night] - night - ) > abs(step_data[i][0][self.night] - night): + if j is None: j = i + else: + diff_old = abs(step_data[j][0][self.night] - night) + diff_new = abs(step_data[i][0][self.night] - night) + if diff_new < diff_old: + j = i if j is None: # We still dont find any files logger.warning( @@ -621,10 +624,8 @@ class InstrumentWithModes(Instrument): def __init__(self): super().__init__() - replacement = {k: v for k, v in zip(self.info["id_modes"], self.info["modes"])} - self.filters["mode"] = ModeFilter( - self.info["kw_modes"], replacement=replacement - ) + # replacement = {k: v for k, v in zip(self.info["id_modes"], self.info["modes"])} + self.filters["mode"] = ModeFilter(self.info["kw_modes"]) self.shared += ["mode"] def get_expected_values(self, target, night, mode): diff --git a/pyreduce/instruments/filters.py b/pyreduce/instruments/filters.py index 6c69023b..a5aeb008 100644 --- a/pyreduce/instruments/filters.py +++ b/pyreduce/instruments/filters.py @@ -139,7 +139,7 @@ def collect(self, header): value = super()._collect_value(header) if value is not None: value = Time(value, format=self.timeformat, scale=self.timezone) - value = NightFilter.observation_date_to_night(value) + value = self.observation_date_to_night(value) else: logger.warning( "Could not determine the observation date of %s, skipping it", header