Qc2 User Guide
This documentation is mostly for the development version 1.3.1 of kvqc2d as of 2011-12-02.
Configuration
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.
Flags and Flag Modification
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
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 hourlyRunAtMinute
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.
Common Configuration
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 tocfailed
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)
Time Range Configuration
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
andEnd_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 setStart_hh
andStart_mm
here, for example for data expected at 06:00.
Algorithm Choice and Configuration
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 descriptionSingleLinear
checks for single missing values, see descriptionRedistribute
redistributes accumulated precipitation based on neighbor station data, see descriptionPlumatic
checks 1-minute data from vippepluviometer, see description