Skip to content

Add FAO-56 Penman–Monteith method for Potential Evapotranspiration (PET) #766

Description

@monocongo

Add FAO-56 Penman–Monteith method for Potential Evapotranspiration (PET)

Description

Add a new Potential Evapotranspiration (PET) calculation method based on the full FAO-56 Penman–Monteith reference evapotranspiration equation.

climate_indices currently provides PET calculations using the Thornthwaite and Hargreaves methods. Adding FAO-56 Penman–Monteith would provide a more physically based PET estimate that accounts for both the energy balance and aerodynamic controls on evapotranspiration.

The implementation should follow the FAO Irrigation and Drainage Paper No. 56 formulation for reference evapotranspiration:

$$ ET_0 = \frac{ 0.408 \Delta (R_n-G) + \gamma \frac{900}{T+273} u_2 (e_s-e_a) }{ \Delta + \gamma(1+0.34u_2) } $$

where:

  • (ET_0) = reference evapotranspiration [mm day⁻¹]
  • (R_n) = net radiation at the crop surface [MJ m⁻² day⁻¹]
  • (G) = soil heat flux density [MJ m⁻² day⁻¹]
  • (T) = mean daily air temperature at 2 m [°C]
  • (u_2) = wind speed at 2 m [m s⁻¹]
  • (e_s) = saturation vapor pressure [kPa]
  • (e_a) = actual vapor pressure [kPa]
  • (e_s-e_a) = saturation vapor pressure deficit [kPa]
  • (\Delta) = slope of the saturation vapor pressure curve [kPa °C⁻¹]
  • (\gamma) = psychrometric constant [kPa °C⁻¹]

Proposed API

Add a new PET implementation, for example:

pet_fao56(...)

or

pet_penman_monteith(...)

The method should be exposed alongside the existing Thornthwaite and Hargreaves PET implementations and be usable wherever PET is required, including SPEI workflows.

Inputs

At minimum, the implementation should support the meteorological variables required by the FAO-56 equation:

  • minimum and maximum or mean air temperature
  • wind speed
  • humidity information sufficient to determine actual vapor pressure
  • solar/net radiation
  • elevation or atmospheric pressure where required

Where practical, derived quantities such as saturation vapor pressure, vapor-pressure deficit, psychrometric constant, and slope of the saturation vapor-pressure curve should be calculated internally from the supplied meteorological inputs.

The implementation should clearly document:

  • expected units
  • required versus optional inputs
  • assumptions used when deriving FAO-56 intermediate variables
  • treatment of soil heat flux for daily/monthly calculations
  • conversion of wind speed measured at heights other than 2 m, if supported
  • missing-data behavior

Scope

  • Implement the full FAO-56 Penman–Monteith PET/ET₀ calculation.
  • Add a public NumPy API consistent with the existing PET implementations.
  • Add an xarray/DataArray interface consistent with pet_thornthwaite() and pet_hargreaves().
  • Preserve coordinates and appropriate CF-compliant metadata for xarray output.
  • Allow the new PET method to be used as an input to SPEI calculations.
  • Add unit tests covering individual FAO-56 intermediate calculations and the final ET₀ value.
  • Add validation tests against worked examples or authoritative reference values from FAO-56.
  • Document input variables, units, equations, assumptions, and references.
  • Update the README/API documentation to list FAO-56 Penman–Monteith as a supported PET method.

Validation

Numerical results should be validated against published examples from:

Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop Evapotranspiration: Guidelines for Computing Crop Water Requirements. FAO Irrigation and Drainage Paper 56.

Where possible, tests should use published intermediate values as well as final reference evapotranspiration values so that errors in radiation, vapor-pressure, psychrometric, or aerodynamic calculations can be identified independently.

Motivation

Thornthwaite and Hargreaves are useful when only limited meteorological inputs are available, but both are simplified temperature-based approaches. The FAO-56 Penman–Monteith method incorporates radiation, temperature, humidity, and wind speed and is widely used as a standard method for estimating reference evapotranspiration.

Supporting FAO-56 would make climate_indices more useful for datasets containing the full set of meteorological variables and would provide a higher-information PET option for SPEI and other drought-monitoring applications.

Acceptance Criteria

The issue can be considered complete when:

  1. A documented public FAO-56 Penman–Monteith PET function is available.
  2. Both NumPy and xarray workflows are supported.
  3. Output PET/ET₀ is expressed using the same conventions expected by existing climate_indices PET/SPEI workflows.
  4. Results reproduce authoritative FAO-56 reference calculations within an appropriate numerical tolerance.
  5. Unit and validation tests are included.
  6. User-facing documentation describes the required variables, units, assumptions, and method reference.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions