ALG004

Acceptance Test for single point missing temperature values with TAN, TAX method

Step Direction Expected Result Pass/Fail Criteria or Comment
001 Prepare test data in the test database. – –
Download Test Data and gunzip. – –
$ psql kvalobs – –
DELETE FROM data WHERE obstime BETWEEN '2024-02-28' AND '2024-04-01';
– –
COPY data FROM '/home/kvalobs/alg004-kvalobsdb.dat' WITH DELIMITER AS '|';
– –
NB specify the actual path to the test data above as required. – –
– –
Check that the time interval contains no Qc2 processed data: – –
kvalobs=# select count(*) from data WHERE obstime BETWEEN '2024-02-28' AND '2024-04-01' and cfailed like '%Qc2%'; count=0 –
002 Download and gunzip alg004.cfg.gz to the /etc/kvalobs/Qc2Config directory and edit RunAtHour and RunAtMinute fields to the time that the test shall be run (e.g. a few minutes UTC in the future). – –
The configuration by default has W_fhqc=0 and Wbool=true. The algorithm will only work on data that ha not been controlled by HQC – –

The configuration file also needs to be edited to include further flag controls ( → ) and include this:

...
#Flag to set if value is corrected
S_ftime=1
change_fmis=3->1
change_fmis=0->4
...
003 Check log files to verify that the algorithm runs as scheduled, e.g. $ tail -f /var/log/Kvalobs/Qc2.log – –
004 Check that Qc2 processed data now resides in the database: – –
kvalobs=# select count(*) from data WHERE obstime BETWEEN '2024-02-28' AND '2024-04-01' and cfailed like '%Qc2%'; count=55 –
005 Delete any existing data output (rm ALG004-Step5.dat) and then EXTRACT THE DATA: DATA-S5 –
psql> select * from data WHERE obstime BETWEEN '2024-02-28' AND '2024-04-01' and cfailed like '%Qc2%'  \g | cat >> ./ALG004-Step5.dat;
006 Plot the data. Download and use the two scripts ./unit_t_plot.bash and unitt.r.gz – –
Make the bash file executable: – –
chmod u+x unit_t_plot.bash – –
Run the script – –
./unit_t_plot.bash ALG004-Step5.dat –
and inspect the produced image ALG004-Step5.dat.jpg file. – –

Alternative to step 006 for use on dev-vm101

These files are already installed under /home/kvalobs.

As user kvalobs:

$ cd
$ ./unit_t_plot_manual.bash ALG004-Step5.dat
 
The data file ALG004-Step5.dat.XY.dat has been created ...
 
Now run the following commands in R:
-------------------------------------- 
 
FileName="ALG004-Step5.dat.XY.dat"
UTD <- read.table(FileName, header=TRUE)
pdf()
plot(UTD[,1],UTD[,2],ylim=c(-20,20),xlim=c(-20,20),xlab='Qc2 Algorithm/mm',ylab='Existing Correction/mm', main='200803 Hourly Temperature', sub='Missing Value Correction',col=4)
lines(c(-20,20),c(-20,20),col=3)
lines(c(-30,30),c(0,0))
lines(c(0,0),c(-30,30))
lines(c(-30,30),c(-30,30),col=3)
dev.off()
 
-------------------------------------- 

i.e. … enter R:

$ R
...
> FileName="ALG004-Step5.dat.XY.dat"
> UTD <- read.table(FileName, header=TRUE)
> pdf()
> plot(UTD[,1],UTD[,2],ylim=c(-20,20),xlim=c(-20,20),xlab='Qc2 Algorithm/mm',ylab='Existing Correction/mm', main='200803 Hourly Temperature', sub='Missing Value Correction',col=4)
> lines(c(-20,20),c(-20,20),col=3)
> lines(c(-30,30),c(0,0))
> lines(c(0,0),c(-30,30))
> lines(c(-30,30),c(-30,30),col=3)
> dev.off()
>
> quit()

The above creates the file Rplots.pdf:

$ xpdf Rplots.pdf 

NB if you have logged in using ssh -X kvalobs@dev-vm101 then the above will probably work!

007 Edit the configuration file and set Wbool=false. Rerun the algorithm. The algorithm will reprocess the data flagged as controlled by HQC already. – –
kvalobs=# select count(*) from data WHERE obstime BETWEEN '2024-02-28' AND '2024-04-01' and cfailed like '%Qc2%'; count=121 –
Capture the results. (rm ALG004-Step7.dat any previous test results) DATA-S7 –
psql> select * from data WHERE obstime BETWEEN '2024-02-28' AND '2024-04-01' and cfailed like '%Qc2%'  \g | cat >> ./ALG004-Step7.dat;
008 Plot results as in step 006 above. –

Prerequisites

Set up the test data (these are prepatory notes for now for set up on pak)

Test Data comprising original data from 2008-03 with all the years set to 2024, the file only contains the parameters for the algorithm.

Configuration File

Setting-up or refreshing the database. (some database management may be required to stop page errors and the like ????, vacuum cleaning etc ???)

Script for plotting the test results. See the Step # above: unit_t_plot.bash.gz

… and not to forget the corresponding R-script called by the shell script: unitt.r.gz