Skip to main content

pyet: Estimation of Potential Evapotranspiration

codacy-coverage-reporter Codacy Badge Codacy Badge

pyet is an open source python package for calculating reference and potential Evapotranspiration (PET) for 1D (pandas.Series) and 3D (xarray.DataArrray) data. Currently, eighteen methods for calculating daily PET are implemented:

Method name pyet function T RH R u2 Lat. El. Benchmarked?
Penman penman ✓ $^a$ ✓ $^{b,c}$ ✓ $^d$ ✓ ✓ $^d$ ✓ $^e$ ✓
Penman-Monteith pm ✓ $^a$ ✓ $^{b,c}$ ✓ $^d$ ✓ ✓ $^d$ ✓ $^e$ ✓
ASCE-PM pm_asce ✓ $^a$ ✓ $^{b,c}$ ✓ $^d$ ✓ ✓ $^d$ ✓ $^e$ ✓
FAO-56 pm_fao56 ✓ $^a$ ✓ $^{b,c}$ ✓ $^d$ ✓ ✓ $^d$ ✓ $^e$ ✓
Priestley-Taylor priestley_taylor ✓ ✓ $^h$ ✓ $^h$ - ✓ $^h$ ✓ $^e$ ✓
Kimberly-Penman kimberly_penman ✓ $^a$ ✓ $^{b,c}$ ✓ $^d$ ✓ ✓ $^d$ ✓ $^e$ -
Thom-Oliver thom_oliver ✓ $^a$ ✓ $^{b,c}$ ✓ $^d$ ✓ ✓ $^d$ ✓ $^e$ -
Blaney-Criddle blaney_criddle ✓ - $^i$ - $^i$ - $^i$ ✓ - ✓
Hamon hamon ✓ - - - ✓ - ✓
Romanenko romanenko ✓ ✓ - - - - ✓
Linacre linacre ✓ $^j$ - - - - ✓ ✓
Haude haude ✓ ✓ $^k$ - - - - ✓
Turc turc ✓ ✓ ✓ - - - ✓
Jensen-Haise jensen_haise ✓ - ✓ $^l$ - ✓ $^l$ - ✓
McGuinness-Bordne mcguinness_bordne ✓ - - - ✓ - ✓
Hargreaves hargreaves ✓ $^m$ - - - ✓ - ✓
FAO-24 radiation fao_24 ✓ ✓ ✓ ✓ - ✓ $^e$ -
Abtew abtew ✓ - ✓ - - - ✓
Makkink makkink ✓ - ✓ - - ✓ $^e$ ✓
Oudin oudin ✓ - - - ✓ - -

$^a$ $T_{max}$ and $T_{min}$ can also be provided. $^b$ $RH_{max}$ and $RH_{min}$ can also be provided. $^c$ If actual vapor pressure is provided, RH is not needed. $^d$ Input for radiation can be (1) Net radiation, (2) solar radiation or (3) sunshine hours. If (1), then latitude is not needed. If (1, 3) latitude and elevation is needed. $^e$ One must provide either the atmospheric pressure or elevation. $^f$ The PM method can be used to estimate potential crop evapotranspiration, if leaf area index or crop height data is available. $^g$ The effect of $CO_2$ on stomatal resistance can be included using the formulation of Yang et al. 2019. $^h$ If net radiation is provided, RH and Lat are not needed. $^i$ If method==2, $u_2$, $RH_{min}$ and sunshine hours are required. $^j$ Additional input of $T_{max}$ and $T_{min}$, or $T_{dew}$. $^k$ Input can be $RH$ or actual vapor pressure. $^l$ If method==1, latitude is needed instead of $R_s$. $^m$ $T_{max}$ and $T_{min}$ also needed.

Examples and Documentation

