From 1e6f47b4dd2f74f9cf0f4d7d882cb7fb0cac7649 Mon Sep 17 00:00:00 2001 From: Peter Luenenschloss <peter.luenenschloss@ufz.de> Date: Thu, 4 Jul 2019 10:46:06 +0200 Subject: [PATCH] fixed empty-series estimation bug --- saqc/funcs/functions.py | 4 ++++ saqc/lib/tools.py | 3 +++ 2 files changed, 7 insertions(+) diff --git a/saqc/funcs/functions.py b/saqc/funcs/functions.py index 17e0d53f5..cb1b7ea43 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 1c8d919ed..063bfe7b6 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() -- GitLab