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