Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pyet-org/pyet
:sunflower: pyet is a Python package to estimate reference and potential evaporation.
https://github.com/pyet-org/pyet
hydrological-modelling hydrology water
Last synced: 3 months ago
JSON representation
:sunflower: pyet is a Python package to estimate reference and potential evaporation.
- Host: GitHub
- URL: https://github.com/pyet-org/pyet
- Owner: pyet-org
- License: mit
- Created: 2020-05-04T12:53:28.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-05-08T01:06:25.000Z (6 months ago)
- Last Synced: 2024-06-11T17:12:23.625Z (5 months ago)
- Topics: hydrological-modelling, hydrology, water
- Language: Python
- Homepage: https://pyet.readthedocs.io/
- Size: 138 MB
- Stars: 109
- Watchers: 3
- Forks: 29
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Citation: CITATION.cff
Awesome Lists containing this project
- open-sustainable-technology - pyet - Estimate reference and potential evaporation. (Natural Resources / Water Supply and Quality)
README
# pyet: Estimation of Potential Evapotranspiration
[![codacy-coverage-reporter](https://github.com/pyet-org/pyet/actions/workflows/ci.yml/badge.svg)](https://github.com/pyet-org/pyet/actions/workflows/ci.yml)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/e49f23e356f441688422ec32cfcf6aaa)](https://www.codacy.com/gh/phydrus/pyet/dashboard?utm_source=github.com&utm_medium=referral&utm_content=phydrus/pyet&utm_campaign=Badge_Grade)
[![Codacy Badge](https://app.codacy.com/project/badge/Coverage/e49f23e356f441688422ec32cfcf6aaa)](https://www.codacy.com/gh/phydrus/pyet/dashboard?utm_source=github.com&utm_medium=referral&utm_content=phydrus/pyet&utm_campaign=Badge_Coverage)
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](https://www.knmi.nl/over-het-knmi/about)* [Example 4](): Benchmarking FAO56
against [CoAgMET data](https://coagmet.colostate.edu/)* [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](https://pyet.readthedocs.io).
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](https://www.fao.org/3/x0490e/x0490e00.htm), [McMahon et al., 2013 (supplementary)](https://hess.copernicus.org/articles/17/4865/2013/) and [Schrödter, 1985](https://link.springer.com/book/10.1007/978-3-642-70434-5). 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](https://coagmet.colostate.edu/) (
Colorado State University),* `pyet.makkink` against daily PET estimated with Makkink from The Royal Netherlands Meteorological
Institute ([KNMI](https://www.knmi.nl/over-het-knmi/about)).## 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](https://github.com/phydrus/pyet/issues).
General questions or discussions are possible through
[GitHub Discussions](https://github.com/phydrus/pyet/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.: Technical note: Improved handling of potential evapotranspiration in
hydrological studies with PyEt, Hydrol. Earth Syst. Sci. Discuss. [preprint], https://doi.org/10.5194/hess-2022-417,
in review, 2023.```Reference
@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}
}
```