Data file consists of score values and corresponding metadata in an ASCII format.

Every score value is described by the full set of key attributes, like its parameter, station id, month, step etc. Parameters describing one score value at one station are organised into a record. Each record corresponds to one score value. A record is a collection of pairs key=value separated by commas. A record spans one line. Value of the key which is not given in the current record is inherited from the previous record, except for the value parameter v which has to be present in each record.

A record has the following format:

centre=centre, model=model_id, d=yyyymm, t=time, s=forecast_step, st=station_id, lat=latitude, lon=longitude, lam=model_grid_latitude, lom=model_grid_longitude, se=station_elevation, me=model_orography_elevation, par=parameter, sc=score, th=event_thresholds, n=sample_size, v=score_value

If the value of any key is unknown it is encoded as "na". However, every record has to have a valid score_value (the "v" key); if the value is not known such record should not be included in the data file.

Example

For information on how these reports are assembled at ECMWF please refer to ECMWF implementation notes.

centre=ecmf,model=hr_0001,d=201602,t=0,s=0,st=97146,lat=-4.1,lon=122.43,lam=-4.147,lom=122.484,se=50,me=163,par=tcc,sc=ct,th=2/6,v=0/0/0/0/0/7/0/0/21
t=3,s=3,v=0/0/0/0/0/4/0/0/24
t=6,s=6,v=0/0/0/0/0/2/0/0/26
t=12,s=12,v=0/0/0/0/0/6/0/0/22
t=15,s=15,v=0/0/0/0/0/3/0/0/25
t=18,s=18,v=0/0/0/0/0/4/0/0/24
t=0,s=24,v=0/0/0/0/0/5/0/0/23
s=0,sc=mae,th=na,v=60.92
t=3,s=3,v=59.92
t=6,s=6,v=62.01
t=12,s=12,v=60.59
t=15,s=15,v=59.81
t=18,s=18,v=62.08
t=0,s=24,v=65.01
s=0,sc=me,v=-60.92
t=3,s=3,v=-59.92
t=6,s=6,v=-62.01
t=9,s=9,n=26,v=-66.37
...

Values of keys

scoredescription 
me

mean error (bias)

 
maemean absolute error 
rmseroot mean square error 
ct

contingency table values,
scanned from bottom up, then left to right

The rank of a contingency table is defined by number of values in the key event_thresholds
(rank_of_ct = len(event_thresholds)+1)

 

NB. Please note how those contingency tables are constructed.
For an event like "10m wind speed >15m/s" a corresponding contingency
table would traditionally be

 obsnon-obs
fcHF
non-fcMR

but following the definition of 2x2 contingency table on the left the table should be

 ob<1515≤ob
fc<15RM
15≤fcFH
2x2ob<th1th1≤ob
fc<th1AB
th1≤fcCD

v=C/A/D/B

3x3ob<th1th1≤ob<th2th2≤ob
ob<th1ABC
th1≤ob<th2DEF
th2≤obGHI

v=G/D/A/H/E/B/I/F/C

4x4ob<th1th1≤ob<th2th2≤ob<th3th3≤ob
ob<th1ABCD
th1≤ob<th2EFGH
th2≤ob<th3IJKL
th3≤obMNOP

v=M/I/E/A/N/J/F/B/O/K/G/C/P/L/H/D

 

event_thresholddescription
15threshold for a 2x2 contingency table, e.g. if par=ff10m this is an event of 10m wind speed
5/10/15thresholds for a 4x4 contingency table for 10m wind speed

 

Remarks

(*) If the model grid or orography changed during the reported month (due to a model upgrade etc) the values of lam, lom and me should be those of the latest model run.