diff --git a/saqc/funcs/functions.py b/saqc/funcs/functions.py index 17e0d53f5eabc3611b6c3f35036f469057fd0c3a..cb1b7ea430646c0642e95ea5f43d1e85949880ff 100644 --- a/saqc/funcs/functions.py +++ b/saqc/funcs/functions.py @@ -202,6 +202,8 @@ def flagSoilMoistureByPrecipitationEvents(data, flags, field, flagger, prec_refe # additionally drop the nan values that result from any preceeding upsampling of the # measurements: dataseries = dataseries.dropna() + if dataseries.empty: + return (data, flags) # estimate moisture sampling frequencie (the original series sampling rate may not match data-input sample rate): moist_rate = estimateSamplingRate(dataseries.index) # resample dataseries to its original sampling rate @@ -217,6 +219,8 @@ def flagSoilMoistureByPrecipitationEvents(data, flags, field, flagger, prec_refe flagger.isFlagged(ref_flags, flag=flagger.flags.unflagged()) refseries = refseries[ref_use.values] refseries = refseries.dropna() + if refseries.empty: + return (data,flags) prec_rate = estimateSamplingRate(refseries.index) refseries.resample(prec_rate).asfreq() diff --git a/saqc/lib/tools.py b/saqc/lib/tools.py index 1c8d919ed7b998b0c09203847c6b33ae78e078fd..063bfe7b6df3490d049707287f997d2431d1076e 100644 --- a/saqc/lib/tools.py +++ b/saqc/lib/tools.py @@ -109,6 +109,9 @@ def estimateSamplingRate(index): :param index: A DatetimeIndex or array like Datetime listing, of wich you want the sampling rate to be estimated. """ + + if index.empty: + return pd.tseries.frequencies.to_offset('0s') scnds_series = (pd.Series(index).diff().dt.total_seconds()).dropna() max_scnds = scnds_series.max() min_scnds = scnds_series.min()