diff --git a/mlair/data_handler/data_handler_mixed_sampling.py b/mlair/data_handler/data_handler_mixed_sampling.py index 3de749d02375243269f9eb51c08400840fd0656a..f83327dbfccd13278c81b03c59a94098563de0ed 100644 --- a/mlair/data_handler/data_handler_mixed_sampling.py +++ b/mlair/data_handler/data_handler_mixed_sampling.py @@ -306,11 +306,12 @@ class DataHandlerMixedSamplingWithClimateAndFirFilter(DataHandlerMixedSamplingWi # _requirements = list(set(data_handler.requirements() + data_handler_unfiltered.requirements())) # DEFAULT_FILTER_ADD_UNFILTERED = False data_handler_climate_fir = DataHandlerMixedSamplingWithClimateFirFilterSingleStation - data_handler_fir = DataHandlerMixedSamplingWithFirFilterSingleStation + data_handler_fir = (DataHandlerMixedSamplingWithFirFilterSingleStation, + DataHandlerMixedSamplingWithClimateFirFilterSingleStation) data_handler = None data_handler_unfiltered = DataHandlerMixedSamplingSingleStation - _requirements = list(set(data_handler_climate_fir.requirements() + data_handler_fir.requirements() + - data_handler_unfiltered.requirements())) + _requirements = list(set(data_handler_climate_fir.requirements() + data_handler_fir[0].requirements() + + data_handler_fir[1].requirements() + data_handler_unfiltered.requirements())) def __init__(self, data_handler_class_chem, data_handler_class_meteo, data_handler_class_chem_unfiltered, data_handler_class_meteo_unfiltered, chem_vars, meteo_vars, *args, **kwargs): @@ -353,6 +354,7 @@ class DataHandlerMixedSamplingWithClimateAndFirFilter(DataHandlerMixedSamplingWi sp_keys.update({"variables": chem_vars}) cls.adjust_window_opts("chem", "window_history_size", sp_keys) cls.adjust_window_opts("chem", "window_history_offset", sp_keys) + cls.adjust_window_opts("chem", "extend_length_opts", sp_keys) sp_chem = cls.data_handler_climate_fir(station, **sp_keys) if filter_add_unfiltered is True: sp_keys = {k: copy.deepcopy(kwargs[k]) for k in cls.data_handler_unfiltered.requirements() if k in kwargs} @@ -360,13 +362,19 @@ class DataHandlerMixedSamplingWithClimateAndFirFilter(DataHandlerMixedSamplingWi sp_keys.update({"variables": chem_vars}) cls.adjust_window_opts("chem", "window_history_size", sp_keys) cls.adjust_window_opts("chem", "window_history_offset", sp_keys) + cls.adjust_window_opts("chem", "extend_length_opts", sp_keys) sp_chem_unfiltered = cls.data_handler_unfiltered(station, **sp_keys) if len(meteo_vars) > 0: + if "extend_length_opts" in kwargs: + cls.data_handler_fir = cls.data_handler_fir[1] # use slower fir version with climate estimate + else: + cls.data_handler_fir = cls.data_handler_fir[0] # use faster fir version without climate estimate sp_keys = {k: copy.deepcopy(kwargs[k]) for k in cls.data_handler_fir.requirements() if k in kwargs} sp_keys = cls.build_update_kwargs(sp_keys, dh_type="filtered_meteo") sp_keys.update({"variables": meteo_vars}) cls.adjust_window_opts("meteo", "window_history_size", sp_keys) cls.adjust_window_opts("meteo", "window_history_offset", sp_keys) + cls.adjust_window_opts("meteo", "extend_length_opts", sp_keys) sp_meteo = cls.data_handler_fir(station, **sp_keys) if filter_add_unfiltered is True: sp_keys = {k: copy.deepcopy(kwargs[k]) for k in cls.data_handler_unfiltered.requirements() if k in kwargs} @@ -374,6 +382,7 @@ class DataHandlerMixedSamplingWithClimateAndFirFilter(DataHandlerMixedSamplingWi sp_keys.update({"variables": meteo_vars}) cls.adjust_window_opts("meteo", "window_history_size", sp_keys) cls.adjust_window_opts("meteo", "window_history_offset", sp_keys) + cls.adjust_window_opts("meteo", "extend_length_opts", sp_keys) sp_meteo_unfiltered = cls.data_handler_unfiltered(station, **sp_keys) dp_args = {k: copy.deepcopy(kwargs[k]) for k in cls.own_args("id_class") if k in kwargs}