Skip to content
Snippets Groups Projects
Commit e32f012e authored by leufen1's avatar leufen1
Browse files

try out dask approach

parent f13604b0
No related branches found
No related tags found
5 merge requests!319add all changes of dev into release v1.4.0 branch,!318Resolve "release v1.4.0",!317enabled window_lead_time=1,!295Resolve "data handler FIR filter",!259Draft: Resolve "WRF-Datahandler should inherit from SingleStationDatahandler"
Pipeline #67277 passed
...@@ -10,6 +10,7 @@ import pandas as pd ...@@ -10,6 +10,7 @@ import pandas as pd
from matplotlib import pyplot as plt from matplotlib import pyplot as plt
from scipy import signal from scipy import signal
import xarray as xr import xarray as xr
import dask.array as da
from mlair.helpers import to_list, TimeTrackingWrapper, TimeTracking from mlair.helpers import to_list, TimeTrackingWrapper, TimeTracking
...@@ -267,10 +268,10 @@ class ClimateFIRFilter: ...@@ -267,10 +268,10 @@ class ClimateFIRFilter:
"causal": False, "padlen": int(min(padlen_factor, 1) * length)} "causal": False, "padlen": int(min(padlen_factor, 1) * length)}
with TimeTracking(): with TimeTracking():
filt = fir_filter_numpy_vectorized(filter_input_data, var_dim, kwargs) filt = fir_filter_numpy_vectorized(filter_input_data, var_dim, kwargs)
# with TimeTracking(): with TimeTracking():
# filt = xr.apply_ufunc(fir_filter_vectorized, filter_input_data, time_axis, filt = xr.apply_ufunc(fir_filter_vectorized, filter_input_data, time_axis,
# input_core_dims=[[new_dim], []], output_core_dims=[[new_dim]], vectorize=True, input_core_dims=[[new_dim], []], output_core_dims=[[new_dim]], vectorize=True,
# kwargs=kwargs) kwargs=kwargs)
# plot # plot
if self.plot_path is not None: if self.plot_path is not None:
...@@ -397,7 +398,7 @@ def fir_filter_numpy_vectorized(filter_input_data, var_dim, kwargs): ...@@ -397,7 +398,7 @@ def fir_filter_numpy_vectorized(filter_input_data, var_dim, kwargs):
for var in filter_input_data.coords[var_dim]: for var in filter_input_data.coords[var_dim]:
logging.info( logging.info(
f"{filter_input_data.coords['Stations'].values[0]}: {str(var.values)}") # ToDo must be removed, just for debug 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 filt_np.loc[{var_dim: var}] = a
return filt_np return filt_np
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment