Qc2 User Guide

This documentation is mostly for the development version 1.3.1 of kvqc2d as of 2011-12-02.

The configuration of Qc2 algorithms is done via configuration files in the folder /etc/kvalobs/Qc2Config. To make it easy to switch between development an production version, the development configuration files have the extension .cfg2, and the production configuration files the extension .cfg. All other files are ignored.

The new version checks tries to check if there is too much or too little configuration. Error messages about bad configuration files should appear as ERROR messages in the logfile /var/log/kvalobs/kvqc2d.log.

The configuration files may contain empty lines and comment lines, i.e. lines that start with a # as first non-whitespace character. Empty lines and comment lines are ignored. The other lines have the form option = value. Options are case-sensitive. If the same option is repeated, a list of values is built, but this feature is not used for all parameters (most take only the first value) and also not checked.

For the development version, the specification of flags and flag modifications has been changed and extended. One part of this is flag matching, the other flag modification.

Flag Matching

To specify flag matching, the following syntax is used:

# controlinfo fr must be 9 or fs must be one of A,B,C; there is no constraint on the other controlinfo or useinfo flags
discarded_cflags = fr=9|fs=[ABC]

# controlinfo(6)=fmis must be 0 and useinfo(0) must be 3 or 7 and useinfo(2) must 0; there is no constraint on the other controlinfo or useinfo flags
neighbor_cflags    = ..._..0_..._..._
neighbor_uflags    = [37].0_..._..._..._

# same as above, but in text format
neighbor_cflags    = fmis=0
neighbor_uflags    = U0=[37]&U2=0

# fmis may not be 7,8 or 9
neighbor_cflags    = fmis=)789(

# controlinfo must have either fmis=0 and fhqc=0 or fmis=1 and fhqc=A; no constraint on useinfo
missing_cflags = fmis=0&fhqc=0|fmis=1&fhqc=A

The characters . and _ match any flag and can be used interchangeably. If using the non-textual specification, it is recommended to use a _ for every fourth flag wildcard and . for all other wildcards to make it easier to read the specification on screen and paper.

Flag Modification

Flag modification consists of an optional matching part like above and a modification part. Both apply only to controlinfo flags.

# set ftime=1 unconditionally; if fmis=3, set fmis=1; if fmis=0 or 2, set fmis=4
update_flagchange  = ..._...1..._..._;..._..3_..._..._->..._..1_..._..._;..._..[02]_..._..._->..._..4_..._..._

# if fmis=1, set fmis=3; if fmis=4, set fs=9
missing_flagchange = fmis=1->fmis=3;fmis=4->fs=9

# set fs=8 and fmis=2
highstart_flagchange = fs=8,fmis=2

The changes are applied in the order they are specified if the respective constraint is met. If multiple changes are specified, the constraints of the later are checked against the flags already modified by the previous change specifications.

Scheduling of the algorithm is done via the options:

  • RunAtHour specifies the hour of the day at which the algorithm should run. The special value -1 means that the algorithm shall run hourly
  • RunAtMinute specifies the minute at which the algorithm should run.

If algorithms are scheduled so that one runs so long that other algorithm's scheduled start times fall during the running time of the former, then the delayed algorithms are run in the same order as originally specified after the long-running algorithm finished. If several algorithms are scheduled for the same time, the order in which they are run is undefined.

See also Qc2 Schedule.

A few options are common to all algorithms. These have default values and are not likely to be inserted in the configuration file.

  • CFAILED_STRING an extra comment added to cfailed for any modified row (default: empty, no extra comment)
  • missing special value indicating a missing value (default: -32767.0)
  • rejected special value indicating a rejected value (default: -32766.0)

The first and last observation times for which an algorithm shall run is specified with:

  • either Start_YYYY, Start_MM, Start_DD, Start_hh, Start_mm, Start_ss and End_YYYY, End_MM, End_DD, End_hh, End_mm, End_ss
  • or with Last_NDays = d which takes the present time (not the scheduled time!) and sets seconds and minutes to 0 to obtain the end time; then, d days are subtracted to obtain the start time. It is also possible to set Start_hh and Start_mm here, for example for data expected at 06:00.

The algorithm to run is defined by the Algorithm option. The following algorithms are known, and links are given the their respective descriptions.

  • DipTest checks for double jumps in the data, see description
  • SingleLinear checks for single missing values, see description
  • Redistribute redistributes accumulated precipitation based on neighbor station data, see description
  • Plumatic checks 1-minute data from vippepluviometer, see description
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • kvalobs/kvoss/system/qc2/user.txt
  • Last modified: 2022-05-31 09:29:32
  • (external edit)