From 607fc80359120875c1102d80b50de720f29e635b Mon Sep 17 00:00:00 2001 From: leufen1 <l.leufen@fz-juelich.de> Date: Wed, 28 Apr 2021 13:11:38 +0200 Subject: [PATCH] filter width for fir filter is now correct --- .../data_handler_mixed_sampling.py | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/mlair/data_handler/data_handler_mixed_sampling.py b/mlair/data_handler/data_handler_mixed_sampling.py index 71f9fe73..718a8f3e 100644 --- a/mlair/data_handler/data_handler_mixed_sampling.py +++ b/mlair/data_handler/data_handler_mixed_sampling.py @@ -194,13 +194,32 @@ class DataHandlerMixedSamplingWithFirFilterSingleStation(DataHandlerMixedSamplin _requirements = list(set(_requirements1 + _requirements2)) def estimate_filter_width(self): - """ """ - return 5 # Todo: adjust this method + """Filter width is determined by the filter with the highest order.""" + return max(self.filter_order) def _extract_lazy(self, lazy_data): _data, _meta, _input_data, _target_data, self.fir_coeff = lazy_data super(__class__, self)._extract_lazy((_data, _meta, _input_data, _target_data)) + @staticmethod + def _get_fs(**kwargs): + """Return frequency in 1/day (not Hz)""" + sampling = kwargs.get("sampling")[0] + if sampling == "daily": + return 1 + elif sampling == "hourly": + return 24 + else: + raise ValueError(f"Unknown sampling rate {sampling}. Only daily and hourly resolution is supported.") + + +class DataHandlerMixedSamplingWithFirFilter(DefaultDataHandler): + """Data handler using mixed sampling for input and target. Inputs are temporal filtered.""" + + data_handler = DataHandlerMixedSamplingWithFirFilterSingleStation + data_handler_transformation = DataHandlerMixedSamplingWithFirFilterSingleStation + _requirements = data_handler.requirements() + class DataHandlerSeparationOfScalesSingleStation(DataHandlerMixedSamplingWithKzFilterSingleStation): """ -- GitLab