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): ...@@ -99,8 +99,8 @@ def runner(meta, flagger, data, flags=None, nodata=np.nan):
raise NameError( raise NameError(
f"function name {func_name} is not definied (variable '{varname}, 'line: {idx + 1})") f"function name {func_name} is not definied (variable '{varname}, 'line: {idx + 1})")
old = flagger.getFlags(fchunk[varname]) old = flagger.isFlagged(fchunk[varname])
new = flagger.getFlags(ffchunk[varname]) new = flagger.isFlagged(ffchunk[varname])
mask = old != new mask = old != new
# flag a timespan after the condition is met # flag a timespan after the condition is met
...@@ -258,7 +258,7 @@ def readData(fname, index_col, nans): ...@@ -258,7 +258,7 @@ def readData(fname, index_col, nans):
if __name__ == "__main__": if __name__ == "__main__":
from flagger import PositionalFlagger from flagger import DmpFlagger
datafname = "resources/data.csv" datafname = "resources/data.csv"
metafname = "resources/meta.csv" metafname = "resources/meta.csv"
...@@ -267,5 +267,5 @@ if __name__ == "__main__": ...@@ -267,5 +267,5 @@ if __name__ == "__main__":
nans=["-9999", "-9999.0"]) nans=["-9999", "-9999.0"])
meta = prepareMeta(pd.read_csv(metafname), data) meta = prepareMeta(pd.read_csv(metafname), data)
flagger = PositionalFlagger() flagger = DmpFlagger()
pdata, pflags = runner(meta, flagger, data) pdata, pflags = runner(meta, flagger, data)
...@@ -44,7 +44,7 @@ class BaseFlagger: ...@@ -44,7 +44,7 @@ class BaseFlagger:
if flag is None: if flag is None:
flag = self.flags.max() flag = self.flags.max()
else: else:
self._check_flag(flag) self._checkFlag(flag)
flags = flags.copy() flags = flags.copy()
flags[flags < flag] = flag flags[flags < flag] = flag
return flags.values return flags.values
...@@ -57,14 +57,10 @@ class BaseFlagger: ...@@ -57,14 +57,10 @@ class BaseFlagger:
def isFlagged(self, flags: ArrayLike, flag: T = None) -> ArrayLike: def isFlagged(self, flags: ArrayLike, flag: T = None) -> ArrayLike:
if flag is None: if flag is None:
return pd.notnull(flags) & (flags > self.flags[0]) return pd.notnull(flags) & (flags > self.flags[0])
else: self._checkFlag(flag)
self._check_flag(flag) return flags == flag
return flags >= flag
def getFlags(self, flags: ArrayLike):
return flags
def _check_flag(self, flag): def _checkFlag(self, flag):
if flag not in self.flags: if flag not in self.flags:
raise ValueError(f"Invalid flag '{flag}'. " raise ValueError(f"Invalid flag '{flag}'. "
f"Possible choices are {list(self.flags.categories)[1:]}") f"Possible choices are {list(self.flags.categories)[1:]}")
......
...@@ -46,7 +46,7 @@ class DmpFlagger(BaseFlagger): ...@@ -46,7 +46,7 @@ class DmpFlagger(BaseFlagger):
if flag is None: if flag is None:
flag = self.flags.max() flag = self.flags.max()
else: else:
self._check_flag(flag) self._checkFlag(flag)
flags = self._reduceColumns(flags) flags = self._reduceColumns(flags)
mask = flags[FlagFields.FLAG] < flag mask = flags[FlagFields.FLAG] < flag
...@@ -55,20 +55,9 @@ class DmpFlagger(BaseFlagger): ...@@ -55,20 +55,9 @@ class DmpFlagger(BaseFlagger):
return flags.values return flags.values
def isFlagged(self, flags, flag=None): def isFlagged(self, flags, flag=None):
f = self.getFlags(flags) flags = self._reduceColumns(flags)
return super().isFlagged(f, flag) flagcol = flags.loc[:, FlagFields.FLAG].squeeze()
return super().isFlagged(flagcol, 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()
def _reduceColumns(self, flags): def _reduceColumns(self, flags):
flags = flags.copy() 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