From e67e16c33218bc6577e3e09be000325676365ed9 Mon Sep 17 00:00:00 2001 From: leufen1 <l.leufen@fz-juelich.de> Date: Mon, 19 Apr 2021 14:11:45 +0200 Subject: [PATCH] offset is implemented in data handler, /close #305 --- mlair/data_handler/data_handler_mixed_sampling.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mlair/data_handler/data_handler_mixed_sampling.py b/mlair/data_handler/data_handler_mixed_sampling.py index e2516257..a1036433 100644 --- a/mlair/data_handler/data_handler_mixed_sampling.py +++ b/mlair/data_handler/data_handler_mixed_sampling.py @@ -205,9 +205,9 @@ class DataHandlerSeparationOfScalesSingleStation(DataHandlerMixedSamplingWithFil """ window = -abs(window) data = self.input_data - self.history = self.stride(data, dim_name_of_shift, window) + self.history = self.stride(data, dim_name_of_shift, window, offset=self.window_history_offset) - def stride(self, data: xr.DataArray, dim: str, window: int) -> xr.DataArray: + def stride(self, data: xr.DataArray, dim: str, window: int, offset: int = 0) -> xr.DataArray: # this is just a code snippet to check the results of the kz filter # import matplotlib @@ -218,12 +218,13 @@ class DataHandlerSeparationOfScalesSingleStation(DataHandlerMixedSamplingWithFil time_deltas = np.round(self.time_delta(self.cutoff_period)).astype(int) start, end = window, 1 res = [] - window_array = self.create_index_array(self.window_dim, range(start, end), squeeze_dim=self.target_dim) + _range = list(map(lambda x: x + offset, range(start, end))) + window_array = self.create_index_array(self.window_dim, _range, squeeze_dim=self.target_dim) for delta, filter_name in zip(np.append(time_deltas, 1), data.coords["filter"]): res_filter = [] data_filter = data.sel({"filter": filter_name}) - for w in range(start, end): - res_filter.append(data_filter.shift({dim: -w * delta})) + for w in _range: + res_filter.append(data_filter.shift({dim: -(w - offset) * delta - offset})) res_filter = xr.concat(res_filter, dim=window_array).chunk() res.append(res_filter) res = xr.concat(res, dim="filter").compute() -- GitLab