From 64ea48699939bb9c7d2331d669df325cc78fd71b Mon Sep 17 00:00:00 2001
From: Peter Luenenschloss <peter.luenenschloss@ufz.de>
Date: Mon, 28 Sep 2020 10:58:33 +0200
Subject: [PATCH] ...

---
 saqc/funcs/functions.py | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/saqc/funcs/functions.py b/saqc/funcs/functions.py
index cffb380bd..2b2778ba0 100644
--- a/saqc/funcs/functions.py
+++ b/saqc/funcs/functions.py
@@ -1062,7 +1062,8 @@ def _slidingWindowSearch(data_arr, bwd_start, fwd_end, stat_func, thresh_func, n
 
 @register(masking='field')
 def flagChangePoints(data, field, flagger, stat_func, thresh_func, bwd_window, min_periods_bwd,
-                     fwd_window=None, min_periods_fwd=None, closed='both', try_to_jit=True):
+                     fwd_window=None, min_periods_fwd=None, closed='both', try_to_jit=True,
+                     agg_range=None):
     """
     Function for change point detection based on sliding window search.
 
@@ -1096,6 +1097,12 @@ def flagChangePoints(data, field, flagger, stat_func, thresh_func, bwd_window, m
     data_ser = data[field]
     center = False
     var_len = data_ser.shape[0]
+    if fwd_window is None:
+        fwd_window = bwd_window
+    if min_periods_fwd is None:
+        min_periods_fwd = min_periods_bwd
+    if agg_range is None:
+        agg_range = f"{int(pd.Timedelta(bwd_window).total_seconds() + pd.Timedelta(fwd_window).total_seconds())}s"
     if try_to_jit:
         stat_func = numba.jit(stat_func)
         thresh_func = numba.jit(thresh_func)
@@ -1115,5 +1122,9 @@ def flagChangePoints(data, field, flagger, stat_func, thresh_func, bwd_window, m
     data_arr = data_ser.values
     stat_arr, thresh_arr = _slidingWindowSearch(data_arr, bwd_start, fwd_end, stat_func, thresh_func, var_len)
 
+    result_arr = stat_arr > thresh_arr
+
+    data_ser[result_arr].rolling(agg_range, closed='both', min_periods=0).count()
+
     flagger = flagger.setFlags(field, loc=result_arr)
     return data, flagger
\ No newline at end of file
-- 
GitLab