From e32f012e5ce16b9ca587a5224f0d9c205910f26e Mon Sep 17 00:00:00 2001
From: leufen1 <l.leufen@fz-juelich.de>
Date: Thu, 6 May 2021 15:54:33 +0200
Subject: [PATCH] try out dask approach

---
 mlair/helpers/filter.py | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/mlair/helpers/filter.py b/mlair/helpers/filter.py
index a66eef77..0957d41b 100644
--- a/mlair/helpers/filter.py
+++ b/mlair/helpers/filter.py
@@ -10,6 +10,7 @@ import pandas as pd
 from matplotlib import pyplot as plt
 from scipy import signal
 import xarray as xr
+import dask.array as da
 
 from mlair.helpers import to_list, TimeTrackingWrapper, TimeTracking
 
@@ -267,10 +268,10 @@ class ClimateFIRFilter:
                   "causal": False, "padlen": int(min(padlen_factor, 1) * length)}
         with TimeTracking():
             filt = fir_filter_numpy_vectorized(filter_input_data, var_dim, kwargs)
-        # with TimeTracking():
-        #     filt = xr.apply_ufunc(fir_filter_vectorized, filter_input_data, time_axis,
-        #                           input_core_dims=[[new_dim], []], output_core_dims=[[new_dim]], vectorize=True,
-        #                           kwargs=kwargs)
+        with TimeTracking():
+            filt = xr.apply_ufunc(fir_filter_vectorized, filter_input_data, time_axis,
+                                  input_core_dims=[[new_dim], []], output_core_dims=[[new_dim]], vectorize=True,
+                                  kwargs=kwargs)
 
         # plot
         if self.plot_path is not None:
@@ -397,7 +398,7 @@ def fir_filter_numpy_vectorized(filter_input_data, var_dim, kwargs):
     for var in filter_input_data.coords[var_dim]:
         logging.info(
             f"{filter_input_data.coords['Stations'].values[0]}: {str(var.values)}")  # ToDo must be removed, just for debug
-        a = np.apply_along_axis(fir_filter_vectorized, 2, filter_input_data.sel({var_dim: var}).values, **kwargs)
+        a = da.apply_along_axis(fir_filter_vectorized, 2, filter_input_data.sel({var_dim: var}).values, **kwargs)
         filt_np.loc[{var_dim: var}] = a
     return filt_np
 
-- 
GitLab