Skip to content
Snippets Groups Projects
Commit 937be512 authored by lukas leufen's avatar lukas leufen
Browse files

Merge branch 'lukas_issue451_feat_robust-apriori-estimate-for-short-timeseries' into 'develop'

Resolve "robust apriori estimate for short timeseries"

See merge request !513
parents a435c7a3 83a3c975
No related branches found
No related tags found
3 merge requests!522filter can now combine obs, forecast, and apriori for first iteration. Further...,!521Resolve "release v2.4.0",!513Resolve "robust apriori estimate for short timeseries"
Pipeline #140226 failed
......@@ -382,7 +382,7 @@ class ClimateFIRFilter(FIRFilter):
monthly_mean.sel(month=month, drop=True),
monthly)
# transform monthly information into original sampling rate
return monthly.resample({time_dim: sampling}).interpolate()
return monthly.dropna(dim=time_dim).resample({time_dim: sampling}).interpolate()
@staticmethod
def _compute_hourly_mean_per_month(data: xr.DataArray, time_dim: str, as_anomaly: bool) -> Dict[int, xr.DataArray]:
......@@ -422,7 +422,7 @@ class ClimateFIRFilter(FIRFilter):
for month in means.keys():
hourly_mean_single_month = means[month].sel(hour=hour, drop=True)
h_coll = xr.where((h_coll[f"{time_dim}.month"] == month), hourly_mean_single_month, h_coll)
h_coll = h_coll.resample({time_dim: sampling}).interpolate()
h_coll = h_coll.dropna(time_dim).resample({time_dim: sampling}).interpolate()
h_coll = h_coll.sel({time_dim: (h_coll[f"{time_dim}.hour"] == hour)})
return h_coll
......
......@@ -178,8 +178,8 @@ class TestClimateFIRFilter:
obj = object.__new__(ClimateFIRFilter)
sel_opts = {time_dim: slice("2010-05", "2010-08")}
res = obj.create_monthly_mean(xr_array_long, time_dim, sel_opts=sel_opts)
assert res.dropna(time_dim)[f"{time_dim}.month"].min() == 5
assert res.dropna(time_dim)[f"{time_dim}.month"].max() == 8
assert res.dropna(time_dim)[f"{time_dim}.month"].min() == 1
assert res.dropna(time_dim)[f"{time_dim}.month"].max() == 12
mean_jun_2010 = xr_array_long[xr_array_long[f"{time_dim}.month"] == 6].sel({time_dim: "2010"}).mean()
assert res.sel({time_dim: "2010-06-15T00:00:00"}) == mean_jun_2010
......@@ -226,8 +226,8 @@ class TestClimateFIRFilter:
xr_array_long = xr_array_long.resample({time_dim: "1H"}).interpolate()
sel_opts = {time_dim: slice("2010-05", "2010-08")}
res = obj.create_seasonal_hourly_mean(xr_array_long, time_dim, sel_opts=sel_opts)
assert res.dropna(time_dim)[f"{time_dim}.month"].min() == 5
assert res.dropna(time_dim)[f"{time_dim}.month"].max() == 8
assert res.dropna(time_dim)[f"{time_dim}.month"].min() == 1
assert res.dropna(time_dim)[f"{time_dim}.month"].max() == 12
def test_create_unity_array(self, xr_array, time_dim):
obj = object.__new__(ClimateFIRFilter)
......
......@@ -27,7 +27,7 @@ class TestModelSetup:
obj.data_store.set("lr_decay", "dummy_str", "general.model")
obj.data_store.set("hist", "dummy_str", "general.model")
obj.data_store.set("epochs", 2)
obj.model_name = "%s.h5"
obj.model_path = "%s.h5"
yield obj
RunEnvironment().__del__()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment