Skip to content
Snippets Groups Projects
Commit 7a492375 authored by Bert Palm's avatar Bert Palm 🎇
Browse files

readded plotting

parent 5a1df7c9
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,7 @@ import pandas as pd
from .reader import readConfig, prepareConfig, checkConfig
from .config import Fields
from .evaluator import evalExpression
from ..lib.plotting import plot
from ..lib.plotting import plot_hook, plotall_hook
from ..flagger import BaseFlagger, CategoricalBaseFlagger, SimpleFlagger, DmpFlagger
......@@ -104,20 +104,19 @@ def runner(metafname, flagger, data, flags=None, nodata=np.nan):
fchunk = flags.loc[start_date:end_date]
dchunk, fchunk = evalExpression(
dchunk, ffchunk = evalExpression(
flag_test,
data=dchunk, flags=fchunk.copy(), field=varname,
flagger=flagger, nodata=nodata)
data.loc[start_date:end_date] = dchunk
flags.loc[start_date:end_date] = fchunk.squeeze()
flags.loc[start_date:end_date] = ffchunk.squeeze()
plot_hook(dchunk, fchunk, ffchunk, varname, configrow[Fields.PLOT], flag_test, flagger)
# NOTE: this method should be removed
flagger.nextTest()
# plot all together
plotvars = meta.loc[meta[Fields.PLOT], Fields.VARNAME].tolist()
if plotvars:
plot(data, flags, True, plotvars, flagger)
plotall_hook(data, flags, flagger)
return data, flags
......@@ -3,8 +3,26 @@
from warnings import warn
from ..core.config import Params
def plot(data, flags, flagmask, varname, flagger, interactive_backend=True, title="Data Plot", show_nans=True):
__plotvars = []
def plotall_hook(data, flags, flagger):
if len(__plotvars) > 1:
_plot(data, flags, True, __plotvars, flagger)
def plot_hook(data, old, new, varname, do_plot, flag_test, flagger):
if do_plot:
__plotvars.append(varname)
# cannot use getFlags here, because if a flag was set (e.g. with force) the
# flag may be the same, but any additional row (e.g. comment-field) would differ
mask = (old[varname] == new[varname]).any(axis=1)
_plot(data, new, mask, varname, flagger, title=flag_test)
def _plot(data, flags, flagmask, varname, flagger, interactive_backend=True, title="Data Plot", show_nans=True):
# only import if plotting is requested by the user
import matplotlib as mpl
......
......@@ -7,7 +7,7 @@ import pandas as pd
from saqc.funcs import register, flagRange
from saqc.core.core import runner
from saqc.core.config import Fields as F
from saqc.lib.plotting import plot
from saqc.lib.plotting import _plot
from test.common import initData, initMetaDict, TESTFLAGGER
......@@ -164,5 +164,5 @@ def test_plotting(data, flagger):
_, flagged = flagRange(data, flags, field, flagger, min=10, max=90, flag=flagger.BAD)
_, flagged = flagRange(data, flagged, field, flagger, min=40, max=60, flag=flagger.GOOD)
mask = flagger.getFlags(flags, field) != flagger.getFlags(flagged, field)
plot(data, flagged, mask, field, flagger, interactive_backend=False)
_plot(data, flagged, mask, field, flagger, interactive_backend=False)
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