diff --git a/saqc/__main__.py b/saqc/__main__.py new file mode 100644 index 0000000000000000000000000000000000000000..53bc2d8a67bbdb9b7973e9f152b3338e0f848735 --- /dev/null +++ b/saqc/__main__.py @@ -0,0 +1,45 @@ +#! /usr/bin/env python +# -*- coding: utf-8 -*- + +import click + +import numpy as np +import pandas as pd + +from saqc.core import runner +from saqc.flagger import CategoricalFlagger + +FLAGGERS = { + "number": CategoricalFlagger([-1, 0, 1]), + "string": CategoricalFlagger(["NIL", "OK", "BAD"]) +} + +@click.command() +@click.option("-c", "--config", type=click.Path(exists=True), required=True, help="path to the configuration file") +@click.option("-d", "--data", type=click.Path(exists=True), required=True, help="path to the data file") +@click.option("--flagger", default="string", type=click.Choice(FLAGGERS.keys()), help="the flagging scheme to use") +@click.option("--fail/--no-fail", default=True, help="whether to stop the program run on errors") +@click.option("--nodata", default=np.nan, help="the nodata value") +@click.option("--plot/--noplot", default=False, help="whether to plot the results") +def main(config, data, flagger, fail, nodata, plot): + + data = pd.read_csv( + data, + index_col=0, + parse_dates=True, + ) + + data, flagger = runner( + config_file=config, + flagger=FLAGGERS[flagger], + data=data, + nodata=nodata, + error_policy="raise" if fail else "warn" + ) + + # TODO: write file + flags = flagger.getFlags() + + +if __name__ == "__main__": + main() diff --git a/saqc/lib/plotting.py b/saqc/lib/plotting.py index 900efcad2d15634bbe209ac77a8c80a50851da23..4d3f85bae491d734a3011d97376f3606a59ae569 100644 --- a/saqc/lib/plotting.py +++ b/saqc/lib/plotting.py @@ -16,7 +16,7 @@ def plotAllHook(data, flagger): _plot(data, flagger, True, __plotvars) -def plotHook(data, old, new, varname, do_plot, flag_test, plot_nans=True): +def plotHook(data, old, new, varname, do_plot, flag_test, plot_nans=False): # old/new: flagger if do_plot: __plotvars.append(varname)