Home

Awesome

<img src=https://raw.githubusercontent.com/phydrus/pyet/d7fdd87719588c00326e692f3b1a47b32161e533/docs/_static/logo.png width=120, align=left>

pyet: Estimation of Potential Evapotranspiration

codacy-coverage-reporter <a href="https://pypi.org/project/pyet/"><img src=https://img.shields.io/pypi/v/pyet.svg><a> <a href="https://mit-license.org/"><img src=https://img.shields.io/pypi/l/pyet.svg><a> Codacy Badge Codacy Badge <a href="https://pyet.readthedocs.io/en/latest/?badge=latest"><img src="https://readthedocs.org/projects/pyet/badge/?version=latest"><a> <a href="https://doi.org/10.5281/zenodo.5896800"><img src=https://zenodo.org/badge/DOI/10.5281/zenodo.5896800.svg><a>

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 namepyet functionTRHRu2Lat.El.Benchmarked?
Penmanpenman✓ $^a$✓ $^{b,c}$✓ $^d$✓ $^d$✓ $^e$
Penman-Monteithpm✓ $^a$✓ $^{b,c}$✓ $^d$✓ $^d$✓ $^e$
ASCE-PMpm_asce✓ $^a$✓ $^{b,c}$✓ $^d$✓ $^d$✓ $^e$
FAO-56pm_fao56✓ $^a$✓ $^{b,c}$✓ $^d$✓ $^d$✓ $^e$
Priestley-Taylorpriestley_taylor✓ $^h$✓ $^h$-✓ $^h$✓ $^e$
Kimberly-Penmankimberly_penman✓ $^a$✓ $^{b,c}$✓ $^d$✓ $^d$✓ $^e$-
Thom-Oliverthom_oliver✓ $^a$✓ $^{b,c}$✓ $^d$✓ $^d$✓ $^e$-
Blaney-Criddleblaney_criddle- $^i$- $^i$- $^i$-
Hamonhamon----
Romanenkoromanenko----
Linacrelinacre✓ $^j$----
Haudehaude✓ $^k$----
Turcturc---
Jensen-Haisejensen_haise-✓ $^l$-✓ $^l$-
McGuinness-Bordnemcguinness_bordne----
Hargreaveshargreaves✓ $^m$----
FAO-24 radiationfao_24-✓ $^e$-
Abtewabtew----
Makkinkmakkink---✓ $^e$
Oudinoudin-----

$^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:

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)

We support Python >= 3.8.

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:

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:

@Article{hess-2022-417,
  AUTHOR = {Vremec, M. and Collenteur, R. A. and Birk, S.},
  TITLE = {Technical note: Improved handling of potential evapotranspiration in hydrological studies with \textit{PyEt}},
  JOURNAL = {Hydrology and Earth System Sciences Discussions},
  VOLUME = {2023},
  YEAR = {2023},
  PAGES = {1--23},
  URL = {https://hess.copernicus.org/preprints/hess-2022-417/},
  DOI = {10.5194/hess-2022-417}
}