From 589af3b0619df800bba840118ab3a70a9e71f88b Mon Sep 17 00:00:00 2001
From: Peter Luenenschloss <peter.luenenschloss@ufz.de>
Date: Wed, 29 Apr 2020 12:48:40 +0200
Subject: [PATCH] minor inconsistency solved

---
 saqc/funcs/proc_functions.py | 1 +
 saqc/lib/ts_operators.py     | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/saqc/funcs/proc_functions.py b/saqc/funcs/proc_functions.py
index 13097bbff..071437ab0 100644
--- a/saqc/funcs/proc_functions.py
+++ b/saqc/funcs/proc_functions.py
@@ -12,6 +12,7 @@ from saqc.lib.tools import composeFunction, toSequence
 def proc_interpolateMissing(data, field, flagger, method, inter_order=2, inter_limit=2, interpol_flag='UNFLAGGED',
                             downgrade_interpolation=False, return_chunk_bounds=False, not_interpol_flags=None, **kwargs):
 
+    data = data.copy()
     inter_data = interpolateNANs(data[field], method, order=inter_order, inter_limit=inter_limit,
                            downgrade_interpolation=downgrade_interpolation, return_chunk_bounds=return_chunk_bounds)
     interpolated = data[field].isna() & inter_data.notna()
diff --git a/saqc/lib/ts_operators.py b/saqc/lib/ts_operators.py
index 331d65f2b..d72dcf934 100644
--- a/saqc/lib/ts_operators.py
+++ b/saqc/lib/ts_operators.py
@@ -168,7 +168,7 @@ def interpolateNANs(data, method, order=2, inter_limit=2, downgrade_interpolatio
     :return:
     """
 
-    data = pd.Series(data)
+    data = pd.Series(data).copy()
     gap_mask = (data.rolling(inter_limit, min_periods=0).apply(lambda x: np.sum(np.isnan(x)), raw=True)) != inter_limit
 
     if inter_limit == 2:
@@ -190,7 +190,7 @@ def interpolateNANs(data, method, order=2, inter_limit=2, downgrade_interpolatio
 
     if method in ["linear", "time"]:
 
-        data.interpolate(method=method, inplace=True, limit=1, limit_area="inside")
+        data.interpolate(method=method, inplace=True, limit=inter_limit-1, limit_area="inside")
 
     else:
         dat_name = data.name
@@ -221,7 +221,7 @@ def interpolateNANs(data, method, order=2, inter_limit=2, downgrade_interpolatio
         # squeezing the 1-dimensional frame resulting from groupby for consistency reasons
         data = data.squeeze(axis=1)
         data.name = dat_name
-        data = data.reindex(pre_index)
+    data = data.reindex(pre_index)
     if return_chunk_bounds:
         return data, chunk_bounds
     else:
-- 
GitLab