Potential-evapotranspiration | R Documentation |
Potential evapotranspiration (PET) is the amount of evaporation and transpiration that would occur if a sufficient water source were available. Reference evapotranspiration (ETo) is the amount of evaporation and transpiration from a reference vegetation of grass. They are usually considered equivalent. This set of functions calculate PET or ETo according to the Thornthwaite, Hargreaves or Penman-Monteith equations.
See hargreaves
See hargreaves
thornthwaite(Tave, lat, na.rm = FALSE, verbose=TRUE) hargreaves(Tmin, Tmax, Ra = NULL, lat = NULL, Pre = NULL, na.rm = FALSE, verbose=TRUE) penman(Tmin, Tmax, U2, Ra = NULL, lat = NULL, Rs = NULL, tsun = NULL, CC = NULL, ed = NULL, Tdew = NULL, RH = NULL, P = NULL, P0 = NULL, CO2 = NULL, z = NULL, crop='short', na.rm = FALSE, method='ICID', verbose=TRUE) penman( Tmin, Tmax, U2 = NULL, Ra = NULL, lat = NULL, Rs = NULL, tsun = NULL, CC = NULL, ed = NULL, Tdew = NULL, RH = NULL, P = NULL, P0 = NULL, CO2 = NULL, z = NULL, crop = "short", na.rm = FALSE, method = "ICID", verbose = TRUE ) thornthwaite(Tave, lat, na.rm = FALSE, verbose = TRUE)
Tmin |
a numeric vector, tsvector, matrix, tsmatrix, or 3-d array of monthly mean daily minimum temperatures, ºC. |
Tmax |
a numeric vector, tsvector, matrix, tsmatrix, or 3-d array of monthly mean daily maximum temperatures, ºC. |
Ra |
optional, a numeric vector, tsvector, matrix, tsmatrix, or 3-d array of monthly mean daily external radiation, MJ m-2 d-1. |
lat |
a numeric vector or matrix with the latitude of the site or sites, in degrees. |
Pre |
optional, a numeric vector, tsvector, matrix, tsmatrix, or 3-d array of monthly total precipitation, mm. |
na.rm |
optional, a logical value indicating whether NA values should be stripped from the computations. |
verbose |
optional, logical, report the computation options during calculation. Either 'TRUE' (default) or 'FALSE'. |
U2 |
a numeric vector, tsvector, matrix, tsmatrix, or 3-d array of monthly mean daily wind speeds at 2 m height, m s-1. |
Rs |
optional, a numeric vector, tsvector, matrix, tsmatrix, or 3-d array of monthly mean daily incoming solar radiation, MJ m-2 d-1. |
tsun |
optional, a numeric vector, tsvector, matrix, tsmatrix, or 3-d array of monthly mean daily bright sunshine hours, h. |
CC |
optional, numeric a vector, matrix or time series of monthly mean cloud cover, %. |
ed |
optional, numeric a vector, matrix or time series of monthly mean actual vapor pressure at 2 m height, kPa. |
Tdew |
optional, a numeric vector, tsvector, matrix, tsmatrix, or 3-d array of monthly mean daily dewpoint temperature (used for estimating ed), ºC. |
RH |
optional, a numeric vector, tsvector, matrix, tsmatrix, or 3-d array of monthly mean relative humidity (used for estimating ed), %. |
P |
optional, a numeric vector, tsvector, matrix, tsmatrix, or 3-d array of monthly mean atmospheric pressure at surface, kPa. |
P0 |
optional, a numeric vector, tsvector, matrix, tsmatrix, or 3-d array of monthly mean atmospheric pressure at sea level (used for estimating P), kPa. |
CO2 |
optional, a single numeric value, a numeric vector, or a tsvector of monthly mean CO2 atmospheric concentration, ppm. |
z |
optional, a numeric vector or matrix of the elevation of the site or sites, m above sea level. |
crop |
optional, character string, type of reference crop. Either one of 'short' (default) or 'tall'. |
method |
optional, character string, Penman-Monteith calculation method. Either one of 'ICID' (default), 'FAO', or 'ASCE'. |
Tave |
a numeric vector, tsvector, matrix, tsmatrix, or 3-d array of monthly mean temperatures, ºC. |
thornthwaite
computes the monthly potential
evapotranspiration (PE) according to the Thornthwaite (1948) equation.
It is the simplest of the three methods, and can be used when only
mean temperature data are available.
hargreaves
computes the monthly reference evapotranspiration (ETo)
of a grass crop based on the original Hargreaves equation (1994). However,
if precipitation data Pre
is provided a modified form due to Droogers
and Allen (2002) will be used; this equation corrects ETo using
the amount of rain of each month as a proxy for irradiation The Hargreaves
method requires data on the mean external radiation, Ra
. If Ra
is not available it
can be estimated from the latitude lat
and the month of the year.
penman
calculates the monthly reference evapotranspiration (ETo) of
a hypothetical reference crop according to the Penman-Monteith equation
(Monteith, 1965). This is widely considered the most accurate method for
estimating ETo, and is the method recommended by the UN Food and Agriculture
Organization (FAO). There are several methods which simplify the original
Penman-Monteith equation and are used in practice. Here we follow by default
the procedure described in Allen et al. (1994), aka the 'ICID' method.
However, other versions are also implemented and can be used by setting the
method
parameter to the appropriate value. The FAO-56 method
(Allen et al., 1998) can be used by setting method
to 'FAO',
while the variation of the American Society of Civil Engineers (Walter et
al., 2002 is used when setting it to 'ASCE'.
By default the original parameterization corresponding to a short reference
crop of 0.12 m height is used, although the parameterization for a tall
reference crop of 0.5 m height (Walter et al. (2002) can also be used,
by setting the crop
parameter to 'tall'.
The method requires data on the incoming solar radiation, Rs
;
since this is seldom available, the code will estimate it from data on the
bright sunshine duration tsun
, or alternatively from data on the
percent cloud cover CC
. Similarly, if data on the saturation water
pressure ed
are not available, it is possible to estimate it from
the dew point temperature Tdew
, from the relative humidity RH
or even from the minimum temperature Tmin
(sorted from least to most
uncertain method). Similarly, the atmospheric surface pressure P
required for computing the psychrometric constant can be calculated from the
atmospheric pressure at sea level P0
and the elevation z
,
or else it will be assumed to be constant (101.3 kPa). If no wind speed
data U2
are available, a constant value of 2 m per second is used.
Custom CO2 atmospheric concentration CO2
can also be provided,
following Yang et al. (2019).
The function will produce an error message if a valid combination of input
parameters is not provided.
If verbose
is 'TRUE' (the default value), a message will be produced
informing on the computation options selected.
The function accepts data in a variety of formats, including 1-D vectors, 2-D matrices and 3-D arrays. The input data format will determine the output format. Vector input can be used for single-station data. Matrix input can be used to produce output for a number of locations, where each column in the matrix will be considered as one location. 3-D arrays can be used to process gridded data, with the first dimension being time and the two other dimensions representing spatial coordinates. See the examples below for a guidance on how to use these options.
If the main input object (Tave
, Tmin
, Tmax
) is a time
series then the function cycle
will be used to determine the
position of each observation within the
year (month), allowing the data to start in a month different than January.
If no time information is provided, then the input data will be treated as
a sequence of monthly values starting in January.
See hargreaves
See hargreaves
A vector, matrix or 3-d array with the values of monthly potential or reference evapotranspiration, in mm.
A time series with the values of monthly potential or reference evapotranspiration, in mm. If the input is a matrix or a multivariate time series each column will be treated as independent data (e.g., different observatories), and the output will be a multivariate time series.
A time series with the values of monthly potential or reference evapotranspiration, in mm. If the input is a matrix or a multivariate time series each column will be treated as independent data (e.g., diferent observatories), and the output will be a multivariate time series.
Santiago Beguería
Thornthwaite, C. W., 1948. An approach toward a rational classification of climate. Geographical Review 38: 55–94. DOI:10.2307/2107309.
Hargreaves G.H., 1994. Defining and using reference evapotranspiration. Journal of Irrigation and Drainage Engineering 120: 1132–1139.
Droogers P., Allen R. G., 2002. Estimating reference evapotranspiration under inaccurate data conditions. Irrigation and Drainage Systems 16: 33–45.
Monteith, J. L., 1965. Evaporation and environment. Symposia of the Society for Experimental Biology 19: 205–234.
Allen R. G., Smith M., Pereira L. S., Perrier A., 1994. An update for the calculation of reference evapotranspiration. ICID Bulletin of the International Commission on Irrigation and Drainage, 35–92.
Allen R.G., Pereira L.S.,Raes D., Smith, M., 1998. J. Crop evapotranspiration - Guidelines for computing crop water requirements - FAO Irrigation and drainage paper 56. FAO, Rome. ISBN 92-5-104219-5.
Walter I.A. and 14 co-authors, 2002. The ASCE standardized reference evapotranspiration equation. Rep. Task Com. on Standardized Reference Evapotranspiration July 9, 2002, EWRI–Am. Soc. Civil Engr., Reston, VA, 57 pp.
Yang, Y., Roderick, M.L., Zhang, S. McVicar, T., Donohue, R.J., 2019. Hydrologic implications of vegetation response to elevated CO2 in climate projections. Nature Climate Change 9: 44–48.
# Load data for Tampa, lat=37.6475N, elevation=402.6 m. a.s.l. # Data consists on monthly values since January 1980 data(wichita) attach(wichita) names(wichita) # PET following Thornthwaite tho <- thornthwaite(TMED, 37.6475) # ETo by Hargreaves har <- hargreaves(TMIN, TMAX, lat = 37.6475) # ETo by Penman, based on sun hours, ignore NAs pen <- penman(TMIN, TMAX, AWND, tsun = TSUN, lat = 37.6475, z = 402.6, na.rm = TRUE) # Penman, based on cloud cover pen2 <- penman(TMIN, TMAX, AWND, CC = ACSH, lat = 37.6475, z = 402.6, na.rm = TRUE) # Penman, with constant wind pen3 <- penman(TMIN, TMAX, tsun = TSUN, lat = 37.6475, z = 402.6, na.rm = TRUE) # Plot them together plot(ts(cbind(tho, har, pen, pen2, pen3), fr = 12)) # Compare between methods pairs(cbind(tho, har, pen, pen2, pen3)) # Input data as a time series vector; note that only the first parameter # needs to be a `ts` object. thornthwaite(ts(TMED, start = c(1980, 1), frequency = 12), 37.6475) hargreaves(ts(TMIN, start = c(1980, 1), frequency = 12), TMAX, lat = 37.6475) penman(ts(TMIN, start = c(1980, 1), frequency = 12), TMAX, AWND, tsun = TSUN, lat = 37.6475, z = 402.6, na.rm = TRUE ) # Input data as a time series. Consider the data started in June 1980 thornthwaite(ts(TMED, start = c(1980, 6), frequency = 12), 37.6475) # Comparison with example from Allen et al. (1998), p. 69, fig. 18: # Data from Cabinda, Angola (-5.33S, 12.11E, 20 m a.s.l.) data(cabinda) pen.cab <- penman(cabinda$Tmin, cabinda$Tmax, cabinda$U2, Rs = cabinda$Rs, tsun = cabinda$tsun, RH = cabinda$RH, lat = -5.33, z = 20 ) plot(cabinda$ET0, pen.cab) abline(0, 1, lt = "dashed") summary(lm(pen.cab ~ cabinda$ET0))$r.squared # Matrix input (data from several stations) # Replicating Wichita data twice to simulate data at two locations. tmin <- cbind(TMIN, TMIN + 1.5) tmax <- cbind(TMAX, TMAX + 1.5) lat <- c(37.6475, 35.000) har <- hargreaves(tmin, tmax, lat = lat, na.rm = TRUE) plot(har) abline(0, 1) plot(ts(har, fr = 12)) # Array input (gridded data) # Replicating Wichita data to simulate data from a grid. Note that the time # dimension (`nt`) comes first. Latitude is provided as a 2-d array. nt <- length(TMIN) tmin <- array(TMIN, dim = c(nt, 2, 2)) tmax <- array(TMAX, dim = c(nt, 2, 2)) lat <- array(c(40, 30, 40, 30), dim = c(2, 2)) har <- hargreaves(tmin, tmax, lat = lat, na.rm = TRUE) dim(har) # Different Penman-Monteith flavors pen_icid <- penman(TMIN, TMAX, AWND, tsun = TSUN, lat = 37.6475, z = 402.6, na.rm = TRUE, method = "ICID" ) pen_asce <- penman(TMIN, TMAX, AWND, tsun = TSUN, lat = 37.6475, z = 402.6, na.rm = TRUE, method = "ASCE" ) pen_fao <- penman(TMIN, TMAX, AWND, tsun = TSUN, lat = 37.6475, z = 402.6, na.rm = TRUE, method = "FAO" ) plot(ts(cbind(pen_icid, pen_asce, pen_fao), fr = 12)) # Different CO2 concentrations # Default (300 ppm) pen_300 <- penman(TMIN, TMAX, AWND, tsun = TSUN, lat = 37.6475, z = 402.6, na.rm = TRUE ) # Increased to 450 ppm pen_450 <- penman(TMIN, TMAX, AWND, tsun = TSUN, lat = 37.6475, z = 402.6, CO2 = 450, na.rm = TRUE ) plot(pen_450, pen_300) abline(0, 1) # Increasing from 300 to 450 co2 <- seq(300, 450, length.out = length(TMIN)) pen_co2 <- penman(TMIN, TMAX, AWND, tsun = TSUN, lat = 37.6475, z = 402.6, CO2 = co2, na.rm = TRUE ) plot(ts(cbind(pen_300, pen_co2), fr = 12))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.