From d591487beaadd8835fec12d472a32a141a8af8a0 Mon Sep 17 00:00:00 2001 From: leufen1 <l.leufen@fz-juelich.de> Date: Sat, 22 May 2021 18:24:15 +0200 Subject: [PATCH] disable plotting for now to have running module --- .../data_handler/data_handler_with_filter.py | 10 +++ mlair/helpers/filter.py | 75 ++++++++++--------- mlair/run_modules/pre_processing.py | 1 + 3 files changed, 50 insertions(+), 36 deletions(-) diff --git a/mlair/data_handler/data_handler_with_filter.py b/mlair/data_handler/data_handler_with_filter.py index 8824acc2..fa94b88c 100644 --- a/mlair/data_handler/data_handler_with_filter.py +++ b/mlair/data_handler/data_handler_with_filter.py @@ -429,6 +429,16 @@ class DataHandlerClimateFirFilterSingleStation(DataHandlerFirFilterSingleStation data.coords[self.window_dim] = data.coords[self.window_dim] + self.window_history_offset self.history = data + def call_transform(self, inverse=False): + opts_input = self._transformation[0] + self.input_data, opts_input = self.transform(self.input_data, dim=[self.time_dim, self.window_dim], + inverse=inverse, opts=opts_input, + transformation_dim=self.target_dim) + opts_target = self._transformation[1] + self.target_data, opts_target = self.transform(self.target_data, dim=self.time_dim, inverse=inverse, + opts=opts_target, transformation_dim=self.target_dim) + self._transformation = (opts_input, opts_target) + class DataHandlerClimateFirFilter(DefaultDataHandler): """Data handler using climatic adjusted FIR filtered data.""" diff --git a/mlair/helpers/filter.py b/mlair/helpers/filter.py index 75c94b36..a4288098 100644 --- a/mlair/helpers/filter.py +++ b/mlair/helpers/filter.py @@ -606,28 +606,31 @@ class ClimateFIRFilter: # visualization # ToDo: move this code part into a separate plot method that is called on the fly, not afterwards # just leave a call self.plot(*args) here! - for viz_date in set(plot_dates).intersection(filt.coords[time_dim].values): - td_type = {"1d": "D", "1H": "h"}.get(sampling) - t_minus = viz_date + np.timedelta64(int(-extend_length_history), td_type) - t_plus = viz_date + np.timedelta64(int(extend_length_future), td_type) - - tmp_filter_data = self._shift_data(d.sel({time_dim: slice(t_minus, t_plus)}), - range(int(-extend_length_history), int(extend_length_future)), - time_dim, var_dim, new_dim) - tmp_filt_nc = xr.apply_ufunc(fir_filter_convolve_vectorized, - tmp_filter_data.sel({time_dim: viz_date}), - input_core_dims=[[new_dim]], - output_core_dims=[[new_dim]], - vectorize=True, - kwargs={"h": h}, - output_dtypes=[d.dtype]) - - valid_range = range(int((length + 1) / 2) if minimum_length is None else minimum_length, 1) - plot_data.append({"t0": viz_date, - "filt": filt.sel({time_dim: viz_date}), - "filter_input": filter_input_data.sel({time_dim: viz_date}), - "filt_nc": tmp_filt_nc, - "valid_range": valid_range}) + # for viz_date in set(plot_dates).intersection(filt.coords[time_dim].values): + # td_type = {"1d": "D", "1H": "h"}.get(sampling) + # t_minus = viz_date + np.timedelta64(int(-extend_length_history), td_type) + # t_plus = viz_date + np.timedelta64(int(extend_length_future), td_type) + # if new_dim not in d.coords: + # tmp_filter_data = self._shift_data(d.sel({time_dim: slice(t_minus, t_plus)}), + # range(int(-extend_length_history), + # int(extend_length_future)), + # time_dim, var_dim, new_dim) + # else: + # tmp_filter_data = d.sel({new_dim: slice(int(-extend_length_history), int(extend_length_future))}) + # tmp_filt_nc = xr.apply_ufunc(fir_filter_convolve_vectorized, + # tmp_filter_data.sel({time_dim: viz_date}), + # input_core_dims=[[new_dim]], + # output_core_dims=[[new_dim]], + # vectorize=True, + # kwargs={"h": h}, + # output_dtypes=[d.dtype]) + # + # valid_range = range(int((length + 1) / 2) if minimum_length is None else minimum_length, 1) + # plot_data.append({"t0": viz_date, + # "filt": filt.sel({time_dim: viz_date}), + # "filter_input": filter_input_data.sel({time_dim: viz_date}), + # "filt_nc": tmp_filt_nc, + # "valid_range": valid_range}) # select only values at tmp dimension 0 at each point in time # coll.append(filt.sel({new_dim: 0}, drop=True)) @@ -637,20 +640,20 @@ class ClimateFIRFilter: # plot # ToDo: enable plotting again - if self.plot_path is not None: - for i, viz_data in enumerate(plot_data): - self.plot_new(viz_data, data.sel({var_dim: [var]}), var_dim, time_dim, new_dim, f"{plot_index}_{i}", - sampling) - - # for i, time_pos in enumerate([0.25, 1.5, 2.75, 4]): # [0.25, 1.5, 2.75, 4] x 365 days - # try: - # - # plot_data = coll[-1] - # pos = int(time_pos * 365 * fs) - # filter_example = plot_data.isel({time_dim: pos}) - # t0 = filter_example.coords[time_dim].values - # - # slice_tmp = slice(pos - abs(plot_data.coords[new_dim].values.min()), pos + abs(plot_data.coords[new_dim].values.min())) + # if self.plot_path is not None: + # for i, viz_data in enumerate(plot_data): + # self.plot_new(viz_data, data.sel({var_dim: [var]}), var_dim, time_dim, new_dim, f"{plot_index}_{i}", + # sampling) + + # for i, time_pos in enumerate([0.25, 1.5, 2.75, 4]): # [0.25, 1.5, 2.75, 4] x 365 days + # try: + # + # plot_data = coll[-1] + # pos = int(time_pos * 365 * fs) + # filter_example = plot_data.isel({time_dim: pos}) + # t0 = filter_example.coords[time_dim].values + # + # slice_tmp = slice(pos - abs(plot_data.coords[new_dim].values.min()), pos + abs(plot_data.coords[new_dim].values.min())) # t_slice = plot_data.isel({time_dim: slice_tmp}).coords[time_dim].values # self.plot(data.sel({var_dim: [var]}), filter_example, var_dim, time_dim, t_slice, t0, f"{plot_index}_{i}") # except IndexError: diff --git a/mlair/run_modules/pre_processing.py b/mlair/run_modules/pre_processing.py index d21f8920..db9d1d5e 100644 --- a/mlair/run_modules/pre_processing.py +++ b/mlair/run_modules/pre_processing.py @@ -355,6 +355,7 @@ def f_proc(data_handler, station, name_affix, store, **kwargs): formatted_lines = traceback.format_exc().splitlines() logging.info( f"remove station {station} because it raised an error: {e} -> {' | '.join(f_inspect_error(formatted_lines))}") + logging.debug(f"detailed information for removal of station {station}: {traceback.format_exc()}") res = None return res, station -- GitLab