diff --git a/src/data_handling/data_preparation.py b/src/data_handling/data_preparation.py index 490d661195aa017113f705da7b2e1e896e55fdc1..bce7bfe81aa8f55273f86402d4058498bbb12dcb 100644 --- a/src/data_handling/data_preparation.py +++ b/src/data_handling/data_preparation.py @@ -447,6 +447,12 @@ class DataPrep(object): if True only extract values larger than extreme_values :param timedelta: used as arguments for np.timedelta in order to mark extreme values on datetime """ + + # check if labels or history is None + if (self.label is None) or (self.history is None): + logging.debug(f"{self.station} has `None' labels, skip multiply extremes") + return + # check type if inputs extreme_values = helpers.to_list(extreme_values) for i in extreme_values: diff --git a/test/test_data_handling/test_data_preparation.py b/test/test_data_handling/test_data_preparation.py index 71f3a1d6a0a675a155b517901aef1f3c359b104b..1fe6fa20e7ec7fc52a74901fb8a4e932f2a5b34d 100644 --- a/test/test_data_handling/test_data_preparation.py +++ b/test/test_data_handling/test_data_preparation.py @@ -445,6 +445,20 @@ class TestDataPrep: assert upsampled.shape[2] == sum([f(orig, gt, 1), f(orig, gt, 2)]) assert f(upsampled, lt, -1) == 0 + def test_multiply_extremes_none_label(self, data): + data.transform("datetime") + data.make_history_window("variables", 3, "datetime") + # data.make_labels("variables", "o3", "datetime", 2) + data.label = None + assert data.multiply_extremes([1], extremes_on_right_tail_only=False) is None + + def test_multiply_extremes_none_history(self,data ): + data.transform("datetime") + data.make_history_window("variables", 3, "datetime") + # data.make_labels("variables", "o3", "datetime", 2) + data.label = None + assert data.multiply_extremes([1], extremes_on_right_tail_only=False) is None + def test_get_extremes_history(self, data): data.transform("datetime") data.make_history_window("variables", 3, "datetime")