Configuration files

The QC2 software utilises Boost.Program_Options as the user control for setting the parameters and checks to be run. All options are held in external configuration files. For the standard setup the configuration files are stored in /etc/kvalobs/Qc2Config and must have the suffix “.cfg” appended to the name.

The contents of the configuration file directory are scanned every minute. Information about when an algorithm is to be run is held in the configuration files, if the current time matches this time, QC2 will execute the algorithm pointed to by the configuration file. The prototype will not check for additional algorithms to be run until the current task is finished.

See version details for specific examples of configuration files.

The configuration files comprise name value pairs, an example is provided below:

AlgoCode=1
InterpCode=3
RunAtHour=20
RunAtMinute=30

#[Time Range]
Start_YYYY=2007
Start_MM=5
Start_DD=31
Start_hh=6
Start_mm=0
Start_ss=0

End_YYYY=2007
End_MM=12
End_DD=31
End_hh=6
End_mm=0
End_ss=0

#[Time Step]
Step_DD=1

#[Specific Data Type and Paramters ids etc.]
ParamId=110
TypeId=302
ParamId=110
TypeId=302

# Only write data it it has not been analysed by HQC
W_fhqc=0
# Condition for running the algorithm
A_fd=2

The above configuration file will run the algorithm which has the id=1 to be run every day at 20:30 UTC.

Parameters

Controlflags ControlFlags set by Qc1 or other Qc2 algorithms are used to manage the operation of each Qc2 algorithm. Five different steps are identified and for each different controlflags can be specified to control the step. There must be corresponding logic in the Qc2 algorithm for each flag specified.

The five steps in which controlflags may be checked are:

  1. READ: controlflag settings to filter which data is read
  2. INTERPOLATE: control flag settings to determine if a model value shall be interpolated
  3. ALGORITHM: control flag settings to determine if the algorithm shall be run
  4. SET: the control flag values to set if an algorithm is successful
  5. WRITE: control flag settings to determine if the result sshall be written to the database

The corresponding names of the controlflags are:

  1. READ: R_fqclevel,R_fr,R_fcc,R_fs,R_fnum,R_fpos,R_fmis,R_ftime,R_fw,R_fstat,R_fcp,R_fclim,R_fd,R_fpre,R_fcombi,R_fhqc
  2. INTERPOLATE: I_fqclevel,I_fr,I_fcc,I_fs,I_fnum,I_fpos,I_fmis,I_ftime,I_fw,I_fstat,I_fcp,I_fclim,I_fd,I_fpre,I_fcombi,I_fhqc
  3. ALGORITHM: A_fqclevel,A_fr,A_fcc,A_fs,A_fnum,A_fpos,A_fmis,A_ftime,A_fw,A_fstat,A_fcp,A_fclim,A_fd,A_fpre,A_fcombi,A_fhqc
  4. WRITE: W_fqclevel,W_fr,W_fcc,W_fs,W_fnum,W_fpos,W_fmis,W_ftime,W_fw,W_fstat,W_fcp,W_fclim,W_fd,W_fpre,W_fcombi,W_fhqc
  5. SET: S_fqclevel,S_fr,S_fcc,S_fs,S_fnum,S_fpos,S_fmis,S_ftime,S_fw,S_fstat,S_fcp,S_fclim,S_fd,S_fpre,S_fcombi,S_fhqc

Only parameters required by the algorithm need to be specified.

List of options (last update: 2011-07-13)

