Skip to content

Reference Evapotranspiration ET₀ ​

Evapotranspiration is not measured. It is computed per plot and hour from four meteorological variables using the Penman-Monteith equation in its FAO form (Allen et al. 1998, Irrigation and Drainage Paper 56).

The result is reference evapotranspiration ET₀: the evapotranspiration of a hypothetical, well-watered, 12 cm tall grass surface with an albedo of 0.23. It is a weather index, not a measure of the actual water use of a pine or beech stand. For stand evapotranspiration see the LWF-BROOK90 simulations; ET₀ enters the climatic water balance as the atmospheric demand term.

Inputs ​

VariableCodeUnit in the DBUse
Air temperatureAT°Crequired
Relative humidityRH%required
Wind speedWSm/s at 10 mrequired
Global radiationSRW/m²required, × 0.0036 → MJ m⁻² h⁻¹
Atmospheric pressureAPhPaoptional, else derived from elevation

If one of the four required variables is missing, nothing is written for that hour.

Which sensors count. ET₀ is defined for open-field reference conditions. Only instruments with code_location = 'F' are used; only plots that never had an open-field sensor for a variable fall back to whatever is available. Where several instruments exist, values are averaged.

The computation ​

Everything is computed per hour. Equation numbers refer to FAO-56.

Solar position. From the day of year J follow the declination (Eq. 24) and the inverse relative Earth-Sun distance (Eq. 23):

δ=0.409sin(2πJ365−1.39),dr=1+0.033cos(2πJ365)

The solar hour angle at the midpoint of the hour follows Eq. 31 with the seasonal correction Sc (Eq. 33). Lm is the longitude (east positive), ΔUTC the timezone offset of the timestamps:

ω=π12[(t+0.5+0.06667(Lm−15ΔUTC)+Sc)−12]

The bounds of the hour ω1,2=ω∓π/24 are clipped to sunrise and sunset (Eq. 29/30), giving extraterrestrial radiation (Eq. 28):

Ra=12⋅60πGscdr[(ω2−ω1)sin⁡φsin⁡δ+cos⁡φcos⁡δ(sin⁡ω2−sin⁡ω1)]

If the hour lies entirely outside daylight, Ra=0.

Radiation balance. Clear-sky radiation (Eq. 37), net shortwave radiation with the grass albedo 0.23 (Eq. 38) and net longwave radiation (Eq. 39, with the hourly Stefan-Boltzmann constant σ=4.903⋅10−9/24):

Rso=(0.75+2⋅10−5z)RaRns=(1−0.23)RsRnl=σ(T+273.16)4(0.34−0.14ea)(1.35RsRso−0.35)Rn=Rns−Rnl

At night Rso=0 and the ratio Rs/Rso is undefined. FAO-56 suggests carrying over the value from shortly before sunset; here a constant of 0.8 is used instead (parameter p_night_rs_rso). This is the point at which the previous implementation forced maximum longwave loss and clamped nighttime ET₀ to zero.

Soil heat flux and the denominator coefficient (Eq. 45/46) differ between day and night:

G={0.1Rndaytime0.5RnnightCd={0.24daytime0.96night

Vapour pressures (Eq. 11, 54) and the slope of the saturation curve (Eq. 13):

es=0.6108exp(17.27TT+237.3),ea=RH100es,Δ=4098es(T+237.3)2

Wind speed at 2 m (Eq. 47). The open-field anemometers sit at 10 m while the equation is defined for 2 m — the factor is 0.75:

u2=uz4.87ln⁡(67.8z−5.42)

Atmospheric pressure and the psychrometric constant (Eq. 7, 8). Measured pressure takes precedence, otherwise it is derived from elevation:

P=101.3(293−0.0065z293)5.26,γ=0.000665P

The equation itself (Eq. 53), result in mm per hour:

ET0=0.408Δ(Rn−G)+γ37T+273u2(es−ea)Δ+γ(1+Cdu2)

Negative results — possible at night under strong longwave loss — are set to zero.

Limits ​

  • ET₀ is not forest evapotranspiration. The reference surface is grass, not a stand. For the water balance of a pine stand, ET₀ is the driver, not the answer.
  • The timestamps are wrong. By ICP specification mm_meh carries UTC with the start of the hour as the label; in fact the hourly labels are off by +2.0 h (2017–2023 and 2025–2026) or +1.0 h (2024) — Central European Time plus an end-of-period label. The function is called with ΔUTC=0 and therefore places the sun about two hours too early: Rs/Rso comes out too small in the morning and is clipped at 1 in the afternoon, the day/night switch for G and Cd flips at the wrong hour, and evening hours with actual sunlight receive ET₀ = 0. The diurnal cycle suffers more than the daily total, but the daily total is not unaffected. Until the timestamps are fixed at source, calling with ΔUTC=2 (2024: 1) would be closer to reality — but not clean, because the offset depends on the logger's storage interval and is not a whole hour for Kienhorst (1203) and Weitzgrund.
  • The anemometer height is fixed. 10 m is confirmed for all eight wind sensors by fuk.sensor_map, but it is passed as a parameter, not read per instrument. A different height requires changing the call.
  • No gap filling at the hourly level. If a required variable is missing the hour is dropped — and the daily value is then a sum over fewer than 24 hours, i.e. too low. daily_completeness must therefore be read alongside ET₀: a day at 80 % completeness is not a daily value missing 20 % of its detail, it is one that is 20 % too small.
  • Inputs are taken unchecked. The procedure only requires that they are not null. A stuck humidity sensor enters the computation.
  • The origin code is wrong. Hourly values carry code_data_origin = 9, which in the ICP dictionary means "missing value"; 4 ("modelled data") would be correct. The daily value inherits 1 from the aggregation trigger — "measured on plot". This must be corrected before any submission to ICP Forests; in the portal and the download the rule until then is: ET is always computed, whatever the code says.