Skip to content

Computed Values and Their Quality ​

The meteorological series from Level-II plots contain gaps: sensor failures, power outages, maintenance. For analyses that require continuous series — climatic water balance, evapotranspiration, drought stress — these daily gaps are modelled and filled.

Filled values are not measurements and can always be distinguished from measured values. They do not replace or overwrite measurements: if measured values arrive later, the measurement takes precedence.

How to recognize a computed value ​

Each daily value carries the ICP origin code code_data_origin:

CodeMeaning
1measured (also a daily value aggregated from hourly values)
3modelled for gap filling
4modelled
9missing value

In the portal charts modelled periods are shaded; hovering over a modelled day shows the interval in the tooltip ("in 95 of 100 cases between A and B") and the predictor value used. The CSV download includes code_data_origin as its own column.

Two stages ​

Filling is done in two stages because the two station types on a plot deserve different predictors.

Stage F — open-area (free-field) from the weather grid. Free-field stations are estimated from the Deutscher Wetterdienst (DWD) gridded data (HYRAS/CDC), sampled at the plot coordinates.

Stage S — stand (forest) from the free-field. Stand stations are then estimated from the free-field of the same plot. This is a better predictor than a kilometer grid: same location, same day, same station type. Two plots without their own free-field borrow that of a neighbour (1207 uses 1202, 1209 uses 1203, 3–4 km away).

Models are trained only on measured days. A model trained on its own filled values would lock in its errors.

The computation ​

For each plot, location and variable a generalized additive model (GAM, R-package mgcv) is fitted. y is the measured daily value on the plot, x the predictor — for Stage F the grid value, for Stage S the free-field value.

Stage F: a smooth, unspecified relationship between grid value and measured value:

y=f(x)+ε

where f is a thin-plate spline with smoothing chosen by cross-validation.

Stage S, temperature and humidity: there is hardly any level difference between stand and free-field — a model on the absolute level would only reproduce the seasonal cycle. We therefore model the deviation, with a cyclic spline over day-of-year (doy) that captures the seasonal canopy effect and closes smoothly between Dec 31 and Jan 1:

y−x=g(doy)+h(x)+εy^=x+g^(doy)+h^(x)

where g is the cyclic spline.

Stage S, global radiation: here the relationship is multiplicative: the stand receives a fraction τ of the free-field radiation, and that fraction follows foliage cover (e.g. oak 1208: 0.77 in winter, 0.15 in summer; pine 1203: 0.47 / 0.29). The model therefore uses a varying coefficient:

y^=x⋅τ(doy)

τ is again a cyclic spline.

Post-processing: raw predictions are physically bounded: precipitation, radiation and evapotranspiration not negative, relative humidity 0–100%. If the grid reports exactly zero millimetres of precipitation the fill is set to exactly zero — a smooth relationship cannot create exact zeros and would otherwise produce spurious small precipitation over the year.

A model needs at least 180 joint training days. Values outside plausible bounds (AT −40…45 °C, PR 0…150 mm, RH 0…100 %, SR 0…500 W/m²) are excluded from training.

How quality is assessed ​

It is not decisive how well a model fits the days it trained on — that is optimistic by design. The decisive test is cross-validation: training years are split into up to five contiguous blocks, and each block is predicted by a model that never saw those years. This mirrors a real gap. Splitting is done by contiguous years, not random days — adjacent days are similar and a random split would overestimate skill.

Three scores result per model:

MetricMeaning
cv_r2cross-validated fraction of explained variance
cv_rmsemean error of a predicted day, in the variable's units
skillimprovement over a trivial reference
skill=1−MSE(Model)MSE(Naive reference)

The naive reference differs by stage: in Stage F the climatological mean, in Stage S the unmodified free-field (additive) or a constant transmission (multiplicative). skill is essential in Stage S because cv_r2 can be misleading when the predictor nearly equals the response.

Models are only written if both conditions hold: cv_r2 above the stage threshold (none for F, 0.5 for S) and skill non-negative. A model worse than its trivial reference does not fill.

A low skill in Stage S is not necessarily a defect: for daily mean temperature it is around 0.05 on pine plots because copying the free-field is already accurate to 0.4–0.6 K; for daily minimum temperature it rises to 0.36–0.75 where the canopy damps extremes and the model helps.

Current status ​

Stage F, eight free-field plots:

Variablecv_r2mean error
Air temperature0.990.72 K
Relative humidity0.83–0.934.5 %
Precipitation0.23–0.582.9 mm

Stage S, eight stand plots:

Variablecv_r2skill
Air temperature0.98–1.000.06–0.54
Relative humidity0.80–0.970.03–0.70
Global radiation0.44–0.96−0.35–0.86

Temperature transfers almost without error, humidity well, precipitation only partially. This is not a method weakness but a property of the variable: a kilometer grid cannot locate convective showers precisely.

Uncertainty for a single day ​

A single model metric is insufficient to judge an individual filled day. We store an interval per day.

To the uncertainty of the mean fit (se_fit, very small with tens of thousands of training days) we add the scatter of individual values around the curve (sigma):

se_pred=se_fit2+σ2

For temperature this is about 0.64 K instead of 0.015 K. A fixed band of fit ± 2 · se_pred covers about 95% on average — for precipitation that mean is misleading because error grows with the amount: on dry days the band would be far too wide, on heavy-rain days too narrow, and errors are skewed.

Therefore the reported interval is formed empirically from actual cross-validation residuals, stratified by predictor classes (precipitation: 0 / ≤1 / ≤5 / >5 mm; radiation: ≤50 / ≤150 / >150 W/m²; temperature and humidity need no classes):

lower=filled value+q2.5%(residuals in class)upper=filled value+q97.5%(residuals in class)

If the predictor itself is estimated: a stand day whose free-field value came from Stage F carries two independent errors. Their half-widths add in quadrature:

half-width=half-widthstand2+(k⋅half-widthfree-field)2

with k = 1 for additive models and k = \tau for the multiplicative radiation model. Which case applies is recorded per day: dwd (Stage F), measured (free-field measured) or modelled (free-field was itself filled).

Limits ​

  • Precipitation: daily-quality remains limited. For monthly and yearly totals the filled series are usable, not for individual heavy-rain event analysis.
  • Free-field radiation: not fillable while the DWD HYRAS radiation series ends in 2020. In the stand it can be filled from the free-field if that has a value on the day.
  • Hourly values: the DWD grid is daily; hourly gaps are not filled.
  • Simultaneous failures: Stage S only helps if the free-field measured that day. This is true for 83–98% of stand gap days, but a power outage may hit both stations. Where the free-field itself was modelled, the interval is correspondingly wider.
  • Borrowed free-fields: for 1207 and 1209 the predictor comes from a plot 3–4 km away. For daily means of temperature and humidity in flat Brandenburg this is uncritical, for radiation with moving cloud fields it is less reliable.