This is an old revision of the document!


Case Studies

An interesting example to test in a space-time-qc. A sudden drop (10 degrees) in temp caused by front-passage gives error message in QC1. To be granted in QC2. 1292gartland140709kl14|1292gartland140709kl14lyn

Station Gartland, Trøndelag 14 july 2009

Corresponding data series (two-days spanning).

Test Files

Test Data

Test data sets for populating test versions of the kvalobs database:

Note the above is a plain text file. The .doc extension is used since only a limited set of extensions can be uploaded to the wiki FIXME. The text file comprises data extracted from the operational or historic kvalobs database in the form of lines such as:

17741;2007-04-02 06:00:00;-1;110;2007-10-03 16:39:21;402;0;0;-1;1110000000001000;7000000000000000;NULL

and may be loaded into a test version of the kvalobs database with:

$ psql kvalobs

kvalobs=# COPY data FROM //The quoted ' ' Full-path-of-text-file// USING DELIMITERS ';' WITH NULL AS 'NULL';

Using generator.pl

Data Before:

kvalobs=# select * from data where obstime>'2032-03-01 07:00:00' and obstime<'2032-03-10 07:00:00' and stationID=75410 and paramid=110
;
 stationid |       obstime       | original | paramid |       tbtime        | typeid | sensor | level | corrected |   controlinfo    |     useinfo      | cfailed 
-----------+---------------------+----------+---------+---------------------+--------+--------+-------+-----------+------------------+------------------+---------
     75410 | 2032-03-02 06:00:00 |        4 |     110 | 2032-03-02 05:39:14 |   -308 | 0      |     0 |         4 | 0000000000000000 | 9999900000000000 | 
     75410 | 2032-03-03 06:00:00 |     12.5 |     110 | 2032-03-03 05:44:06 |   -308 | 0      |     0 |      12.5 | 0000000000000000 | 9999900000000000 | 
     75410 | 2032-03-04 06:00:00 |      2.4 |     110 | 2032-03-04 05:39:01 |   -308 | 0      |     0 |       2.4 | 0000000000000000 | 9999900000000000 | 
     75410 | 2032-03-05 06:00:00 |      5.4 |     110 | 2032-03-05 06:44:20 |   -308 | 0      |     0 |       3.4 | 0000000000000000 | 9999900000000000 | 
     75410 | 2032-03-06 06:00:00 |     10.7 |     110 | 2032-03-06 05:33:03 |   -308 | 0      |     0 |      10.7 | 0000000000000000 | 9999900000000000 | 
     75410 | 2032-03-07 06:00:00 |      1.8 |     110 | 2032-03-07 05:36:53 |   -308 | 0      |     0 |       1.8 | 0000000000000000 | 9999900000000000 | 
     75410 | 2032-03-08 06:00:00 |      0.6 |     110 | 2032-03-08 05:39:09 |   -308 | 0      |     0 |       0.6 | 0000000000000000 | 9999900000000000 | 
     75410 | 2032-03-09 06:00:00 |      0.7 |     110 | 2032-03-09 05:45:07 |   -308 | 0      |     0 |       0.7 | 0000000000000000 | 9999900000000000 | 
     75410 | 2032-03-10 06:00:00 |      0.3 |     110 | 2032-03-10 05:36:04 |   -308 | 0      |     0 |      15.2 | 0000000000000000 | 9999900000000000 | 
(9 rows)

Run generator.pl with the following paramters:

kvalobs@pak:~/kvalobs-svn/src/kvQc2/Reference/TestDataGeneration$ ./generator.pl "2032-03-06 06:00:00" 4 75410 -308 110

This generates the folowing SQL statements that are applied to the kvalobs database to generate the test data (see below):

SELECT * FROM data WHERE obstime='2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767 AND (SELECT COUNT(original) FROM data WHERE obstime BETWEEN date '2032-03-06 06:00:00' - interval '3 days' AND '2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767)=4;

SELECT * FROM data WHERE obstime BETWEEN date '2032-03-06 06:00:00' - interval '3 days' AND '2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767;