Examples of using pyet can be found in the example folder:

  • Example 1: Estimating PET using pandas.Series

  • Example 2: Estimating PET using xarray.DataArray

  • Example 3: Benchmarking Makkink against KNMI data

  • Example 4: Benchmarking FAO56 against CoAgMET data

  • Example 5: Calibrating the Romanenko and Abtew method against the PM-FAO56

  • Example 6: Worked examples for estimating meteorological variables and potential evapotranspiration after McMahon et al., 2013

  • Example 7: Example for estimating potential evapotranspiration under warming and elevated $CO_2$ concentrations following Yang et al., (2019)

  • Example 8: Determining the crop coefficient function with Python

  • Example 9: Estimating PET using CMIP data

  • Example 10: Notebook supporting PyEt manuscript

Documentation is hosted on ReadTheDocs.

After defining the input data, evapotranspiration is estimated using only one line of python code:

>>> pyet.pm_fao56(tmean, wind, rn=rn, tmax=tmax, tmin=tmin, rh=rh, elevation=elevation)

Benchmarking

Most of the methods implemented in pyet are benchmarked against literature values from the FAO Irrigation and drainage paper 56, McMahon et al., 2013 (supplementary) and Schrödter, 1985. In addition, two comparative analysis between daily PE estimated with pyet and other organizations is made:

  • pyet.pm_fao56 against daily PET estimated with ASCE Penman-Monteith from CoAgMET ( Colorado State University),

  • pyet.makkink against daily PET estimated with Makkink from The Royal Netherlands Meteorological Institute (KNMI).

Data dimensions

As of version v1.2., pyet is compatible with both Pandas.Series and xarray.DataArray, which means you can now estimate potential evapotranspiration for both point and gridded data.

Bug reports and Questions

pyet is in active development, and bug reports are welcome as GitHub Issues. General questions or discussions are possible through GitHub Discussions.

Installation

The pyet package is available from the Pypi package index and can be installed as follows::

>>> pip install pyet

To install in developer mode, use the following syntax:

>>> pip install -e .

Citing

If you use pyet in one of your studies, please cite the pyet EGU abstract:

  • Vremec, M., Collenteur, R. A., and Birk, S.: PyEt v1.3.1: a Python package for the estimation of potential evapotranspiration, Geosci. Model Dev., 17, 7083–7103, https://doi.org/10.5194/gmd-17-7083-2024, 2024.
@Article{gmd-17-7083-2024,
AUTHOR = {Vremec, M. and Collenteur, R. A. and Birk, S.},
TITLE = {\textit{PyEt} v1.3.1: a Python package for the estimation of potential evapotranspiration},
JOURNAL = {Geoscientific Model Development},
VOLUME = {17},
YEAR = {2024},
NUMBER = {18},
PAGES = {7083--7103},
URL = {https://gmd.copernicus.org/articles/17/7083/2024/},
DOI = {10.5194/gmd-17-7083-2024}
}

Metadata

Release files for pyet 1.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyet 1.5.0
File Size Uploaded
pyet-1.5.0.tar.gz 31.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyet 1.5.0
File Interpreter ABI Platform
pyet-1.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 55.4 kB

Release files / pyet-1.5.0.tar.gz

Download URL pyet-1.5.0.tar.gz
Size 31.1 kB
Tags Source
SHA-256 checksum
How to use checksums
81bedbc592df50f83e917dd76b5d239516c150bae060c39c536169c57042888b
BLAKE2b-256 checksum
How to use checksums
5caa8b6ee925bcf81e3b5d9490732b25e360a5f8370405a73570924f127ae974
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / pyet-1.5.0-py3-none-any.whl

Download URL pyet-1.5.0-py3-none-any.whl
Size 24.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4e691d28a197e54c23aaa9573980b75d1b3993c214bf34f55ce50a9982698da2
BLAKE2b-256 checksum
How to use checksums
405f7e70ea3e3f588c51a42f1effaaf0e5fe06d87487cf4226f7437a7024f7f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release history Release notifications | RSS feed

This release

1.5.0 This release

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page