diff --git a/saqc/funcs/harm_functions.py b/saqc/funcs/harm_functions.py index e084161a458c720f3f7893d3b0423d4c1c20efec..28e4085ac86534a182b6c15567e31543324c97fd 100644 --- a/saqc/funcs/harm_functions.py +++ b/saqc/funcs/harm_functions.py @@ -616,6 +616,12 @@ def _reshapeFlags( if method == "nearest_agg": flags = flags.shift(periods=-shift_correcture, freq=pd.Timedelta(freq) / 2) + # some consistency clean up to ensure new flags frame matching new data frames size: + if ref_index[0] != flags.index[0]: + flags = pd.Series(data=flagger.BAD, index=[ref_index[0]], dtype=flagger.dtype).append(flags) + if ref_index[-1] != flags.index[-1]: + flags = flags.append(pd.Series(data=flagger.BAD, index=[ref_index[-1]], dtype=flagger.dtype)) + flagger_new = flagger.initFlags(flags=flags.to_frame(name=field)) else: diff --git a/test/funcs/test_harm_funcs.py b/test/funcs/test_harm_funcs.py index bf5fc29ca801ae2e01f98fa94c7ebaaa4c53f96e..42f13a1dc23603ac05ef6388c8a491d96a65df08 100644 --- a/test/funcs/test_harm_funcs.py +++ b/test/funcs/test_harm_funcs.py @@ -35,7 +35,7 @@ INTERPOLATIONS2 = ["fagg", "time", "polynomial"] FREQS = ["15min", "30min"] -@pytest.fixture +#@pytest.fixture def data(): index = pd.date_range( start="1.1.2011 00:00:00", end="1.1.2011 01:00:00", freq="15min" @@ -339,3 +339,15 @@ def test_wrapper(data, flagger): flag_agg_func=max, drop_flags=None) shift2Grid(data, field, flagger, freq, shift_method='nearest_shift', drop_flags=None) +if __name__ == "__main__": + dat = data() + dat = dat.drop(dat.index[1:3]) + dat2 = dat.copy() + flagger = TESTFLAGGER[2] + flagger2 = TESTFLAGGER[2] + flagger = flagger.initFlags(dat) + flagger2 = flagger.initFlags(dat2) + dat_out, flagger = linear2Grid(dat, 'data', flagger, '15min', flag_assignment_method='nearest_agg', + flag_agg_func=max, drop_flags=None) + + print("stop") \ No newline at end of file