diff --git a/src/model_modules/linear_model.py b/src/model_modules/linear_model.py index 17a9b2326ab6ba1829ee4f65f0161de887e70778..d8c455b551ef748e90ae601c91931a8092a82b38 100644 --- a/src/model_modules/linear_model.py +++ b/src/model_modules/linear_model.py @@ -32,7 +32,7 @@ class OrdinaryLeastSquaredModel: def predict(self, data): data = sm.add_constant(self.reshape_xarray_to_numpy(data)) - return self.model.predict(data) + return np.atleast_2d(self.model.predict(data)) @staticmethod def reshape_xarray_to_numpy(data): diff --git a/src/plotting/postprocessing_plotting.py b/src/plotting/postprocessing_plotting.py index cd49ddd56b0a4642b0a9a7f280d0a6b83681398c..ece1ad97fb0be754c97997fb63d711e351d1095f 100644 --- a/src/plotting/postprocessing_plotting.py +++ b/src/plotting/postprocessing_plotting.py @@ -63,7 +63,8 @@ class PlotMonthlySummary(RunEnvironment): data = xr.open_dataarray(file_name) data_cnn = data.sel(type="CNN").squeeze() - data_cnn.coords["ahead"].values = [f"{days}d" for days in data_cnn.coords["ahead"].values] + if len(data_cnn.shape) > 1: + data_cnn.coords["ahead"].values = [f"{days}d" for days in data_cnn.coords["ahead"].values] data_orig = data.sel(type="orig", ahead=1).squeeze() data_orig.coords["ahead"] = "orig" diff --git a/src/run_modules/experiment_setup.py b/src/run_modules/experiment_setup.py index 9ecc421bc1ef6790d0de8343066c15332728ecc9..d2410de06c8726ad1aef3626a56876c3202bf334 100644 --- a/src/run_modules/experiment_setup.py +++ b/src/run_modules/experiment_setup.py @@ -33,13 +33,13 @@ class ExperimentSetup(RunEnvironment): window_lead_time=None, dimensions=None, interpolate_dim=None, interpolate_method=None, limit_nan_fill=None, train_start=None, train_end=None, val_start=None, val_end=None, test_start=None, test_end=None, use_all_stations_on_all_data_sets=True, trainable=False, fraction_of_train=None, - experiment_path=None, plot_path=None, forecast_path=None, overwrite_local_data=None): + experiment_path=None, plot_path=None, forecast_path=None, overwrite_local_data=None, sampling="daily"): # create run framework super().__init__() # experiment setup - self._set_param("data_path", helpers.prepare_host()) + self._set_param("data_path", helpers.prepare_host(sampling=sampling)) self._set_param("trainable", trainable, default=False) self._set_param("fraction_of_training", fraction_of_train, default=0.8) @@ -72,6 +72,7 @@ class ExperimentSetup(RunEnvironment): self._set_param("end", end, default="2017-12-31", scope="general") self._set_param("window_history_size", window_history_size, default=13) self._set_param("overwrite_local_data", overwrite_local_data, default=False, scope="general.preprocessing") + self._set_param("sampling", sampling) # target self._set_param("target_var", target_var, default="o3") diff --git a/src/run_modules/post_processing.py b/src/run_modules/post_processing.py index e6f271ce3cc6cf2548ff5b06ba40e2fd509f8c8d..93cb27dcdc7ad10137dd663c35ca43c401254872 100644 --- a/src/run_modules/post_processing.py +++ b/src/run_modules/post_processing.py @@ -140,7 +140,9 @@ class PostProcessing(RunEnvironment): def _create_ols_forecast(self, input_data, ols_prediction, mean, std, transformation_method): tmp_ols = self.ols_model.predict(input_data) tmp_ols = statistics.apply_inverse_transformation(tmp_ols, mean, std, transformation_method) - ols_prediction.values = np.swapaxes(np.expand_dims(tmp_ols, axis=1), 2, 0) + tmp_ols = np.expand_dims(tmp_ols, axis=1) + target_shape = ols_prediction.values.shape + ols_prediction.values = np.swapaxes(tmp_ols, 2, 0) if target_shape != tmp_ols.shape else tmp_ols return ols_prediction def _create_persistence_forecast(self, input_data, persistence_prediction, mean, std, transformation_method): diff --git a/src/run_modules/pre_processing.py b/src/run_modules/pre_processing.py index 2a4632d515a36a77b01a09a539da4f51ecd3e07a..c5b1c53fc007a887f5219066185b5a02f352ee7c 100644 --- a/src/run_modules/pre_processing.py +++ b/src/run_modules/pre_processing.py @@ -13,7 +13,7 @@ from src.join import EmptyQueryResult DEFAULT_ARGS_LIST = ["data_path", "network", "stations", "variables", "interpolate_dim", "target_dim", "target_var"] DEFAULT_KWARGS_LIST = ["limit_nan_fill", "window_history_size", "window_lead_time", "statistics_per_var", - "station_type", "overwrite_local_data", "start", "end"] + "station_type", "overwrite_local_data", "start", "end", "sampling"] class PreProcessing(RunEnvironment):