diff --git a/saqc/funcs/functions.py b/saqc/funcs/functions.py index f3025aa194ae39d3aaa94babc9219fc76c234abf..2f1c1a8f147e48beaa7a163726f6d88f2c804e26 100644 --- a/saqc/funcs/functions.py +++ b/saqc/funcs/functions.py @@ -247,8 +247,10 @@ def flagSoilMoistureByPrecipitationEvents(data, flags, field, flagger, prec_refe periods = 2*int(24*60*60/moist_rate.n) invalid_raises = ~ef.rolling(window='1D', closed='both', min_periods=periods)\ .apply(prec_test, raw=False).astype(bool) - - # apply calculated flagging mask - flags.loc[invalid_raises.values, field] = flagger.setFlag(flags.loc[invalid_raises.values, field], **kwargs) - - return (data, flags) \ No newline at end of file + # undo stacking heritage (only every second entrie actually is holding an information: + invalid_raises = invalid_raises[1::2] + # retrieve indices referring to values-to-be-flagged-bad + invalid_indices = invalid_raises.index[invalid_raises] + # set Flags + flags.loc[invalid_indices, field] = flagger.setFlag(flags.loc[invalid_indices, field], **kwargs) + return (data, flags) diff --git a/saqc/lib/tools.py b/saqc/lib/tools.py index 3a2d28fcc37df21a86b1f4f039cc4a14590592bc..1c8d919ed7b998b0c09203847c6b33ae78e078fd 100644 --- a/saqc/lib/tools.py +++ b/saqc/lib/tools.py @@ -113,5 +113,6 @@ def estimateSamplingRate(index): max_scnds = scnds_series.max() min_scnds = scnds_series.min() hist = np.histogram(scnds_series, range=(min_scnds, max_scnds + 1), bins=int(max_scnds - min_scnds + 1)) - # return smallest non zero sample difference (this works, because input is expected to be harmonized) + # return smallest non zero sample difference (this works, because input is expected to be at least + # harmonized with skips) return pd.tseries.frequencies.to_offset(str(int(hist[1][:-1][hist[0] > 0].min())) + 's')