petGrid: Calculation of Potential Evapotranspiration

View source: R/petGrid.R

petGridR Documentation

Calculation of Potential Evapotranspiration

Description

Implementation of several PET methods for the climate4R bundle

Usage

petGrid(
  tasmin = NULL,
  tasmax = NULL,
  tas = NULL,
  pr = NULL,
  method = c("thornthwaite", "hargreaves", "penman", "hargreaves-samani"),
  what = c("PET", "rad"),
  k = NULL,
  photoperiod.corr = TRUE,
  ...
)

Arguments

tasmin

Grid of minimum monthly temperature (degC)

tasmax

Grid of maximum monthly temperature (degC)

tas

Grid of mean monthly temperature (degC)

pr

Grid of total monthly precipitation amount (mm/month)

method

Potential evapotranspiration method. Currently "thornthwaite" and "hargreaves" methods are available (monthly), using the implementation of package SPEI. In addition, "hargreaves-samani" is available for daily data. See details.

what

Optional character string, only applied for the Hargreaves-Samani method. If set to what = "rad", it returns the estimated radiation (it is a function of latitude and date). Otherwise, by default, returns the estimated daily potential evapotranspiration.

k

Optional calibration coefficient for the Thornthwaite method. Unused by default. See Details.

photoperiod.corr

Correction with the day-night ratio applied to effective temperature (default to TRUE). Only applies to the calibrated Thorthwaite method.

...

Further arguments passed to the PET internals. They can be additional variables or other sort of parametters: check the help page of the hargreaves function in the SPEI package (> ?SPEI::hargreaves) for a description of the additional parameters than can be set. When the parameter is an additional variable (such as U2, Ra, etc.), here, in function petGrid, these are provided as climate4R grids (same as for arguments tas, tasmin, tasmax pr).

Details

This function is a wrapper of the functions with the same name as given in method from the SPEI package (Begueria and Vicente-Serrano). Monthly input data are thus required. The latitude of the sites/grid points is internally used. In case of multimember grids (e.g. seasonal forecast data), the PET is calculated for each member sepparately.

Calibration coefficient for Thornthwaite

The use of a calibration coefficient (k.th argument) can provide better PET estimates under certain conditions. For instance, Camargo et al. (1999) found that a value of k=0.72 is the best for estimating monthly ET0, while Pereira and Pruitt (2004) recommended k=0.69 for daily ET0. Trajkovic et al. (2019) propose an optimal calibration factor of 0.65 after an intercomparison of several PET estimation methods and calibration coefficients in northern Serbia.

In addition, the correction proposed by Pereira and Pruitt (equation 7) to account for the effect of differing photoperiods can be omitted through the logical argument photoperiod.corr = FALSE (it is activated by default).

Note: the calibration factor for the Thorthwaite method requires minimum and maximum temperatures instead of mean temperature, as it also includes temperature amplitude in its formulation.

Author(s)

J Bedia

References

  • Camargo AP, Marin FR, Sentelhas PC, Picini AG (1999) Adjust of the Thornthwaite’s method to estimate the potential evapotranspiration for arid and superhumid climates, based on daily temperature amplitude. Rev Bras Agrometeorol 7(2):251–257

  • Pereira, A.R., Pruitt, W.O., 2004. Adaptation of the Thornthwaite scheme for estimating daily reference evapotranspiration. Agricultural Water Management 66, 251–257. https://doi.org/10.1016/j.agwat.2003.11.003

  • Trajkovic, S., Gocic, M., Pongracz, R., Bartholy, J., 2019. Adjustment of Thornthwaite equation for estimating evapotranspiration in Vojvodina. Theor Appl Climatol. https://doi.org/10.1007/s00704-019-02873-1

Examples


# Thorthwaite requires monthly mean temperature data as input:
data("tas.cru.iberia")
thpet <- petGrid(tas = tas.cru.iberia, method = "thornthwaite")
require(transformeR)
require(magrittr)
require(visualizeR)
# This is the climatology (by seasons)
seasons <- list("DJF" = c(12,1,2), "MAM" = 3:5, "JJA" = 6:8, "SON" = 9:11)
season.list <- lapply(1:length(seasons), function(x) {
    subsetGrid(thpet, season = seasons[[x]]) %>% 
               aggregateGrid(aggr.y = list(FUN = "sum")) %>% climatology()
})
mg <- makeMultiGrid(season.list, skip.temporal.check = TRUE)
spatialPlot(mg, names.attr = names(seasons), at = seq(0, 525, 10),
            backdrop.theme = "coastline",
            main = "Mean Potential Evapotranspiration Thornthwaite (1981-2010, mm/season)",
            rev.colors = TRUE)
# A typical operation is computing trends
# Here we are interested in the JJA PET trend in Iberia:
# We consider the annually aggregated PET series (n = 30 years)
jja.pet <- subsetGrid(thpet, season = 6:8) %>% aggregateGrid(aggr.y = list(FUN = "sum"))
trend.thpet <- climatology(jja.pet, clim.fun = list(FUN = "trend.1D",
                                                    dates = getRefDates(jja.pet),
                                                    method = "kendall"))
spatialPlot(trend.thpet, backdrop.theme = "countries",
            main = "Mann-Kendall Tau PET trend (JJA, 1981-2010)",
            rev.colors = TRUE)
pval.estimate <- climatology(jja.pet, clim.fun = list(FUN = "trend.1D",
                                                      dates = getRefDates(jja.pet),
                                                      method = "kendall",
                                                      return.pvalue = TRUE))
sig.points <- map.stippling(clim = pval.estimate, threshold = 0.05, condition = "LT", 
                            pch = 19, cex = .5, col = "purple")
spatialPlot(trend.thpet, backdrop.theme = "countries",
            rev.colors = TRUE,
            main = "Mann-Kendall Tau PET trend (JJA, 1981-2010)",
            sp.layout = list(sig.points))
# See further examples in 'help(trend.1D)'


SantanderMetGroup/drought4R documentation built on Feb. 7, 2024, 1:59 a.m.