From d8c9d68a47857215511afa26d5e937d1212a82d3 Mon Sep 17 00:00:00 2001
From: Peter Luenenschloss <peter.luenenschloss@ufz.de>
Date: Fri, 13 Dec 2019 10:15:39 +0100
Subject: [PATCH] refactoring/renaming in harm_funcs

---
 saqc/funcs/harm_functions.py  | 15 ++++++++-------
 test/funcs/test_harm_funcs.py |  4 ++--
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/saqc/funcs/harm_functions.py b/saqc/funcs/harm_functions.py
index 311369fa1..9e42db1b5 100644
--- a/saqc/funcs/harm_functions.py
+++ b/saqc/funcs/harm_functions.py
@@ -844,8 +844,9 @@ def interpolate2Grid(data, field, flagger, freq, interpolation_method, interpola
         **kwargs)
 
 
-def aggregate(data, field, flagger, source_freq, target_freq, agg_func=np.mean, sample_func=np.mean,
-              invalid_flags=None, max_invalid=np.inf, **kwargs):
+@register('downsample')
+def downsample(data, field, flagger, sample_freq, agg_freq, sample_func=np.mean, agg_func=np.mean,
+               invalid_flags=None, max_invalid=np.inf, **kwargs):
 
     # define the "fastest possible" aggregator
     if sample_func is None:
@@ -868,7 +869,7 @@ def aggregate(data, field, flagger, source_freq, target_freq, agg_func=np.mean,
             sample_func_name = sample_func.__name__
             if max_invalid < np.inf:
                 def aggregator(x):
-                    y = getattr(x.resample(source_freq), sample_func_name)()
+                    y = getattr(x.resample(sample_freq), sample_func_name)()
                     if y.isna().sum() < max_invalid:
                         return agg_func(y)
                     else:
@@ -876,25 +877,25 @@ def aggregate(data, field, flagger, source_freq, target_freq, agg_func=np.mean,
 
             else:
                 def aggregator(x):
-                    return agg_func(getattr(x.resample(source_freq), sample_func_name)())
+                    return agg_func(getattr(x.resample(sample_freq), sample_func_name)())
 
         else:
             if max_invalid < np.inf:
                 def aggregator(x):
-                    y = x.resample(source_freq).apply(sample_func)
+                    y = x.resample(sample_freq).apply(sample_func)
                     if y.isna().sum() < max_invalid:
                         return agg_func(y)
                     else:
                         return np.nan
             else:
                 def aggregator(x):
-                    return agg_func(x.resample(source_freq).apply(sample_func))
+                    return agg_func(x.resample(sample_freq).apply(sample_func))
 
     return harmonize(
         data,
         field,
         flagger,
-        target_freq,
+        agg_freq,
         inter_method='bagg',
         reshape_method='bagg',
         inter_agg=aggregator,
diff --git a/test/funcs/test_harm_funcs.py b/test/funcs/test_harm_funcs.py
index 825f44265..1170981b1 100644
--- a/test/funcs/test_harm_funcs.py
+++ b/test/funcs/test_harm_funcs.py
@@ -19,7 +19,7 @@ from saqc.funcs.harm_functions import (
     interpolate2Grid,
     shift2Grid,
     aggregate2Grid,
-    aggregate
+    downsample
 )
 
 
@@ -335,7 +335,7 @@ def test_wrapper(data, flagger):
     field = data.columns[0]
     freq = '15min'
     flagger = flagger.initFlags(data)
-    aggregate(data, field, flagger, '15min', '30min', agg_func=np.sum, sample_func=np.mean)
+    downsample(data, field, flagger, '15min', '30min', agg_func=np.sum, sample_func=np.mean)
 
     linear2Grid(data, field, flagger, freq, flag_assignment_method='nearest_agg', flag_agg_func=max,
                                drop_flags=None)
-- 
GitLab