From 4ec76257aab7d3639a82869c77c3bdfb7611a8d6 Mon Sep 17 00:00:00 2001 From: Bert Palm <bert.palm@ufz.de> Date: Tue, 2 Mar 2021 14:47:33 +0100 Subject: [PATCH] fixed changepoints.py --- saqc/flagger/flags.py | 1 + saqc/funcs/changepoints.py | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/saqc/flagger/flags.py b/saqc/flagger/flags.py index 84fc97a78..c06d8da4e 100644 --- a/saqc/flagger/flags.py +++ b/saqc/flagger/flags.py @@ -190,6 +190,7 @@ class Flags: # technically it would be possible to select a field and set # the entire column to a scalar flag value (float), but it has # a high potential, that this is not intended by the user. + # if desired use ``flagger[:, field] = flag`` if not isinstance(value, pd.Series): raise ValueError("must pass value of type pd.Series") diff --git a/saqc/funcs/changepoints.py b/saqc/funcs/changepoints.py index f7234aa6f..9657b53d0 100644 --- a/saqc/funcs/changepoints.py +++ b/saqc/funcs/changepoints.py @@ -30,7 +30,7 @@ def flagChangePoints( fwd_window: Optional[FreqString]=None, min_periods_fwd: Optional[IntegerWindow]=None, closed: Literal["right", "left", "both", "neither"]="both", - try_to_jit: bool=True, + try_to_jit: bool=True, # todo rm reduce_window: FreqString=None, reduce_func: Callable[[np.ndarray, np.ndarray], int]=lambda x, _: x.argmax(), **kwargs @@ -107,7 +107,7 @@ def assignChangePointCluster( fwd_window: str=None, min_periods_fwd: Optional[int]=None, closed: Literal["right", "left", "both", "neither"]="both", - try_to_jit: bool=True, + try_to_jit: bool=True, # todo: rm reduce_window: str=None, reduce_func: Callable[[np.ndarray, np.ndarray], float]=lambda x, _: x.argmax(), model_by_resids: bool=False, @@ -205,7 +205,7 @@ def assignChangePointCluster( stat_func = jit_sf thresh_func = jit_tf try_to_jit = True - except (numba.core.errors.TypingError, numba.core.errors.UnsupportedError, IndexError): + except (numba.TypingError, numba.UnsupportedError, IndexError): try_to_jit = False logging.warning('Could not jit passed statistic - omitting jitting!') @@ -219,7 +219,7 @@ def assignChangePointCluster( residues = pd.Series(np.nan, index=data[field].index) residues[masked_index] = stat_arr data[field] = residues - flagger = flagger.setFlags(field, flag=UNFLAGGED, force=True, **kwargs) + flagger[:, field] = UNFLAGGED return data, flagger det_index = masked_index[result_arr] @@ -239,10 +239,11 @@ def assignChangePointCluster( # (better to start cluster labels with number one) cluster += 1 data[field] = cluster - flagger = flagger.setFlags(field, flag=UNFLAGGED, force=True, **kwargs) + flagger[:, field] = UNFLAGGED if flag_changepoints: - flagger = flagger.setFlags(field, loc=det_index) + # todo: does not respect kwargs[flag] + flagger[det_index, field] = BAD return data, flagger -- GitLab