Reference evapotranspiration using the Blaney-Criddle method. This is general theoretical method used when no measured data on pan evaporation is available locally.

ETo(object, ..., Kc = 1)

# S3 method for default
ETo(object, tmin, ..., Kc = 1, lat = NULL, month = NULL)

# S3 method for data.frame
ETo(object, day.one, ..., Kc = 1)

# S3 method for array
ETo(object, day.one, ..., Kc = 1, lat = NULL, p = 0.27)

# S3 method for sf
ETo(object, day.one, ..., Kc = 1, as.sf = TRUE)

Arguments

object

a numeric vector with the maximum temperature, or a data.frame with geographical coordinates (lonlat), or an object of class sf with geometry 'POINT' or 'POLYGON', or an array with two dimensions containing the maximum and minimum temperature, in that order. See details

...

additional arguments passed to methods. See details

Kc

a numeric value for the crop factor for water requirement

tmin

a numeric vector with the minimum temperature

lat

a vector for the latitude (in Decimal degrees), used to compute mean daily percentage of annual daytime hours based on the latitude and month. This is extracted automatically in the sf method. See details

month

an integer for the reference month of daylight percentage

day.one

a vector of class Date or any other object that can be coerced to Date (e.g. integer, character YYYY-MM-DD) for the starting day to capture the climate data

p

optional if lat is given, a numeric for the mean daily percentage of annual daytime hours (p = 0.27 by default)

as.sf

logical, to return an object of class 'sf'

Value

The evapotranspiration in mm/day

Details

When lat is provided, it is combined with the month provided in day.one to call for the system data daylight to find the correct value for p which represents the daily percentage of daytime hours in the given month and latitude. Otherwise p is set to 0.27 as default.

The array method assumes that object contains climate data available in your R section; this requires an array with two dimensions, 1st dimension contains the day temperature and 2nd dimension the night temperature, see help("temp_dat", package = "climatrends") for an example on input structure.

The data.frame method and the sf method assumes that the climate data will be fetched from a remote (cloud) source that be adjusted using the argument data.from.

Additional arguments:

last.day: an object (optional to span) of class Date or any other object that can be coerced to Date (e.g. integer, character YYYY-MM-DD) for the last day of the time series

span: an integer (optional to last.day) or a vector with integers (optional if last.day is given) for the length of the time series to be captured

data.from: character for the source of climate data. Current remote data is: 'nasapower'

pars: character vector for the temperature data to be fetched. If data.from is 'nasapower'. The temperature can be adjusted to 2 m, the default, c("T2M_MAX", "T2M_MIN") or 10 m c("T10M_MAX", "T10M_MIN")

days.before: optional, an integer for the number of days before day.one to be included in the timespan.

References

Brouwer C. & Heibloem M. (1986). Irrigation water management: Irrigation water needs. Food and Agriculture Organization of The United Nations, Rome, Italy. https://www.fao.org/3/S2022E/s2022e00.htm

See also

Other temperature functions: GDD(), crop_sensitive(), temperature()

Examples

# the default method
set.seed(78)
tmax <- runif(50, 37, 47)
set.seed(79)
tmin <- runif(50, 31, 34)

ETo(tmax, tmin, lat = 22, month = 10)
#>      ETo
#>    <dbl>
#> 1:  6.52

###############################################

# the array method
data("temp_dat", package = "climatrends")

ETo(temp_dat, 
    day.one = "2013-10-28",
    span = 10,
    Kc = 0.92)
#>       ETo
#>     <dbl>
#> 1:   4.37
#> 2:   4.51
#> 3:   4.29
#> 4:   3.63
#> 5:   4.17
#> 6:   3.89
#> 7:   4.17
#> 8:   4.04
#> 9:   4.06
#> 10:  3.79