diff --git a/mlair/helpers/filter.py b/mlair/helpers/filter.py index a66eef77dc376e950e15e395f2c0a496887b6c9f..0957d41b710fae5c9bd446b6fe1aaa3edcd1a3d9 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