Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
kvalobs:kvoss:system:qc2:requirements:algorithms:diptest03 [2011-07-28 22:33:06] paule |
kvalobs:kvoss:system:qc2:requirements:algorithms:diptest03 [2022-05-31 09:29:32] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== QC2d-1: Dip test ====== |
- | {{: | + | {{kvalobs: |
* fs=2 for A(t), | * fs=2 for A(t), | ||
Line 7: | Line 7: | ||
* fs=1 for A(t-2) | * fs=1 for A(t-2) | ||
- | <code> | + | A dip is detected if <m> |
- | | + | where < |
- | | + | < |
- | and | + | |
- | | + | |
- | </code> | + | |
- | where DELTA is dependent on the parameter | + | The neighboring points at t-2 and t may not have missing original values and have |
+ | to match the flags specified in **linear_before_*flags** and **linear_after_*flags**, | ||
+ | respectively. | ||
- | The relevant DELTA is from the stepcheck QC1-3a. In station_param | + | If there are 2 additional usable data points before and 1 usable additional data point after t-1, |
+ | [[Akima splines]] are used for the interpolation and cfailed receives a message | ||
+ | **QC2d-1-A**. To be usable, | ||
+ | to match the flag specification **akima_*flags** in the configuration if it is not | ||
+ | an immediate neighbor of t-1, and . | ||
- | < | + | If akima interpolation is not possible, linear interpolation is used and cfailed receives |
- | set fs=9 for A(t-1) | + | a message **QC2d-1-L**. |
- | set fs=6 for A(t) | + | |
- | </ | + | |
- | A(t-1) receives a corrected value by interpolation. The interpolation method can be linear or by [[Akima splines]]. | + | ==== Configuration ==== |
+ | Beyond the standard configuration options detailed in the [[kvoss: | ||
+ | the following options are available for DipTest. | ||
- | ====== | + | * candidate_cflags (default: fs=2&fhqc=0) and candidate_uflags (default: /no constraint/ |
+ | * akima_cflags (default: /no constraint/ | ||
+ | * linear_before_cflags (default: fs=1) and linear_before_uflags (default: /no constraint/ | ||
+ | * linear_after_cflags (default: fs=2&fhqc=0) and linear_after_uflags (default: /no constraint/ | ||
+ | * dip_flagchange (default: fs=9) specifies the flag modification for t-1 if an interpolation is performed | ||
+ | * afterdip_flagchange (default: fs=4) specifies the flag modification for t if an interpolation is performed | ||
+ | * ParValFilename specifies either (no default, must be specified, see below for examples) | ||
+ | * a filename containing a list of parameter-delta pairs | ||
+ | * or a list of parameter-value pairs when starting with **list:** | ||
- | **Configuration File** | + | === ParValFilename === |
- | < | + | If using a file to specify parameter-delta pairs, the file must be formatted like this: |
- | #Algorithm | + | |
- | Algorithm=DipTest | + | |
+ | 81 10.0 | ||
+ | 85 10.0 | ||
+ | 86 12.5 | ||
- | RunAtHour=21 | + | If using a list to specify parameter-delta pairs, the parameter must be given like this: |
- | RunAtMinute=53 | + | |
- | # Time interval specification (can also be a specific start and stop time) | + | ==== Parameters ==== |
- | Last_NDays=3 | + | |
- | #[Specific Data Type and Paramters ids etc.] | + | Relevant parameters are all those subject to the step check (QC1-3a). The implementation is only tested for hourly measurements. |
- | ParValFilename="/ | + | |
- | #Flag required for neighbour to be used for an interpolation | + | ==== Previous met.no dip tests ==== |
- | U_2=0 | + | |
- | + | ||
- | # Only write data it it has not been analysed by HQC | + | |
- | W_fhqc=0 | + | |
- | </ | + | |
- | + | ||
- | There are some important new features in the configuration file: | + | |
- | - The specification of the algorithm is now handled by a string, i.e. Algorithm=DipTest (or " | + | |
- | - For the first algorithms (e.g. SingleLinear) a separate configuration file exists for each paramid. This leads to many separate configuration files and is rather cumbersome. Here there is one configuration file that points to an additional file that includes the parameter ids to process and any other specific information. In this case the file includes the DELTA paramter (see next excerpt below). Later all this information can be managed in a Qc2 table in the database if this is preferred. | + | |
- | + | ||
- | **Paramter ID file** | + | |
- | + | ||
- | < | + | |
- | 1 9.0 | + | |
- | 2 | + | |
- | 81 | + | |
- | 85 | + | |
- | 86 | + | |
- | ... | + | |
- | </ | + | |
- | + | ||
- | The specific criteria for the DipTest (i.e. fs = 1, 2, 2 for three consecutive points and the value checks defined above) are, for the first version, encoded in the algorithm. | + | |
- | + | ||
- | The algorithm steps back in time checking each successive set of three points (sliding window). If a dip is confirmed a linear interpolation is first applied using the immediate temporal neighbours. The algorithm then checks if there are enough neighbours available of sufficient quality (U_2=0, set in the config file) to perform an Akima Interpolation. If this is satisfied the Akima value is used in preference to that generated from the linear interpolation. | + | |
- | + | ||
- | For each case the results in the kvalobs database are as follows: | + | |
- | + | ||
- | **Linear: | + | |
- | + | ||
- | < | + | |
- | | + | |
- | -----------+---------------------+----------+---------+---------------------+--------+--------+-------+-----------+------------------+------------------+---------------------- | + | |
- | 18230 | 2018-09-09 02:00:00 | 4.3 | 87 | 2018-09-09 01:56:30 | 330 | 0 | 0 | 4.3 | 1101000000000000 | 7000000000000000 | | + | |
- | 18230 | 2018-09-09 03:00:00 | 18 | 87 | 2018-09-09 02:56:33 | 330 | 0 | 0 | 4.2 | 1109000000000000 | 5033300000000001 | QC1-3a-87: | + | |
- | 18230 | 2018-09-09 04:00:00 | 4 | 87 | 2018-09-09 03:57:17 | 330 | 0 | 0 | 4 | 1104000000000000 | 5000000000000001 | QC2d-1 | + | |
- | 18230 | 2018-09-09 05:00:00 | 4.1 | 87 | 2018-09-09 04:56:28 | 330 | 0 | 0 | 4.1 | </ | + | |
- | + | ||
- | **Akima: | + | |
- | + | ||
- | * Note for testing only the linear value is also included in cfailed (see above). | + | |
- | + | ||
- | < | + | |
- | | + | |
- | -----------+---------------------+----------+---------+---------------------+--------+--------+-------+-----------+------------------+------------------+------------------------------------ | + | |
- | 12320 | 2018-09-25 18:00:00 | 381.7 | 104 | 2018-09-25 17:54:15 | 330 | 0 | 0 | 381.7 | 1101000000100100 | 7000000000000000 | | + | |
- | 12320 | 2018-09-25 19:00:00 | 381.6 | 104 | 2018-09-25 18:53:50 | 330 | 0 | 0 | 381.6 | 1101000000100100 | 7000000000000000 | | + | |
- | 12320 | 2018-09-25 20:00:00 | 284.6 | 104 | 2018-09-25 19:54:35 | 330 | 0 | 0 | 381.6 | 1109000000100100 | 5033300000000001 | QC1-3a-104: | + | |
- | 12320 | 2018-09-25 21:00:00 | 381.6 | 104 | 2018-09-25 20:54:44 | 330 | 0 | 0 | 381.6 | 1104000000100100 | 5000000000000001 | QC1-3a-104: | + | |
- | 12320 | 2018-09-25 22:00:00 | 381.6 | 104 | 2018-09-25 21:53:48 | 330 | 0 | 0 | 381.6 | 1101000000100100 | 7000000000000000 | | + | |
- | 12320 | 2018-09-25 23:00:00 | 381.6 | 104 | 2018-09-25 22:53:46 | 330 | 0 | 0 | 381.6 | 1101000000100100 | 7000000000000000 | | + | |
- | (7 rows) | + | |
- | </ | + | |
- | + | ||
- | More test results are compiled under: [[https:// | + | |
- | + | ||
- | **Flag specification chnages** | + | |
- | + | ||
- | * An update of the Flag specification has been made and a test is illustrated here: [[https:// | + | |
- | + | ||
- | + | ||
- | + | ||
- | ====== Parameters ====== | + | |
- | + | ||
- | Relevant parameters are all those subject to the step check (QC1-3a): | + | |
- | ^ paramid ^ parameter ^ δ(X) ^ | + | |
- | | **1** | AA | | | + | |
- | | **2** | BI| | | + | |
- | | **81** | + | |
- | | **85** | + | |
- | | **86** | + | |
- | | **87** | + | |
- | | **88** | + | |
- | | **89** | + | |
- | | **90** | + | |
- | | **91** | + | |
- | | **92** | + | |
- | | **93** | + | |
- | | **94** | + | |
- | | **104** | + | |
- | | **105** | + | |
- | | **113** | + | |
- | | **123** | + | |
- | | **172** | + | |
- | | **174** | + | |
- | | **175** | + | |
- | | **176** | + | |
- | | **177** | + | |
- | | **197** | + | |
- | | **198** | + | |
- | | **199** | + | |
- | | **200** | + | |
- | | **201** | + | |
- | | **211** | + | |
- | | **212** | + | |
- | | **213** | + | |
- | | **215** | + | |
- | | **221** | + | |
- | | **222** | + | |
- | | **223** | + | |
- | | **225** | + | |
- | | **227** | + | |
- | | **262** | + | |
- | | **264** | + | |
- | | **265** | + | |
- | + | ||
- | ===== Dip test flags ===== | + | |
- | |Flag value|Definition|useinfo(2) consequence| | + | |
- | |**fs=4**|Kontrollert. Mistanke om feil detektert i QC1-3. Ingen tilsvarende feil i QC2d-1. Ingen korreksjon.|**Friskmeldt.**| | + | |
- | |fs=5|Kontrollert. Ingen mistanke om feil detektert i QC1-3. Mistanke om feil detektert i QC2d-1.Ingen korreksjon.|Originalverdi noe mistenkelig.| | + | |
- | |**fs=9**|Kontrollert. Observert endring høyere enn testverdi. Korrigert automatisk.|**Originalverdi sikkert feilaktig.**| | + | |
- | + | ||
- | ===== Previous met.no dip tests ===== | + | |
The report 24/93 KLIMA " | The report 24/93 KLIMA " | ||
Line 165: | Line 65: | ||
| | ||
| | ||
- | | + | |
+ | |||
+ | For wind and temperature the Kvalobs dip test will flag more often than Øgland' | ||
- | For wind and temperature the Kvalobs dip test will flag more often than by Øgland' |