From 3e092797e904a4990284099e919755932162a5ed Mon Sep 17 00:00:00 2001 From: Peter Luenenschloss <peter.luenenschloss@ufz.de> Date: Tue, 26 May 2020 15:47:43 +0200 Subject: [PATCH] added empty intervals flag keyword to proc_resample --- saqc/funcs/proc_functions.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/saqc/funcs/proc_functions.py b/saqc/funcs/proc_functions.py index 8b97375a0..ba6415a90 100644 --- a/saqc/funcs/proc_functions.py +++ b/saqc/funcs/proc_functions.py @@ -104,7 +104,8 @@ def proc_interpolateGrid(data, field, flagger, freq, method, inter_order=2, drop flagscol[flagscol.isna()] = empty_intervals_flag # ...hack done - # we might miss the flag for interpolated data grids last entry (its always nan - just settling a convention here): + # we might miss the flag for interpolated data grids last entry (if we miss it - the datapoint is always nan + # - just settling a convention here): if inter_data.shape[0] > flagscol.shape[0]: flagscol = flagscol.append(pd.Series(empty_intervals_flag, index=[datcol.index[-1]])) @@ -120,21 +121,23 @@ def proc_interpolateGrid(data, field, flagger, freq, method, inter_order=2, drop @register def proc_resample(data, field, flagger, freq, func=np.mean, max_invalid_total_d=np.inf, max_invalid_consec_d=np.inf, - max_invalid_consec_f=np.inf, max_invalid_total_f=np.inf, flag_agg_func=max, method='bagg', **kwargs): + max_invalid_consec_f=np.inf, max_invalid_total_f=np.inf, flag_agg_func=max, method='bagg', + empty_intervals_flag=None, **kwargs): data = data.copy() datcol = data[field] flagscol = flagger.getFlags(field) - + if empty_intervals_flag is None: + empty_intervals_flag = flagger.BAD if func == "shift": datcol = shift2Freq(datcol, method, freq, fill_value=np.nan) - flagscol = shift2Freq(flagscol, method, freq, fill_value=flagger.BAD) + flagscol = shift2Freq(flagscol, method, freq, fill_value=empty_intervals_flag) else: datcol = aggregate2Freq(datcol, method, freq, func, fill_value=np.nan, max_invalid_total=max_invalid_total_d, max_invalid_consec=max_invalid_consec_d) - flagscol = aggregate2Freq(flagscol, method, freq, flag_agg_func, fill_value=flagger.BAD, + flagscol = aggregate2Freq(flagscol, method, freq, flag_agg_func, fill_value=empty_intervals_flag, max_invalid_total=max_invalid_total_f, max_invalid_consec=max_invalid_consec_f) # data/flags reshaping: @@ -151,4 +154,7 @@ def proc_transform(data, field, flagger, func, **kwargs): # (so interpolations wouldn't work) new_col = pd.Series(func(data[field]), index=data[field].index) data[field] = new_col - return data, flagger \ No newline at end of file + return data, flagger + +#@register +#def proc_projectFlags(data, field, flagger, target_field, **kwargs): \ No newline at end of file -- GitLab