Parameters
parameter | steps | forecast values preprocessing | scores |
---|---|---|---|
2-m temperature | 0,3,6,...,69,72, 78,84,90,...,240 | T2m extracted from model forecast field and then using the recent model orography reduced to the observation station level by T2m_reduced = T2m_model + (elev_model - elev_station)*0.0065 (assuming T2m are in K and elev_* in meters) | ME, MAE, RMSE |
2-m dewpoint | 0,3,6,...,69,72, 78,84,90,...,240 | extracted from model forecast field | ME, MAE, RMSE |
2-m relative humidity | 0,3,6,...,69,72, 78,84,90,...,240 | computed from T2m and TD2m def magnusFormula(T): log10_e_w=-2937.4/T-4.9283*numpy.log10(T)+25.5518 return 10.**log10_e_w e=magnusFormula(Tdew) e_s=magnusFormula(T) RH=e/e_s | ME, MAE, RMSE |
10-m wind direction | 0,3,6,...,69,72, 78,84,90,...,240 | computed from 10-m wind components dd10m = 180./pi * arctan2(u10m,v10m) - 180. where the observed 10-m wind speed is less than 3m/s do not compute dd10m scores; however, that observation is still included into the total count of observations in the current month (which should reach at least 90% for the station score to be included in the report)
| ME, MAE, RMSE fc-ob differences computed as follows: diff = fc - ob where (diff>180): diff-=360 where (diff<-180): diff+=360 |
10-m wind speed | 0,3,6,...,69,72, 78,84,90,...,240 | computed from 10-m wind components ff10m = sqrt(u10m**2+v10m**2) | ME, MAE, RMSE CT (5,10,15) |
total cloud cover | 0,3,6,...,69,72, 78,84,90,...,240 | extracted from model forecast field (0.-1.) then converted to octas | ME, MAE, RMSE CT (2,7) please note incorrect thresholds (2,6) have been written in the earlier version of this document (corrected on 2 April 2019) prior CT computations the forecast values are rounded to the nearest octa |
24-h precipitation | 24,48,72,...,240 | extracted from model forecast as a difference of the precipitation accumulation fields, e.g. tp24(step=120) = accum_precip(step=120) - accum_precip(step=96) | CT (1,10,50) |
6-h precipitation | 6,12,18,...,240 | extracted from model forecast as a difference of the precipitation accumulation fields, e.g. tp6(step=120) = accum_precip(step=120) - accum_precip(step=112) | CT (1,5,25) |
Time averages
All scores are the mean of all forecast of a given time step (lead time) initiated from given network time (00UTC or 12UTC) which verify in the current month.
# compute the list of model runs starting from a particular network time # which all validate in the current month import datetime year = 2016 month = 2 model_start_network = 12 # utc step = 120 # hours observation_networks = (0,6,12,18) model_runs = [] obs_date = datetime.datetime(year=year,month=month,day=1) while obs_date.month==month: for hour in observation_networks: obs_date_now = obs_date.replace(hour=hour) model_start_date = obs_date_now - datetime.timedelta(hours=step) if model_start_date.hour==model_start_network: model_runs.append(model_start_date) obs_date += datetime.timedelta(days=1) for d in model_runs: print d
Orography
We use the model orography valid for individual forecast. The value of the model orography elevation is then given in each data record as the keyword me. If the orography changed in the current month (due to e.g. the forecast model upgrade) the value of me is the one corresponding to the forecast at the end of the month.