Name to use in the configfuration file Type & Default Value Description
RunAtMinutepo::value<int>(&RunMinute)→default_value(0)Minute at which to run the algorithm.
RunAtHourpo::value<int>(&RunHour)→default_value(2)Hour at which to run the algorithm.
Start_YYYYpo::value<int>(&StartYear)→default_value(miutil::miTime::nowTime().year())Start Year (of the data to process…)
Start_MMpo::value<int> (&StartMonth)→default_value(miutil::miTime::nowTime().month())Start Month
Start_DDpo::value<int>(&StartDay)→default_value(miutil::miTime::nowTime().day()) Start Day
Start_hhpo::value<int>(&StartHour)→default_value(miutil::miTime::nowTime().hour())Start Hour
Start_mmpo::value<int>(&StartMinute)→default_value(0)Start Minute
Start_sspo::value<int>(&StartSecond)→default_value(0)Start Second
End_YYYYpo::value<int>(&EndYear)→default_value(miutil::miTime::nowTime().year())End Year (of the data to process…)
End_MMpo::value<int>(&EndMonth)→default_value(miutil::miTime::nowTime().month())End Month
End_DDpo::value<int>(&EndDay)→default_value(miutil::miTime::nowTime().day()) End Day
End_hhpo::value<int>(&EndHour)→default_value(miutil::miTime::nowTime().hour())End Hour
End_mmpo::value<int>(&EndMinute)→default_value(0)End Minute
End_sspo::value<int>(&EndSecond)→default_value(0)End Second
Last_NDayspo::value<int>(&LastN)→default_value(-1)Last N Days to Run Algorithm (from the latest time)
Step_YYYYpo::value<int>(&StepYear)→default_value(0)Step Year (to step through the data interval …)
Step_MMpo::value<int>(&StepMonth)→default_value(0)Step Minute
Step_DDpo::value<int>(&StepDay)→default_value(0)Step Day
Step_hhpo::value<int>(&StepHour)→default_value(0)Step Hour
Step_mmpo::value<int>(&StepMinute)→default_value(0)Step Minute
Step_sspo::value<int>(&StepSecond)→default_value(0)Step Second
ParamIdpo::value<int>(&ParamId)→default_value(0)Parameter ID
MaxParamIdpo::value<int>(&MaxParamId)→default_value(0)Parameter ID for a maximum value
MinParamIdpo::value<int>(&MinParamId)→default_value(0)Parameter ID for a minimum value
TypeIdpo::value<int>(&TypeId)Type ID
TypeIdspo::value<std::vector<int> >(&TypeIds)One of many Type IDs
AlgoCodepo::value<int>(&AlgoCode)→default_value(-1)Algorithm Code
Algorithmpo::value<std::string>(&Algorithm)→default_value(NotSet)Algorithm Name
InterpCodepo::value<int>(&InterpCode)→default_value(-1)Code to determine method of interpolation
ControlStringpo::value<std::string>(&ControlString)Control Info (not used)
ControlVectorpo::value<std::vector<int> > (&ControlVector)Control Vector (not used)
BestStationFilenamepo::value<std::string> (&BestStationFilename)→default_value(NotSet)Filename containing the best station list
ParValFilenamepo::value<std::string> (&ParValFilename)→default_value(NotSet)Filename containing pairs of paramids and associated values
FlagsInpo::value<std::string> (&FlagsIn)→default_value(NotSet)Pathname for file containing controlinfo useifno test flag pairs
FlagsOutpo::value<std::string> (&FlagsOut)→default_value(NotSet)Pathname for results of flag tests.
CfailedStringpo::value<std::string> (&CfailedString)→default_value()Value to add to CFAILED if the algorithm runs and writes data back to the database
MissingValuepo::value<float>(&MissingValue)→default_value(-32767.0)Original Missing Data Value
RejectedValuepo::value<float>(&RejectedValue)→default_value(-32766.0)Original Rejected Data Value
DeltaValuepo::value<float>(&DeltaValue)→default_value(0.0)Delta Value for Dip Test (can be Øgland's Parameter for example
MinValuepo::value<float>(&MinValue)→default_value(-32767.0)Minimum Data Value For Some Controls
InterpolationDistancepo::value<float>(&InterpolationDistance)→default_value(25)Nearest Neighbour Limiting Distance
MaxHalfGappo::value<int>(&MaxHalfGap)→default_value(0)Maximum distance from a good neighbour for an Akima Interpolation:
z_fqclevelpo::value<std::vector<unsigned char> >(&z_fqclevel)fqclevel [GENERAL FILTER]
z_frpo::value<std::vector<unsigned char> >(&z_fr)fr
z_fccpo::value<std::vector<unsigned char> >(&z_fcc)fcc
z_fspo::value<std::vector<unsigned char> >(&z_fs)fs
z_fnumpo::value<std::vector<unsigned char> >(&z_fnum)fnum
z_fpospo::value<std::vector<unsigned char> >(&z_fpos)fpos
z_fmispo::value<std::vector<unsigned char> >(&z_fmis)fmis
z_ftimepo::value<std::vector<unsigned char> >(&z_ftime)ftime
z_fwpo::value<std::vector<unsigned char> >(&z_fw)fw
z_fstatpo::value<std::vector<unsigned char> >(&z_fstat)fstat
z_fcppo::value<std::vector<unsigned char> >(&z_fcp)fcp
z_fclimpo::value<std::vector<unsigned char> >(&z_fclim)fclim
z_fdpo::value<std::vector<unsigned char> >(&z_fd)fd
z_fprepo::value<std::vector<unsigned char> >(&z_fpre)fpre
z_fcombipo::value<std::vector<unsigned char> >(&z_fcombi)fcombi
z_fhqcpo::value<std::vector<unsigned char> >(&z_fhqc)fhqc
zboolpo::value<bool>(&zbool)→default_value(true)Option to change logic of all flag controls
R_fqclevelpo::value<std::vector<unsigned char> >(&R_fqclevel)fqclevel [FILTER for Reading Data]
R_frpo::value<std::vector<unsigned char> >(&R_fr)fr
R_fccpo::value<std::vector<unsigned char> >(&R_fcc)fcc
R_fspo::value<std::vector<unsigned char> >(&R_fs)fs
R_fnumpo::value<std::vector<unsigned char> >(&R_fnum)fnum
R_fpospo::value<std::vector<unsigned char> >(&R_fpos)fpos
R_fmispo::value<std::vector<unsigned char> >(&R_fmis)fmis
R_ftimepo::value<std::vector<unsigned char> >(&R_ftime)ftime
R_fwpo::value<std::vector<unsigned char> >(&R_fw)fw
R_fstatpo::value<std::vector<unsigned char> >(&R_fstat)fstat
R_fcppo::value<std::vector<unsigned char> >(&R_fcp)fcp
R_fclimpo::value<std::vector<unsigned char> >(&R_fclim)fclim
R_fdpo::value<std::vector<unsigned char> >(&R_fd)fd
R_fprepo::value<std::vector<unsigned char> >(&R_fpre)fpre
R_fcombipo::value<std::vector<unsigned char> >(&R_fcombi)fcombi
R_fhqcpo::value<std::vector<unsigned char> >(&R_fhqc)fhqc
Rboolpo::value<bool>(&Rbool)→default_value(true)Option to change logic of all flag controls
I_fqclevelpo::value<std::vector<unsigned char> >(&I_fqclevel)fqclevel [FILTER for Intrpolating Data]
I_frpo::value<std::vector<unsigned char> >(&I_fr)fr
I_fccpo::value<std::vector<unsigned char> >(&I_fcc)fcc
I_fspo::value<std::vector<unsigned char> >(&I_fs)fs
I_fnumpo::value<std::vector<unsigned char> >(&I_fnum)fnum
I_fpospo::value<std::vector<unsigned char> >(&I_fpos)fpos
I_fmispo::value<std::vector<unsigned char> >(&I_fmis)fmis
I_ftimepo::value<std::vector<unsigned char> >(&I_ftime)ftime
I_fwpo::value<std::vector<unsigned char> >(&I_fw)fw
I_fstatpo::value<std::vector<unsigned char> >(&I_fstat)fstat
I_fcppo::value<std::vector<unsigned char> >(&I_fcp)fcp
I_fclimpo::value<std::vector<unsigned char> >(&I_fclim)fclim
I_fdpo::value<std::vector<unsigned char> >(&I_fd)fd
I_fprepo::value<std::vector<unsigned char> >(&I_fpre)fpre
I_fcombipo::value<std::vector<unsigned char> >(&I_fcombi)fcombi
I_fhqcpo::value<std::vector<unsigned char> >(&I_fhqc)fhqc
Iboolpo::value<bool>(&Ibool)→default_value(true)Option to change logic of all flag controls
A_fqclevelpo::value<std::vector<unsigned char> >(&A_fqclevel)fqclevel [FILTER for applying Algorithm]
A_frpo::value<std::vector<unsigned char> >(&A_fr)fr
A_fccpo::value<std::vector<unsigned char> >(&A_fcc)fcc
A_fspo::value<std::vector<unsigned char> >(&A_fs)fs
A_fnumpo::value<std::vector<unsigned char> >(&A_fnum)fnum
A_fpospo::value<std::vector<unsigned char> >(&A_fpos)fpos
A_fmispo::value<std::vector<unsigned char> >(&A_fmis)fmis
A_ftimepo::value<std::vector<unsigned char> >(&A_ftime)ftime
A_fwpo::value<std::vector<unsigned char> >(&A_fw)fw
A_fstatpo::value<std::vector<unsigned char> >(&A_fstat)fstat
A_fcppo::value<std::vector<unsigned char> >(&A_fcp)fcp
A_fclimpo::value<std::vector<unsigned char> >(&A_fclim)fclim
A_fdpo::value<std::vector<unsigned char> >(&A_fd)fd
A_fprepo::value<std::vector<unsigned char> >(&A_fpre)fpre
A_fcombipo::value<std::vector<unsigned char> >(&A_fcombi)fcombi
A_fhqcpo::value<std::vector<unsigned char> >(&A_fhqc)fhqc
Aboolpo::value<bool>(&Abool)→default_value(true)Option to change logic of all flag controls
Not_fqclevelpo::value<std::vector<unsigned char> >(&Not_fqclevel)fqclevel [FILTER for not applying the Algorithm]
Not_frpo::value<std::vector<unsigned char> >(&Not_fr)fr
Not_fccpo::value<std::vector<unsigned char> >(&Not_fcc)fcc
Not_fspo::value<std::vector<unsigned char> >(&Not_fs)fs
Not_fnumpo::value<std::vector<unsigned char> >(&Not_fnum)fnum
Not_fpospo::value<std::vector<unsigned char> >(&Not_fpos)fpos
Not_fmispo::value<std::vector<unsigned char> >(&Not_fmis)fmis
Not_ftimepo::value<std::vector<unsigned char> >(&Not_ftime)ftime
Not_fwpo::value<std::vector<unsigned char> >(&Not_fw)fw
Not_fstatpo::value<std::vector<unsigned char> >(&Not_fstat)fstat
Not_fcppo::value<std::vector<unsigned char> >(&Not_fcp)fcp
Not_fclimpo::value<std::vector<unsigned char> >(&Not_fclim)fclim
Not_fdpo::value<std::vector<unsigned char> >(&Not_fd)fd
Not_fprepo::value<std::vector<unsigned char> >(&Not_fpre)fpre
Not_fcombipo::value<std::vector<unsigned char> >(&Not_fcombi)fcombi
Not_fhqcpo::value<std::vector<unsigned char> >(&Not_fhqc)fhqc
Notboolpo::value<bool>(&Notbool)→default_value(true)Option to change logic of all flag controls
U_0po::value<std::vector<unsigned char> >(&U_0)f0 [FILTER applied to the Useinfo for applying the ALgorithm.]
U_1po::value<std::vector<unsigned char> >(&U_1)f1
U_2po::value<std::vector<unsigned char> >(&U_2)f2
U_3po::value<std::vector<unsigned char> >(&U_3)f3
U_4po::value<std::vector<unsigned char> >(&U_4)f4
U_5po::value<std::vector<unsigned char> >(&U_5)f5
U_6po::value<std::vector<unsigned char> >(&U_6)f6
U_7po::value<std::vector<unsigned char> >(&U_7)f7
U_8po::value<std::vector<unsigned char> >(&U_8)f8
U_9po::value<std::vector<unsigned char> >(&U_9)f9
U_10po::value<std::vector<unsigned char> >(&U_10)f10
U_11po::value<std::vector<unsigned char> >(&U_11)f11
U_12po::value<std::vector<unsigned char> >(&U_12)f12
U_13po::value<std::vector<unsigned char> >(&U_13)f13
U_14po::value<std::vector<unsigned char> >(&U_14)f14
U_15po::value<std::vector<unsigned char> >(&U_15)f15
Uboolpo::value<bool>(&Ubool)→default_value(true)Option to change logic of all flag controls
NotU_0po::value<std::vector<unsigned char> >(&NotU_0)f0 [FILTER applied to the Useinfo for not applying the ALgorithm.]
NotU_1po::value<std::vector<unsigned char> >(&NotU_1)f1
NotU_2po::value<std::vector<unsigned char> >(&NotU_2)f2
NotU_3po::value<std::vector<unsigned char> >(&NotU_3)f3
NotU_4po::value<std::vector<unsigned char> >(&NotU_4)f4
NotU_5po::value<std::vector<unsigned char> >(&NotU_5)f5
NotU_6po::value<std::vector<unsigned char> >(&NotU_6)f6
NotU_7po::value<std::vector<unsigned char> >(&NotU_7)f7
NotU_8po::value<std::vector<unsigned char> >(&NotU_8)f8
NotU_9po::value<std::vector<unsigned char> >(&NotU_9)f9
NotU_10po::value<std::vector<unsigned char> >(&NotU_10)f10
NotU_11po::value<std::vector<unsigned char> >(&NotU_11)f11
NotU_12po::value<std::vector<unsigned char> >(&NotU_12)f12
NotU_13po::value<std::vector<unsigned char> >(&NotU_13)f13
NotU_14po::value<std::vector<unsigned char> >(&NotU_14)f14
NotU_15po::value<std::vector<unsigned char> >(&NotU_15)f15
NotUboolpo::value<bool>(&NotUbool)→default_value(true)Option to change logic of all flag controls
W_fqclevelpo::value<std::vector<unsigned char> >(&W_fqclevel)fqclevel [FILTER for Writing results back to the DataBase]
W_frpo::value<std::vector<unsigned char> >(&W_fr)fr
W_fccpo::value<std::vector<unsigned char> >(&W_fcc)fcc
W_fspo::value<std::vector<unsigned char> >(&W_fs)fs
W_fnumpo::value<std::vector<unsigned char> >(&W_fnum)fnum
W_fpospo::value<std::vector<unsigned char> >(&W_fpos)fpos
W_fmispo::value<std::vector<unsigned char> >(&W_fmis)fmis
W_ftimepo::value<std::vector<unsigned char> >(&W_ftime)ftime
W_fwpo::value<std::vector<unsigned char> >(&W_fw)fw
W_fstatpo::value<std::vector<unsigned char> >(&W_fstat)fstat
W_fcppo::value<std::vector<unsigned char> >(&W_fcp)fcp
W_fclimpo::value<std::vector<unsigned char> >(&W_fclim)fclim
W_fdpo::value<std::vector<unsigned char> >(&W_fd)fd
W_fprepo::value<std::vector<unsigned char> >(&W_fpre)fpre
W_fcombipo::value<std::vector<unsigned char> >(&W_fcombi)fcombi
W_fhqcpo::value<std::vector<unsigned char> >(&W_fhqc)fhqc
Wboolpo::value<bool>(&Wbool)→default_value(true)Option to change logic of all flag controls
S_fqclevelpo::value<unsigned char>(&S_fqclevel)→default_value(0x3F)fqclevel [Controlinfo to set for the controlled datum]
S_frpo::value<unsigned char>(&S_fr)→default_value(0x3F)fr
S_fccpo::value<unsigned char>(&S_fcc)→default_value(0x3F)fcc
S_fspo::value<unsigned char>(&S_fs)→default_value(0x3F)fs
S_fnumpo::value<unsigned char>(&S_fnum)→default_value(0x3F)fnum
S_fpospo::value<unsigned char>(&S_fpos)→default_value(0x3F)fpos
S_fmispo::value<unsigned char>(&S_fmis)→default_value(0x3F)fmis
S_ftimepo::value<unsigned char>(&S_ftime)→default_value(0x3F)ftime
S_fwpo::value<unsigned char>(&S_fw)→default_value(0x3F)fw
S_fstatpo::value<unsigned char>(&S_fstat)→default_value(0x3F)fstat
S_fcppo::value<unsigned char>(&S_fcp)→default_value(0x3F)fcp
S_fclimpo::value<unsigned char>(&S_fclim)→default_value(0x3F)fclim
S_fdpo::value<unsigned char>(&S_fd)→default_value(0x3F)fd
S_fprepo::value<unsigned char>(&S_fpre)→default_value(0x3F)fpre
S_fcombipo::value<unsigned char>(&S_fcombi)→default_value(0x3F)fcombi
S_fhqcpo::value<unsigned char>(&S_fhqc)→default_value(0x3F)fhqc
change_fqclevelpo::value<std::vector<std::string> >(&change_fqclevel)Conditional change to fqclevel
change_frpo::value<std::vector<std::string> >(&change_fr)Conditional change to fr
change_fccpo::value<std::vector<std::string> >(&change_fcc)Conditional change to fcc
change_fspo::value<std::vector<std::string> >(&change_fs)Conditional change to fs
change_fnumpo::value<std::vector<std::string> >(&change_fnum)Conditional change to fnum
change_fpospo::value<std::vector<std::string> >(&change_fpos)Conditional change to fpos
change_fmispo::value<std::vector<std::string> >(&change_fmis)Conditional change to fmis
change_ftimepo::value<std::vector<std::string> >(&change_ftime)Conditional change to ftime
change_fwpo::value<std::vector<std::string> >(&change_fw)Conditional change to fw
change_fstatpo::value<std::vector<std::string> >(&change_fstat)Conditional change to fstat
change_fcppo::value<std::vector<std::string> >(&change_fcp)Conditional change to fcp
change_fclimpo::value<std::vector<std::string> >(&change_fclim)Conditional change to fclim
change_fdpo::value<std::vector<std::string> >(&change_fd)Conditional change to fd
change_fprepo::value<std::vector<std::string> >(&change_fpre)Conditional change to fpre
change_fcombipo::value<std::vector<std::string> >(&change_fcombi)Conditional change to fcombi
change_fhqcpo::value<std::vector<std::string> >(&change_fhqc)Conditional change to fhqc
V_fqclevelpo::value<std::vector<unsigned char> >(&V_fqclevel)fqclevel [Additional vector for controlinfo controls (not used)]
V_frpo::value<std::vector<unsigned char> >(&V_fr)fr
V_fccpo::value<std::vector<unsigned char> >(&V_fcc)fcc
V_fspo::value<std::vector<unsigned char> >(&V_fs)fs
V_fnumpo::value<std::vector<unsigned char> >(&V_fnum)fnum
V_fpospo::value<std::vector<unsigned char> >(&V_fpos)fpos
V_fmispo::value<std::vector<unsigned char> >(&V_fmis)fmis
V_ftimepo::value<std::vector<unsigned char> >(&V_ftime)ftime
V_fwpo::value<std::vector<unsigned char> >(&V_fw)fw
V_fstatpo::value<std::vector<unsigned char> >(&V_fstat)fstat
V_fcppo::value<std::vector<unsigned char> >(&V_fcp)fcp
V_fclimpo::value<std::vector<unsigned char> >(&V_fclim)fclim
V_fdpo::value<std::vector<unsigned char> >(&V_fd)fd
V_fprepo::value<std::vector<unsigned char> >(&V_fpre)fpre
V_fcombipo::value<std::vector<unsigned char> >(&V_fcombi)fcombi
V_fhqcpo::value<std::vector<unsigned char> >(&V_fhqc)fhqc
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/configuration.txt
  • Last modified: 2022-05-31 09:29:32
  • (external edit)