Skip to content
Snippets Groups Projects

Make transferFlags a multivariate function

Merged David Schäfer requested to merge multi-transfer into develop
All threads resolved!
2 files
+ 48
31
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 34
31
@@ -19,7 +19,7 @@ from saqc import BAD, FILTER_ALL, UNFLAGGED
from saqc.core import DictOfSeries, flagging, register
from saqc.core.history import History
from saqc.lib.checking import validateChoice, validateWindow
from saqc.lib.tools import initializeTargets, isflagged, isunflagged, toSequence
from saqc.lib.tools import initializeTargets, isflagged, isunflagged, multivariateParameters, toSequence
if TYPE_CHECKING:
from saqc import SaQC
@@ -290,6 +290,7 @@ class FlagtoolsMixin:
demask=[],
squeeze=[],
handles_target=True, # function defines a target parameter, so it needs to handle it
multivariate=True,
)
def transferFlags(
self: "SaQC",
@@ -349,37 +350,39 @@ class FlagtoolsMixin:
0 -inf -inf -inf
1 255.0 255.0 255.0
"""
history = self._flags.history[field]
if target is None:
target = field
if overwrite is False:
mask = isflagged(self._flags[target], thresh=kwargs["dfilter"])
history._hist[mask] = np.nan
# append a dummy column
meta = {
"func": f"transferFlags",
"args": (),
"kwargs": {
"field": field,
"target": target,
"squeeze": squeeze,
"overwrite": overwrite,
**kwargs,
},
}
if squeeze:
flags = history.squeeze(raw=True)
# init an empty history to which we later append the squeezed flags
history = History(index=history.index)
else:
flags = pd.Series(np.nan, index=history.index, dtype=float)
history.append(flags, meta)
self._flags.history[target].append(history)
fields, targets = multivariateParameters(field, target)
for field, target in zip(fields, targets):
history = self._flags.history[field]
# append a dummy column
meta = {
"func": f"transferFlags",
"args": (),
"kwargs": {
"field": field,
"target": target,
"squeeze": squeeze,
"overwrite": overwrite,
**kwargs,
},
}
if overwrite is False:
mask = isflagged(self._flags[target], thresh=kwargs["dfilter"])
history._hist[mask] = np.nan
if squeeze:
flags = history.squeeze(raw=True)
# init an empty history to which we later append the squeezed flags
history = History(index=history.index)
else:
flags = pd.Series(np.nan, index=history.index, dtype=float)
history.append(flags, meta)
self._flags.history[target].append(history)
return self
Loading