Skip to content
Snippets Groups Projects
Commit c96293fd authored by David Schäfer's avatar David Schäfer
Browse files

removed the getFlags method from the flagger inetrface

parent e2fb79ab
No related branches found
No related tags found
No related merge requests found
......@@ -99,8 +99,8 @@ def runner(meta, flagger, data, flags=None, nodata=np.nan):
raise NameError(
f"function name {func_name} is not definied (variable '{varname}, 'line: {idx + 1})")
old = flagger.getFlags(fchunk[varname])
new = flagger.getFlags(ffchunk[varname])
old = flagger.isFlagged(fchunk[varname])
new = flagger.isFlagged(ffchunk[varname])
mask = old != new
# flag a timespan after the condition is met
......@@ -258,7 +258,7 @@ def readData(fname, index_col, nans):
if __name__ == "__main__":
from flagger import PositionalFlagger
from flagger import DmpFlagger
datafname = "resources/data.csv"
metafname = "resources/meta.csv"
......@@ -267,5 +267,5 @@ if __name__ == "__main__":
nans=["-9999", "-9999.0"])
meta = prepareMeta(pd.read_csv(metafname), data)
flagger = PositionalFlagger()
flagger = DmpFlagger()
pdata, pflags = runner(meta, flagger, data)
......@@ -44,7 +44,7 @@ class BaseFlagger:
if flag is None:
flag = self.flags.max()
else:
self._check_flag(flag)
self._checkFlag(flag)
flags = flags.copy()
flags[flags < flag] = flag
return flags.values
......@@ -57,14 +57,10 @@ class BaseFlagger:
def isFlagged(self, flags: ArrayLike, flag: T = None) -> ArrayLike:
if flag is None:
return pd.notnull(flags) & (flags > self.flags[0])
else:
self._check_flag(flag)
return flags >= flag
def getFlags(self, flags: ArrayLike):
return flags
self._checkFlag(flag)
return flags == flag
def _check_flag(self, flag):
def _checkFlag(self, flag):
if flag not in self.flags:
raise ValueError(f"Invalid flag '{flag}'. "
f"Possible choices are {list(self.flags.categories)[1:]}")
......
......@@ -46,7 +46,7 @@ class DmpFlagger(BaseFlagger):
if flag is None:
flag = self.flags.max()
else:
self._check_flag(flag)
self._checkFlag(flag)
flags = self._reduceColumns(flags)
mask = flags[FlagFields.FLAG] < flag
......@@ -55,20 +55,9 @@ class DmpFlagger(BaseFlagger):
return flags.values
def isFlagged(self, flags, flag=None):
f = self.getFlags(flags)
return super().isFlagged(f, flag)
def getFlags(self, flags):
if isinstance(flags, pd.Series):
f = flags
elif isinstance(flags, pd.DataFrame):
if isinstance(flags.columns, pd.MultiIndex):
f = flags.xs(FlagFields.FLAG, level=ColumnLevels.FLAGS, axis=1)
else:
f = flags.loc[:, FlagFields.FLAG]
else:
raise TypeError
return f.squeeze()
flags = self._reduceColumns(flags)
flagcol = flags.loc[:, FlagFields.FLAG].squeeze()
return super().isFlagged(flagcol, flag)
def _reduceColumns(self, flags):
flags = flags.copy()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment