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