UPDATE data SET original=((SELECT SUM(original) FROM data WHERE obstime BETWEEN date '2032-03-06 06:00:00' - interval '3 days' AND '2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767)+(SELECT COUNT(original) FROM data WHERE obstime BETWEEN date '2032-03-06 06:00:00' - interval '3 days' AND '2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original=-1)) WHERE obstime='2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767 AND (SELECT COUNT(original) FROM data WHERE obstime BETWEEN date '2032-03-06 06:00:00' - interval '3 days' AND '2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767)=4;

UPDATE data SET controlinfo='9999999999992990' WHERE obstime='2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767 AND (SELECT COUNT(original) FROM data WHERE obstime BETWEEN date '2032-03-06 06:00:00' - interval '3 days' AND '2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767)=4;
UPDATE data SET controlinfo='9999999999992990' WHERE obstime BETWEEN date '2032-03-06 06:00:00' -interval '1 days' AND date '2032-03-06 06:00:00' -interval '0 days' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767 AND (SELECT COUNT(original) FROM data WHERE obstime BETWEEN date '2032-03-06 06:00:00' - interval '3 days' AND '2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767)=4;

UPDATE data SET original=-11111 WHERE obstime BETWEEN date '2032-03-06 06:00:00' -interval '1 days' AND date '2032-03-06 06:00:00' -interval '0 days' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767 AND (SELECT COUNT(original) FROM data WHERE obstime BETWEEN date '2032-03-06 06:00:00' - interval '3 days' AND '2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767)=4;

UPDATE data SET controlinfo='9999999999992990' WHERE obstime BETWEEN date '2032-03-06 06:00:00' -interval '2 days' AND date '2032-03-06 06:00:00' -interval '1 days' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767 AND (SELECT COUNT(original) FROM data WHERE obstime BETWEEN date '2032-03-06 06:00:00' - interval '3 days' AND '2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767)=4;

UPDATE data SET original=-11111 WHERE obstime BETWEEN date '2032-03-06 06:00:00' -interval '2 days' AND date '2032-03-06 06:00:00' -interval '1 days' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767 AND (SELECT COUNT(original) FROM data WHERE obstime BETWEEN date '2032-03-06 06:00:00' - interval '3 days' AND '2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767)=4;

UPDATE data SET controlinfo='9999999999992990' WHERE obstime BETWEEN date '2032-03-06 06:00:00' -interval '3 days' AND date '2032-03-06 06:00:00' -interval '2 days' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767 AND (SELECT COUNT(original) FROM data WHERE obstime BETWEEN date '2032-03-06 06:00:00' - interval '3 days' AND '2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767)=4;

UPDATE data SET original=-11111 WHERE obstime BETWEEN date '2032-03-06 06:00:00' -interval '3 days' AND date '2032-03-06 06:00:00' -interval '2 days' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767 AND (SELECT COUNT(original) FROM data WHERE obstime BETWEEN date '2032-03-06 06:00:00' - interval '3 days' AND '2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767)=4;


SELECT * FROM data WHERE obstime='2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767 AND (SELECT COUNT(original) FROM data WHERE obstime BETWEEN date '2032-03-06 06:00:00' - interval '3 days' AND '2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767)=4;

SELECT * FROM data WHERE obstime BETWEEN date '2032-03-06 06:00:00' - interval '3 days' AND '2032-03-06 06:00:00' AND stationid=75410 AND typeid=-308 AND paramid=110 AND original>-32767;

The following data is created:

kvalobs=# select * from data where obstime>'2032-03-01 07:00:00' and obstime<'2032-03-10 07:00:00' and stationID=75410 and paramid=110;
 stationid |       obstime       | original | paramid |       tbtime        | typeid | sensor | level | corrected |   controlinfo    |     useinfo      | cfailed 
-----------+---------------------+----------+---------+---------------------+--------+--------+-------+-----------+------------------+------------------+---------
     75410 | 2032-03-02 06:00:00 |        4 |     110 | 2032-03-02 05:39:14 |   -308 | 0      |     0 |         4 | 0000000000000000 | 9999900000000000 | 
     75410 | 2032-03-03 06:00:00 |   -11111 |     110 | 2032-03-03 05:44:06 |   -308 | 0      |     0 |      12.5 | 9999999999992990 | 9999900000000000 | 
     75410 | 2032-03-04 06:00:00 |   -11111 |     110 | 2032-03-04 05:39:01 |   -308 | 0      |     0 |       2.4 | 9999999999992990 | 9999900000000000 | 
     75410 | 2032-03-05 06:00:00 |   -11111 |     110 | 2032-03-05 06:44:20 |   -308 | 0      |     0 |       3.4 | 9999999999992990 | 9999900000000000 | 
     75410 | 2032-03-06 06:00:00 |       31 |     110 | 2032-03-06 05:33:03 |   -308 | 0      |     0 |      10.7 | 9999999999992990 | 9999900000000000 | 
     75410 | 2032-03-07 06:00:00 |      1.8 |     110 | 2032-03-07 05:36:53 |   -308 | 0      |     0 |       1.8 | 0000000000000000 | 9999900000000000 | 
     75410 | 2032-03-08 06:00:00 |      0.6 |     110 | 2032-03-08 05:39:09 |   -308 | 0      |     0 |       0.6 | 0000000000000000 | 9999900000000000 | 
     75410 | 2032-03-09 06:00:00 |      0.7 |     110 | 2032-03-09 05:45:07 |   -308 | 0      |     0 |       0.7 | 0000000000000000 | 9999900000000000 | 
     75410 | 2032-03-10 06:00:00 |      0.3 |     110 | 2032-03-10 05:36:04 |   -308 | 0      |     0 |      15.2 | 0000000000000000 | 9999900000000000 | 
(9 rows)

Finally replace “-11111” with a missing value.

Scripts work .. but need to be automated more.

Another example after more work on the test data generator.pl script:

Before

     58390 | 2032-03-02 06:00:00 |      0.3 |     110 | 2032-03-02 06:25:19 |    302 | 0      |     0 |       0.3 | 1110000000001001 | 3000000000000070 | 
     58390 | 2032-03-03 06:00:00 |      4.5 |     110 | 2032-03-03 06:10:32 |    302 | 0      |     0 |       4.5 | 1110000000001001 | 3000000000000070 | 
     58390 | 2032-03-04 06:00:00 |      2.5 |     110 | 2032-03-04 06:10:54 |    302 | 0      |     0 |       2.5 | 1110000000001000 | 7000000000000000 | 
     58390 | 2032-03-05 06:00:00 |      8.5 |     110 | 2032-03-05 06:25:24 |    302 | 0      |     0 |       8.5 | 1110000000001000 | 7000000000000000 | 
     58390 | 2032-03-06 06:00:00 |        7 |     110 | 2032-03-06 06:25:24 |    302 | 0      |     0 |         7 | 1110000000001000 | 7000000000000000 | 
     58390 | 2032-03-07 06:00:00 |      0.2 |     110 | 2032-03-07 06:25:21 |    302 | 0      |     0 |       0.2 | 1110000000001000 | 7000000000000000 | 
     58390 | 2032-03-08 06:00:00 |       -1 |     110 | 2032-03-08 06:25:17 |    302 | 0      |     0 |        -1 | 1110000000001000 | 7000000000000000 | 
     58390 | 2032-03-09 06:00:00 |      2.4 |     110 | 2032-03-09 06:06:31 |    302 | 0      |     0 |       2.4 | 1110000000001000 | 7000000000000000 | 
     58390 | 2032-03-10 06:00:00 |      2.2 |     110 | 2032-03-10 06:25:20 |    302 | 0      |     0 |       2.2 | 1110000000001001 | 3000000000000070 | 

Command

./generator.pl "2032-03-09 06:00:00" 7 58390 302 110

After

     58390 | 2032-03-02 06:00:00 |      0.3 |     110 | 2032-03-02 06:25:19 |    302 | 0      |     0 |       0.3 | 1110000000001001 | 3000000000000070 | 
     58390 | 2032-03-03 06:00:00 |   -32767 |     110 | 2032-03-03 06:10:32 |    302 | 0      |     0 |       4.5 | 9999999999992990 | 3000000000000070 | TEST-DATA-RA_RR24 original=4.5
     58390 | 2032-03-04 06:00:00 |   -32767 |     110 | 2032-03-04 06:10:54 |    302 | 0      |     0 |       2.5 | 9999999999992990 | 7000000000000000 | TEST-DATA-RA_RR24 original=2.5
     58390 | 2032-03-05 06:00:00 |   -32767 |     110 | 2032-03-05 06:25:24 |    302 | 0      |     0 |       8.5 | 9999999999992990 | 7000000000000000 | TEST-DATA-RA_RR24 original=8.5
     58390 | 2032-03-06 06:00:00 |   -32767 |     110 | 2032-03-06 06:25:24 |    302 | 0      |     0 |         7 | 9999999999992990 | 7000000000000000 | TEST-DATA-RA_RR24 original=7
     58390 | 2032-03-07 06:00:00 |   -32767 |     110 | 2032-03-07 06:25:21 |    302 | 0      |     0 |       0.2 | 9999999999992990 | 7000000000000000 | TEST-DATA-RA_RR24 original=0.2
     58390 | 2032-03-08 06:00:00 |   -32767 |     110 | 2032-03-08 06:25:17 |    302 | 0      |     0 |        -1 | 9999999999992990 | 7000000000000000 | TEST-DATA-RA_RR24 original=-1
     58390 | 2032-03-09 06:00:00 |     25.1 |     110 | 2032-03-09 06:06:31 |    302 | 0      |     0 |       2.4 | 9999999999992990 | 7000000000000000 | TEST-DATA-RA_RR24 original=2.4
     58390 | 2032-03-10 06:00:00 |      2.2 |     110 | 2032-03-10 06:25:20 |    302 | 0      |     0 |       2.2 | 1110000000001001 | 3000000000000070 | 

What is this data all about?

     18500 | 2032-03-01 14:00:00 |     22.3 |     110 | 2032-03-01 13:50:08 |    342 | 0      |     0 |      22.3 | 1100000000000000 | 7000000000000000 | 
     18500 | 2032-03-01 15:00:00 |     22.2 |     110 | 2032-03-01 14:50:05 |    342 | 0      |     0 |      22.2 | 1100000000000000 | 7000000000000000 | 
     18500 | 2032-03-01 16:00:00 |     22.5 |     110 | 2032-03-01 15:50:15 |    342 | 0      |     0 |      22.5 | 1100000000000000 | 7000000000000000 | 
     18500 | 2032-03-01 17:00:00 |     22.6 |     110 | 2032-03-01 16:50:08 |    342 | 0      |     0 |      22.6 | 1100000000000000 | 7000000000000000 | 
     18500 | 2032-03-01 18:00:00 |     22.6 |     110 | 2032-03-01 17:50:09 |    342 | 0      |     0 |      22.6 | 1100000000000000 | 7000000000000000 | 
     18500 | 2032-03-01 19:00:00 |     22.6 |     110 | 2032-03-01 18:50:11 |    342 | 0      |     0 |      22.6 | 1100000000000000 | 7000000000000000 | 
     18500 | 2032-03-01 20:00:00 |     21.7 |     110 | 2032-03-01 19:50:04 |    342 | 0      |     0 |      21.7 | 1100000000000000 | 7000000000000000 | 
     18500 | 2032-03-01 21:00:00 |     19.9 |     110 | 2032-03-01 20:50:10 |    342 | 0      |     0 |      19.9 | 1100000000000000 | 7000000000000000 |A
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/test.1261230525.txt.gz
  • Last modified: 2022-05-31 09:23:18
  • (external edit)