Title: | Meteorological Tools |
---|---|
Description: | Meteorological Tools following the FAO56 irrigation paper of Allen et al. (1998) [1]. Functions for calculating: reference evapotranspiration (ETref), extraterrestrial radiation (Ra), net radiation (Rn), saturation vapor pressure (satVP), global radiation (Rs), soil heat flux (G), daylight hours, and more. [1] Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9). |
Authors: | Ullrich Dettmann [aut, cre], R. Grima [aut] |
Maintainer: | Ullrich Dettmann <[email protected]> |
License: | GPL (>= 2) |
Version: | 0.1.1 |
Built: | 2025-02-12 05:41:22 UTC |
Source: | https://github.com/cran/MeTo |
Adjust wind speed data to 2 meter height.
adj_u2(u, uz)
adj_u2(u, uz)
u |
measured wind speed at uz above ground surface [m/s] |
uz |
height of windspeed measurement above ground surface [m] |
eq. 47 of reference
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
adj_u2(3.2, uz = 10)
adj_u2(3.2, uz = 10)
Constants required for calculations.
constDefaults
constDefaults
GSC: solar constant (0.0820 [MJ/(m2 min)])
sigma: Stefan-Boltzmann constant (4.903 10^-9 [MJ/(K4 m2 day)])
a1: constant lapse rate moist air (0.0065 [K/m]) (e.g. in estP
)
R: specific gas constant (287 [J/(kg K)]) (e.g. in estP
)
g: gravitational acceleration (9.807 [m/s2]) (e.g. in estP
)
eps: ratio molecular weight of water vapour/dry air (0.622) (e.g. in psyc_cons
)
lambda: latent heat of vaporization (2.45 [MJ/kg]) (e.g. in psyc_cons
)
cp: specific heat at constant pressure (1.013 10-3 [MJ/(kg degreeC)]) (e.g. in psyc_cons
)
Default values for control. If necessary modify with control = list() in function call.
controlDefaults
controlDefaults
albedo: 0.23 [-] for hypothetical grass and alfalfa reference crops used in
the FAO-56 PM equations (e.g. in ETref
, Rn
or estG
)
Po: atmospheric pressure at sea level (101.3 [kPa])
z0: elevation at reference level (0 [m]) (e.g. in ETref
or estP
)
Tko: reference temperature [degreeC] at elevation z0. Often assumed to be 20 degreeC (e.g. in ETref
or estP
)
uz: height of windspeed measurement above ground surface (2 [m]) (e.g. in ETref
or adj_u2
)
Lz:
longitude of the centre of the local time zone (degrees west of Greenwich)
- 0 for Greenwich
- 345 for Germany
- 330 for Cairo (Egypt)
- 255 for Bangkok (Thailand)
- 75, 90, 105 and 120 for Eastern, Central, Rocky Mountain and Pacific time zones (United States)
Lz is only needed if calculation period is shorter 1 day.
as: regression constant, expressing fraction of extraterrestrial radiation reaching earth on overcast days (default = 0.25) (e.g. in ETref
, Rn
or estRs
)
bs: as + bs fraction of extraterrestrial radiation reaching earth on clear days (default = 0.5) (e.g. in ETref
, Rn
or estRs
)
est.ratio.Rs.Rso:
Rs/Rso is used to represent cloud cover. For hourly or shorter periods during the nighttime,
the ratio Rs/Rso is set equal to the Rs/Rso calculated for a time period occurring 2-3 hours before sunset.
If single values during nighttime are calculated Rs/Rso ratio 2-3 hours before sunset can not be calculated
and an approximation is needed. Following Allen (1999) one can assume Rs/Rso = 0.4 to 0.6 during nighttime periods
in humid and subhumid climates and Rs/Rso = 0.7 to 0.8 in arid and semiarid climates. A value of Rs/Rso = 0.3 presumes
total cloud cover.
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
Slope of the saturation vapor pressure curve [kPa/degreeC].
deltaVP(Tmean = NULL, Tmax = NULL, Tmin = NULL)
deltaVP(Tmean = NULL, Tmax = NULL, Tmin = NULL)
Tmean |
Mean Temperature [degreeC] (mean daily, mean hourly, etc. air temperature) |
Tmax |
maximum temperature during 24-hour period [degreeC] (if Tmean is missing) |
Tmin |
minimum temperature during 24-hour period [degreeC] (if Tmean is missing) |
valid for daily, hourly and shorter periods
slope of the saturation vapor pressure curve [kPa/degreeC]
eq. 13 of reference
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
deltaVP(Tmax = 34.8, Tmin = 25.6) deltaVP(Tmean = 30.2)
deltaVP(Tmax = 34.8, Tmin = 25.6) deltaVP(Tmean = 30.2)
Dayligth hours in dependence to latitude.
dlh(x, lat.rad = NULL, lat.deg = NULL)
dlh(x, lat.rad = NULL, lat.deg = NULL)
x |
date-time object or day of the year |
lat.rad |
latitude [rad] (either lat.rad or lat.deg). Latitude is positive for the northern hemisphere and negative for the southern hemisphere |
lat.deg |
latitude [degree] (either lat.rad or lat.deg). Latitude is positive for the northern hemisphere and negative for the southern hemisphere |
must be provided as number (1-366) or as a common date-time object (e.g, POSIXct, POSIXlt or Date objects). All formats for which is.timepoint from the lubridate package returns TRUE can be used
eq. 34 of reference
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
dlh(x = 105, lat.deg = 13.73) dlh(x = 105, lat.rad = 0.283) dlh(x = as.Date('2018-04-15'), lat.deg = 13.73)
dlh(x = 105, lat.deg = 13.73) dlh(x = 105, lat.rad = 0.283) dlh(x = as.Date('2018-04-15'), lat.deg = 13.73)
Calculate inverse relative distance Earth-Sun for daily and shorther periods.
dr(x)
dr(x)
x |
date-time object or Day of the year |
must be provided as number (1-366) or as a common date-time object (e.g, POSIXct, POSIXlt or Date objects). All formats for which is.timepoint from the lubridate package returns TRUE can be used
eq. 23 of reference
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
Mean saturation vapour pressure [kPa] for short time intervals less than a day. Calculated with air temperature.
e0(Temp)
e0(Temp)
Temp |
Temperature [degreeC] |
saturation vapour pressure at air temperature [kPa/degreeC])
eq. 11 of the reference
for day, week, decade or month, the mean saturation vapour pressure should be computed with satVP
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
Estimate soil heat flux (G) for periods shorter than a day.
estG( x, Rs, Tmean, Rhmean, lat.rad = NULL, lat.deg = NULL, long.deg = NULL, elev = 1, tl, control = list(albedo = 0.23, Lz = 345, est.ratio.Rs.Rso = NA) )
estG( x, Rs, Tmean, Rhmean, lat.rad = NULL, lat.deg = NULL, long.deg = NULL, elev = 1, tl, control = list(albedo = 0.23, Lz = 345, est.ratio.Rs.Rso = NA) )
x |
date-time object (see details) |
Rs |
incoming solar radiation [MJ/(m2 time)] |
Tmean |
Mean air temperature [degreeC] |
Rhmean |
Mean air humidity [percent] |
lat.rad |
latitude [rad]. Use either lat.rad or lat.deg. Latitude is positive for the northern hemisphere and negative for the southern hemisphere |
lat.deg |
latitude [degree]. Use either lat.deg or lat.rad. Latitude is positive for the northern hemisphere and negative for the southern hemisphere |
long.deg |
longitude of the measurement site (degrees east of Greenwich) |
elev |
station elevation above sea level [m] |
tl |
length of calculation period [hour] (1 for hourly period, 0.5 for a 30-minute period or 24 for daily period). Only needed if x is date-time object with length of 1. |
control |
list for control parameters and empirical factors defined in
|
during daylight periods G is estimated to be Rn
x 0.1 During nighttime G = Rn
x 0.5.
Day is defined for extraterrestrial radiation > 0.
must be provided as a common date-time object (e.g, POSIXct, POSIXlt or Date objects). All formats for which is.timepoint from the lubridate package returns TRUE can be used
albedo:
default 0.23 for the hypothetical grass and alfalfa reference crops used in
the FAO-56 PM equations
Lz:
longitude of the centre of the local time zone (degrees west of Greenwich)
- 0 for Greenwich
- 345 for Germany
- 330 for Cairo (Egypt)
- 255 for Bangkok (Thailand)
- 75, 90, 105 and 120 for Eastern, Central, Rocky Mountain and Pacific time zones (United States)
Lz is only needed if calculation period is shorter 1 day.
est.ratio.Rs.Rso:
Rs/Rso is used to represent cloud cover. For hourly periods during the nighttime,
the ratio Rs/Rso is set equal to the Rs/Rso calculated for a time period occurring 2-3 hours before sunset.
If single values during nighttime are calculated Rs/Rso ration 2-3 hours before sunset can not be calculated
and an approximation is needed. Following Allen (1999) one can assume Rs/Rso = 0.4 to 0.6 during nighttime periods
in humid and subhumid climates and Rs/Rso = 0.7 to 0.8 in arid and semiarid climates. A value of Rs/Rso = 0.3 presumes
total cloud cover.
eq. 45 and 46 of reference
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
estG(x = as.POSIXct(c('2018-10-01 14:30', '2018-10-01 15:00')), Tmean = 38, Rhmean = 52, Rs = 2.450, elev = 8, lat.deg = 16.21, long.deg = 343.75, control = list(Lz = 15)) estG(x = as.POSIXct('2018-10-01 02:30'), Tmean = 28, Rhmean = 90, tl = 1, Rs = 0, elev = 8, lat.deg = 16.2, long.deg = 343.75, control = list(Lz = 15, est.ratio.Rs.Rso = 0.8)) estG(x = as.POSIXct('2018-10-01 14:30'), Tmean = 38, Rhmean = 52, tl = 1, Rs = 2.450, elev = 8, lat.deg = 16.21, long.deg = 343.75, control = list(Lz = 15))
estG(x = as.POSIXct(c('2018-10-01 14:30', '2018-10-01 15:00')), Tmean = 38, Rhmean = 52, Rs = 2.450, elev = 8, lat.deg = 16.21, long.deg = 343.75, control = list(Lz = 15)) estG(x = as.POSIXct('2018-10-01 02:30'), Tmean = 28, Rhmean = 90, tl = 1, Rs = 0, elev = 8, lat.deg = 16.2, long.deg = 343.75, control = list(Lz = 15, est.ratio.Rs.Rso = 0.8)) estG(x = as.POSIXct('2018-10-01 14:30'), Tmean = 38, Rhmean = 52, tl = 1, Rs = 2.450, elev = 8, lat.deg = 16.21, long.deg = 343.75, control = list(Lz = 15))
Values for atmospheric pressure as a function of altitude.
estP(elev, control = list(Tko = 20))
estP(elev, control = list(Tko = 20))
elev |
elevation [m] |
control |
list for control parameters and empirical factors defined in
|
Tko: reference temperature [degreeC] at elevation z0. Often assumed to be 20 degreeC
z0: elevation at reference level [m]
a1: constant lapse rate moist air (0.0065 [K/m])
g: gravitational acceleration (9.807 [m/s2])
R: specific gas constant (287 [J/(kg K)])
atmospheric pressure [kPa]
eq. 3-2 of Reference
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
estP(elev = 25, control = list(Tko = 20))
estP(elev = 25, control = list(Tko = 20))
Rs is calculated from relative sunshine duration and extraterrestrial radiation with the Angstrom formula.
estRs( x, n, lat.rad = NULL, lat.deg = NULL, tl, control = list(as = 0.25, bs = 0.5) )
estRs( x, n, lat.rad = NULL, lat.deg = NULL, tl, control = list(as = 0.25, bs = 0.5) )
x |
date-time object or Day of the year |
n |
actual duration of sunshine [hour] |
lat.rad |
latitude [rad] (either lat.rad or lat.deg). Latitude is positive for the northern hemisphere and negative for the southern hemisphere |
lat.deg |
latitude [degree] (either lat.rad or lat.deg). Latitude is positive for the northern hemisphere and negative for the southern hemisphere |
tl |
length of calculation period [hour] (1 for hourly, 0.5 for a 30-minute or 24 for daily period). Only needed if length of x is date-time object with length of 1. |
control |
list for control parameters and empirical factors defined in |
as: regression constant, expressing fraction of extraterrestrial radiation reaching earth on overcast days (n = 0) (default = 0.25)
bs: as + bs fraction of extraterrestrial radiation reaching earth on clear days (n = N) (default = 0.5)
must be provided as.numeric (1-366) or as a common date-time object (e.g, POSIXct, POSIXlt or Date objects). All formats for which is.timepoint from the lubridate package returns TRUE can be used
solar or shortwave radiation (Rs) [MJ/(m2 day)]
eq. 35 of reference
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
estRs(x = 135, n = 7, lat.rad = NULL, lat.deg = -22.9)
estRs(x = 135, n = 7, lat.rad = NULL, lat.deg = -22.9)
FAO Penman-Monteith equations to compute grass reference evapotranspiration from weather data for daily, monthly, hourly or shorter periods.
ETref( x, Tmax = NULL, Tmin = NULL, Rhmax = NULL, Rhmin = NULL, Tmean = NULL, Rhmean = NULL, u = NULL, Rs = NULL, n = NULL, P = NULL, elev, lat.rad = NULL, lat.deg = NULL, long.deg = NULL, tl, G = NULL, actVP = NULL, control = list() )
ETref( x, Tmax = NULL, Tmin = NULL, Rhmax = NULL, Rhmin = NULL, Tmean = NULL, Rhmean = NULL, u = NULL, Rs = NULL, n = NULL, P = NULL, elev, lat.rad = NULL, lat.deg = NULL, long.deg = NULL, tl, G = NULL, actVP = NULL, control = list() )
x |
date-time object or day of the year (must be date-time object if calculation period is shorter than a day) |
Tmax |
maximum temperature [degreeC] during 24-hour period (for daily values) |
Tmin |
minimum temperature [degreeC] during 24-hour period (for daily values) |
Rhmax |
maximum of air humidity [percent] during 24-hour period (for daily values) |
Rhmin |
minimum of air humidity [percent] during 24-hour period(for daily values) |
Tmean |
mean air temperature [degreeC]. For periods shorter 1 day. |
Rhmean |
mean relative air humidity [percent]. For periods shorter 1 day or if Rhmax and Rhmin are missing. |
u |
wind speed [m/s] at 2 meter height. If measurement height is not 2 m, define height with control <- list(uz = 2) |
Rs |
solar radiation [MJ/(m2 time)] |
n |
actual hours of sunshine. Used to calculate Rs if Rs messurements are not available (see |
P |
air pressure [kPa]. Estimated with |
elev |
station elevation above sea level [m] |
lat.rad |
latitude [rad]. Use either lat.rad or lat.deg. Latitude is positive for the northern hemisphere and negative for the southern hemisphere |
lat.deg |
latitude [degree]. Use either lat.deg or lat.rad. Latitude is positive for the northern hemisphere and negative for the southern hemisphere |
long.deg |
longitude [degree] east of Greenwich (for periods < 1 day) |
tl |
length of calculation period [hour] (1 for hourly, 0.5 for 30-minute and 24 for daily period). Only needed if x is date-time object with length of 1. |
G |
soil heat flux (Assumed to be 0 for daily calculations) (for calculation periods shorter than a day estimated with |
actVP |
Actual vapor pressure [kPa]. If Rhmax, Rhmin and Rhmean are NULL |
control |
list for control parameters and empirical factors (see details, |
must be provided as.numeric (1-366) or as a common date-time object (e.g, POSIXct, POSIXlt or Date objects). All formats for which is.timepoint from the lubridate package returns TRUE can be used
controlDefaults
and constDefaults
)Lz:
longitude of the centre of the local time zone (degrees west of Greenwich)
- 0 for Greenwich
- 345 for Germany
- 330 for Cairo (Egypt)
- 255 for Bangkok (Thailand)
- 75, 90, 105 and 120 for Eastern, Central, Rocky Mountain and Pacific time zones (United States)
Lz is only needed if calculation period is shorter than 1 day.
uz: height of wind measurements (m)
albedo: default 0.23 for the hypothetical grass and alfalfa reference crops used in
the FAO-56 PM equations
as: regression constant, expressing fraction of extraterrestrial radiation reaching earth on overcast days (n = 0) (default = 0.25)
bs: as + bs fraction of extraterrestrial radiation reaching earth on clear days (n = N) (default = 0.5)
Tko: reference temperature [degreeC] at elevation z0. Only needed if atmospheric pressure is missing. Often assumed to be 20 degreeC.
z0: elevation at reference level (fefault = 0 [m])
est.ratio.Rs.Rso:
Rs/Rso is used to represent cloud cover. For hourly or shorter periods during the nighttime,
the ratio Rs/Rso is set equal to the Rs/Rso calculated for a time period occurring 2-3 hours before sunset.
If single values during nighttime are calculated Rs/Rso ration 2-3 hours before sunset can not be calculated
and an approximation is needed. Following Allen (1999) one can assume Rs/Rso = 0.4 to 0.6 during nighttime periods
in humid and subhumid climates and Rs/Rso = 0.7 to 0.8 in arid and semiarid climates. A value of Rs/Rso = 0.3 presumes
total cloud cover.
grass reference evapotranspiration [mm]
eq. 6 from reference for daily and eq. 53 for hourly or shorter periods
Ullrich Dettmann
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
# -------------------------------------------- # Daily Evapotranspiration # -------------------------------------------- ETref(x = 187, Rs = 22.07, elev = 100, lat.deg = 50.8, Tmax = 21.5, Tmin = 12.3, Rhmax = 84, Rhmin = 63, u = 2.78, control = list(uz = 10), P = 100.1) # Calculation with sunshine hour (n) instead of # global radiation (Rs) (Rs ist estimated from n with estRs): ETref(x = 187, n = 9.25, elev = 100, lat.deg = 50.8, Tmax = 21.5, Tmin = 12.3, Rhmax = 84, Rhmin = 63, u = 2.78, control = list(uz = 10), P = 100.1) # -------------------------------------------- # Hourly Evapotranspiration # -------------------------------------------- ETref(x = as.POSIXct(c('2018-10-01 14:30', '2018-10-01 15:30')), Tmean = c(38, 37.8), Rhmean = c(52, 52.3), u = c(3.3, 3.2), Rs = c(2.450, 2.5), elev = 8, lat.deg = 16.22, long.deg = 343.75, G = c(0.175, 0.178) , P = c(101.21, 101.21) , control = list(Lz = 15)) # If only one time step is calculated tl must be provided (1 for hourly, 0.5 for 30 minute periods): ETref(x = as.POSIXct('2018-10-01 14:30'), tl = 1, Tmean = 38, Rhmean = 52, u = 3.3, Rs = 2.450, elev = 8, lat.deg = 16.22, long.deg = 343.75, G = 0.1749218, P = 101.2056, control = list(Lz = 15)) # Calculation with missing soil heat flux (G) and atmospheric pressure (P) (G is estimated with estG # and P with estP) ETref(x = as.POSIXct('2018-10-01 14:30'), tl = 1, Tmean = 38, Rhmean = 52, u = 3.3, Rs = 2.450, elev = 8, lat.deg = 16.22, long.deg = 343.75, control = list(Lz = 15)) # --------------------------------------------
# -------------------------------------------- # Daily Evapotranspiration # -------------------------------------------- ETref(x = 187, Rs = 22.07, elev = 100, lat.deg = 50.8, Tmax = 21.5, Tmin = 12.3, Rhmax = 84, Rhmin = 63, u = 2.78, control = list(uz = 10), P = 100.1) # Calculation with sunshine hour (n) instead of # global radiation (Rs) (Rs ist estimated from n with estRs): ETref(x = 187, n = 9.25, elev = 100, lat.deg = 50.8, Tmax = 21.5, Tmin = 12.3, Rhmax = 84, Rhmin = 63, u = 2.78, control = list(uz = 10), P = 100.1) # -------------------------------------------- # Hourly Evapotranspiration # -------------------------------------------- ETref(x = as.POSIXct(c('2018-10-01 14:30', '2018-10-01 15:30')), Tmean = c(38, 37.8), Rhmean = c(52, 52.3), u = c(3.3, 3.2), Rs = c(2.450, 2.5), elev = 8, lat.deg = 16.22, long.deg = 343.75, G = c(0.175, 0.178) , P = c(101.21, 101.21) , control = list(Lz = 15)) # If only one time step is calculated tl must be provided (1 for hourly, 0.5 for 30 minute periods): ETref(x = as.POSIXct('2018-10-01 14:30'), tl = 1, Tmean = 38, Rhmean = 52, u = 3.3, Rs = 2.450, elev = 8, lat.deg = 16.22, long.deg = 343.75, G = 0.1749218, P = 101.2056, control = list(Lz = 15)) # Calculation with missing soil heat flux (G) and atmospheric pressure (P) (G is estimated with estG # and P with estP) ETref(x = as.POSIXct('2018-10-01 14:30'), tl = 1, Tmean = 38, Rhmean = 52, u = 3.3, Rs = 2.450, elev = 8, lat.deg = 16.22, long.deg = 343.75, control = list(Lz = 15)) # --------------------------------------------
Checks if x is date-time object or day of the year (doy) and returns doy.
prep.date(x)
prep.date(x)
x |
date-time object or Day of the year |
Day of the year
The psychrometric constant [kPa/degreeC]
psyc_cons(elev, P = NULL, control = list())
psyc_cons(elev, P = NULL, control = list())
elev |
elevation [m] |
P |
atmospheric pressure [kPa] |
control |
list for control parameters and empirical factors
defined in |
Tko: reference temperature [degreeC] at elevation z0. Only needed if atmospheric pressure is missing.
Often assumed to be 20 degreeC
elev: station elevation above sea level [m]. Needed if P = NULL for estP
lambda: latent heat of vaporization [MJ/kg]
eps: ratio molecular weight of water vapor/dry air = 0.622
cp: specific heat of moist air = 1.013 x 10-3 [MJ/(kg degreeC)]
psychrometric constant [kPa/degreeC]
eq. 8 of reference
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
psyc_cons(elev = 2, P = 101.3)
psyc_cons(elev = 2, P = 101.3)
Extraterrestrial radiation [MJ/(m2 time)] in dependence to time, latitude and longitude.
Ra(x, lat.rad = NULL, lat.deg = NULL, long.deg, tl, control = list(Lz = 345))
Ra(x, lat.rad = NULL, lat.deg = NULL, long.deg, tl, control = list(Lz = 345))
x |
date-time object or day of the year (must be date-time object if calculation period is smaller 1 day) |
lat.rad |
latitude [rad]. Use either lat.rad or lat.deg. Latitude is positive for the northern hemisphere and negative for the southern hemisphere |
lat.deg |
latitude [degree]. Use either lat.deg or lat.rad. Latitude is positive for the northern hemisphere and negative for the southern hemisphere |
long.deg |
longitude of the measurement site (degrees east of Greenwich) (only needed for periods shorter 1 day) |
tl |
length of calculation period [hour] (1 for hourly period, 0.5 for a 30-minute period or 24 for daily period). Only needed if x is date-time object with length of 1. |
control |
list for control parameters and empirical factors defined in
|
must be provided as.numeric (1-366) or as a common date-time object (e.g, POSIXct, POSIXlt or Date objects). All formats for which is.timepoint from the lubridate package returns TRUE can be used
Lz (for periods < 1 day):
longitude of the centre of the local time zone (degrees west of Greenwich)
- 0 for Greenwich
- 345 for Germany
- 330 for Cairo (Egypt)
- 255 for Bangkok (Thailand)
- 75, 90, 105 and 120 for Eastern, Central, Rocky Mountain and Pacific time zones (United States)
eq. 21 (period = 1 day) and eq. 28 (hourly or shorter) of the reference
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
# -------------------------------------------- # Daily period # -------------------------------------------- Ra(x = 105, lat.deg = 13.73) # -------------------------------------------- # Hourly period # -------------------------------------------- Ra(x = as.POSIXct(c('2018-10-01 14:30', '2018-10-01 15:30')), lat.deg = 16.21, long.deg = 343.75, control = list(Lz = 15)) Ra(x = as.POSIXct('2018-10-01 14:30'), tl = 1, lat.deg = 16.21, long.deg = 343.75, control = list(Lz = 15))
# -------------------------------------------- # Daily period # -------------------------------------------- Ra(x = 105, lat.deg = 13.73) # -------------------------------------------- # Hourly period # -------------------------------------------- Ra(x = as.POSIXct(c('2018-10-01 14:30', '2018-10-01 15:30')), lat.deg = 16.21, long.deg = 343.75, control = list(Lz = 15)) Ra(x = as.POSIXct('2018-10-01 14:30'), tl = 1, lat.deg = 16.21, long.deg = 343.75, control = list(Lz = 15))
Difference between the incoming net shortwave radiation (Rns
) and the outgoing net longwave radiation (Rnl
).
Rn( x, Tmax = NULL, Tmin = NULL, Rhmax = NULL, Rhmin = NULL, Rs = NULL, n = NULL, elev, lat.rad = NULL, lat.deg = NULL, long.deg = NULL, Rhmean = NULL, actVP = NULL, Tmean = NULL, tl, control = list() )
Rn( x, Tmax = NULL, Tmin = NULL, Rhmax = NULL, Rhmin = NULL, Rs = NULL, n = NULL, elev, lat.rad = NULL, lat.deg = NULL, long.deg = NULL, Rhmean = NULL, actVP = NULL, Tmean = NULL, tl, control = list() )
x |
date-time object or day of the year (must be date-time object if calculation period is shorter than a day) |
Tmax |
maximum temperature [degreeC] during 24-hour period (for daily values) |
Tmin |
minimum temperature [degreeC] during 24-hour period (for daily values) |
Rhmax |
daily maximum of air humidity [percent] (for daily values) |
Rhmin |
daily minimum of air humidity [percent] (for daily values) |
Rs |
incoming solar radiation [MJ/(m2 time)] |
n |
Actual hours of sunshine. Used to calculate Rs if missing. |
elev |
station elevation above sea level [m] |
lat.rad |
latitude [rad]. Use either lat.rad or lat.deg. Latitude is positive for the northern hemisphere and negative for the southern hemisphere |
lat.deg |
latitude [degree]. Use either lat.deg or lat.rad. Latitude is positive for the northern hemisphere and negative for the southern hemisphere |
long.deg |
longitude of the measurement site (degrees east of Greenwich) (for periods < 1 day) |
Rhmean |
Mean air humidity [percent] for periods < day or if Rhmax and Rhmin are missing |
actVP |
Actual vapor pressure [kPa]. If Rhmax, Rhmin and Rhmean are NULL |
Tmean |
Mean air temperature [degree C] for periods < day |
tl |
length of calculation period [hour] (1 for hourly period, 0.5 for a 30-minute period or 24 for daily period). Only needed if x is date-time object with length of 1. |
control |
list for control parameters and empirical factors (see Details) |
for daily and hourly calculations
must be provided as.numeric (1-366) or as a common date-time object (e.g, POSIXct, POSIXlt or Date objects). All formats for which is.timepoint from the lubridate package returns TRUE can be used
albedo: default 0.23 for the hypothetical grass and alfalfa reference crops used in
the FAO-56 PM equations
as: regression constant, expressing fraction of extraterrestrial radiation reaching earth on overcast days (n = 0) (default = 0.25)
bs: as + bs fraction of extraterrestrial radiation reaching earth on clear days (n = N) (default = 0.5)
net radiation
eq. 40 of reference
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
# -------------------------------------------- # Daily period # -------------------------------------------- Rn(x = 105, n = 8.5, elev = 2, actVP = 2.85, Tmax = 34.8, Tmin = 25.6, lat.deg = 13.73) Rn(x = 135, elev = 1, Rs = 14.5, Tmax = 25.1, Tmin = 19.1, lat.deg = -22.9, actVP = 2.1) # -------------------------------------------- # Hourly period # -------------------------------------------- Rn(x = as.POSIXct(c('2018-10-01 14:30', '2018-10-01 15:30')), Tmean = c(38, 37.8), Rhmean = c(52, 52.2), Rs = c(2.450, 2.1), elev = 8, lat.deg = 16.2, long.deg = 343.75, control = list(Lz = 15)) Rn(x = as.POSIXct('2018-10-01 14:30'), Tmean = 38, Rhmean = 52, tl = 1, Rs = 2.450, elev = 8, lat.deg = 16.2, long.deg = 343.75, control = list(Lz = 15))
# -------------------------------------------- # Daily period # -------------------------------------------- Rn(x = 105, n = 8.5, elev = 2, actVP = 2.85, Tmax = 34.8, Tmin = 25.6, lat.deg = 13.73) Rn(x = 135, elev = 1, Rs = 14.5, Tmax = 25.1, Tmin = 19.1, lat.deg = -22.9, actVP = 2.1) # -------------------------------------------- # Hourly period # -------------------------------------------- Rn(x = as.POSIXct(c('2018-10-01 14:30', '2018-10-01 15:30')), Tmean = c(38, 37.8), Rhmean = c(52, 52.2), Rs = c(2.450, 2.1), elev = 8, lat.deg = 16.2, long.deg = 343.75, control = list(Lz = 15)) Rn(x = as.POSIXct('2018-10-01 14:30'), Tmean = 38, Rhmean = 52, tl = 1, Rs = 2.450, elev = 8, lat.deg = 16.2, long.deg = 343.75, control = list(Lz = 15))
Net longwave radiation (Rnl).
Rnl( x, Tmax = NULL, Tmin = NULL, Rhmax = NULL, Rhmin = NULL, Rs = NULL, lat.rad = NULL, lat.deg = NULL, long.deg = NULL, elev, actVP = NULL, tl, Tmean = NULL, Rhmean = NULL, control = list() )
Rnl( x, Tmax = NULL, Tmin = NULL, Rhmax = NULL, Rhmin = NULL, Rs = NULL, lat.rad = NULL, lat.deg = NULL, long.deg = NULL, elev, actVP = NULL, tl, Tmean = NULL, Rhmean = NULL, control = list() )
x |
date-time object or day of the year (must be date-time object if calculation period is shorter than a day) |
Tmax |
maximum temperature [degreeC] during 24-hour period (for daily values) |
Tmin |
minimum temperature [degreeC] during 24-hour period (for daily values) |
Rhmax |
daily maximum of air humidity [percent] (for daily values) |
Rhmin |
daily minimum of air humidity [percent] (for daily values) |
Rs |
incoming solar radiation [MJ/(m2 time)] |
lat.rad |
latitude [rad]. Use either lat.rad or lat.deg. Latitude is positive for the northern hemisphere and negative for the southern hemisphere |
lat.deg |
latitude [degree]. Use either lat.deg or lat.rad. Latitude is positive for the northern hemisphere and negative for the southern hemisphere |
long.deg |
see |
elev |
station elevation above sea level [m] |
actVP |
Actual vapor pressure [kPa]. If Rhmax, Rhmin and Rhmean are NULL |
tl |
length of calculation period [hour] (1 for hourly period, 0.5 for a 30-minute period or 24 for daily period). Only needed if length of x is date-time object with length of 1. |
Tmean |
mean temperature [degreeC] during the time period (for periods shorter than a day) |
Rhmean |
Mean air humidity [percent] (for periods shorter than a day or if Rhmax and Rhmin are missing) |
control |
list for control parameters and empirical factors (see Details and |
must be provided as.numeric (1-366) or as a common date-time object (e.g, POSIXct, POSIXlt or Date objects). All formats for which is.timepoint from the lubridate package returns TRUE can be used
Lz:
longitude of the centre of the local time zone (degrees west of Greenwich)
- 0 for Greenwich
- 345 for Germany
- 330 for Cairo (Egypt)
- 255 for Bangkok (Thailand)
- 75, 90, 105 and 120 for Eastern, Central, Rocky Mountain and Pacific time zones (United States)
Lz is only needed if calculation period is shorter 1 day.
est.ratio.Rs.Rso:
Rs/Rso is used to represent cloud cover. For hourly or shorter periods during the nighttime,
the ratio Rs/Rso is set equal to the Rs/Rso calculated for a time period occurring 2-3 hours before sunset.
If single values during nighttime are calculated Rs/Rso ration 2-3 hours before sunset can not be calculated
and an approximation is needed. Following Allen (1999) one can assume Rs/Rso = 0.4 to 0.6 during nighttime periods
in humid and subhumid climates and Rs/Rso = 0.7 to 0.8 in arid and semiarid climates. A value of Rs/Rso = 0.3 presumes
total cloud cover.
Rnl net outgoing longwave radiation [MJ(/m2 time)]
eq. 39 of reference
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
Net shortwave radiation is the balance between incoming and reflected solar radiation.
Rns(Rs, control = list(albedo = 0.23))
Rns(Rs, control = list(albedo = 0.23))
Rs |
incoming solar radiation [MJ/(m2 time)] |
control |
list for control parameters and empirical factors (see Details) |
albedo [-]: 0.23 for hypothetical grass and alfalfa reference crops used in the FAO-56 PM equations
valid for daily and shorter periods
Rns net solar or shortwave radiation [MJ/(m2 time)]
eq. 38 of reference
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
Rns(Rs = 22.1) Rns(Rs = 22.1, control = list(albedo = 0.20))
Rns(Rs = 22.1) Rns(Rs = 22.1, control = list(albedo = 0.20))
Clear-sky solar radiation for daily and shorter periods.
Rso( x, lat.rad = NULL, lat.deg = NULL, long.deg = NULL, elev, tl, control = list(Lz = 345) )
Rso( x, lat.rad = NULL, lat.deg = NULL, long.deg = NULL, elev, tl, control = list(Lz = 345) )
x |
date-time object or day of the year (must be date-time object if calculation period is shorter than a day) |
lat.rad |
latitude [rad]. Use either lat.rad or lat.deg. Latitude is positive for the northern and negative for the southern hemisphere |
lat.deg |
latitude [degree]. Use either lat.deg or lat.rad. Latitude is positive for the northern and negative for the southern hemisphere |
long.deg |
longitude of the measurement site (degrees east of Greenwich) (only needed for periods < 1 day) |
elev |
station elevation above sea level [m] |
tl |
length of calculation period [hour] (1 for hourly period, 0.5 for a 30-minute period or 24 for daily period). |
control |
list for control parameters and empirical factors defined in
|
must be provided as.numeric (1-366) or as a common date-time object (e.g, POSIXct, POSIXlt, and Date objects). All formats for which is.timepoint from the lubridate package returns TRUE can be used
Lz:
longitude of the centre of the local time zone (degrees west of Greenhich)
- 0 for Greenwich
- 345 for Germany
- 330 for Cairo (Egypt)
- 255 for Bangkok (Thailand)
- 75, 90, 105 and 120 for Eastern, Central, Rocky Mountain and Pacific time zones (United States)
Lz is only needed if calculation period is shorter 1 day.
for day, hour and shorter periods
eq. 37; Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
# -------------------------------------------- # Daily period # -------------------------------------------- Rso(x = 135, elev = 1, lat.deg = -22.9) # -------------------------------------------- # Hourly period # -------------------------------------------- Rso(x = as.POSIXct('2018-10-01 12:30'), tl = 1, elev = 8, lat.deg = 16.2, long.deg = 343.75, control = list(Lz = 15))
# -------------------------------------------- # Daily period # -------------------------------------------- Rso(x = 135, elev = 1, lat.deg = -22.9) # -------------------------------------------- # Hourly period # -------------------------------------------- Rso(x = as.POSIXct('2018-10-01 12:30'), tl = 1, elev = 8, lat.deg = 16.2, long.deg = 343.75, control = list(Lz = 15))
Saturation vapor pressure [kPa].
satVP( Tmax = NULL, Tmin = NULL, Tmean = NULL, interval = "day", print.warning = T )
satVP( Tmax = NULL, Tmin = NULL, Tmean = NULL, interval = "day", print.warning = T )
Tmax |
maximum temperature [degreeC] for daily, weekly, monthly periods |
Tmin |
minimum temperature [degreeC] for daily, weekly, monthly periods |
Tmean |
mean air temperature [degreeC] for hourly or shorter periods |
interval |
hour, day, week or month |
print.warning |
TRUE or FALSE |
hour (eq. 11 of reference)
day, week or month (eq. 12 of reference or eq. 11 if only Tmean is provided)
Saturation Vapor Pressure [kPa]
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
satVP(Tmax = 24.5, Tmin = 15, interval = 'day') satVP(Tmax = 24.5, Tmin = 15, interval = 'week') satVP(Tmax = 24.5, Tmin = 15, interval = 'month') satVP(Tmax = 24.5, Tmin = 15, interval = 'hour') satVP(Tmean = 19.75, interval = 'hour')
satVP(Tmax = 24.5, Tmin = 15, interval = 'day') satVP(Tmax = 24.5, Tmin = 15, interval = 'week') satVP(Tmax = 24.5, Tmin = 15, interval = 'month') satVP(Tmax = 24.5, Tmin = 15, interval = 'hour') satVP(Tmean = 19.75, interval = 'hour')
Calculate solar declination for daily and shorther periods.
SolarDec(x)
SolarDec(x)
x |
date or day of the year |
must be provided as number (1-366) or as a common date-time object (e.g, POSIXct, POSIXlt or Date objects). All formats for which is.timepoint from the lubridate package returns TRUE can be used
eq. 24 of reference
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
Calculate actual vapour pressure [kPa] either from psychrometric data or from relative humidity data.
VP( Tmax = NULL, Tmin = NULL, Rhmax = NULL, Rhmin = NULL, interval = "day", Tmean = NULL, Rhmean = NULL, Twet = NULL, Tdry = NULL, apsy = NULL, P = NULL )
VP( Tmax = NULL, Tmin = NULL, Rhmax = NULL, Rhmin = NULL, interval = "day", Tmean = NULL, Rhmean = NULL, Twet = NULL, Tdry = NULL, apsy = NULL, P = NULL )
Tmax |
maximum temperature during 24-hour period (for daily values) |
Tmin |
minimum temperature during 24-hour period (for daily values) |
Rhmax |
maximum relative humidity [precent] (for daily values) |
Rhmin |
minimum relative humidity [precent] (for daily values) |
interval |
hour, day, week or month |
Tmean |
Mean air temperature [degreeC] (for periods shorter 1 day) |
Rhmean |
Mean air humidity [percent] (for periods shorter 1 day or if Rhmax and Rhmin are missing) |
Twet |
wet bulb temperature (for calculation with psychrometric data) |
Tdry |
dry bulb tamperature (for calculation with psychrometric data) |
apsy |
coefficient depending on the type of ventilation of the wet bulb [kPa/(degreeC)] (for calculation with psychrometric data) |
P |
atmospheric pressure [kPa] |
must be provided as.numeric (1-366) or as a common date-time object (e.g, POSIXct, POSIXlt or Date objects). All formats for which is.timepoint from the lubridate package returns TRUE can be used
- use hour for periods <= one hour
- for day, week or month the same equations are used
eq. 17 of reference (Determination of actual vapour pressure from relative maximum and minimum humidity)
eq. 15 of reference (Actual vapour pressure derived from psychrometric data) (see psyc_cons
)
eq. 19 of reference (used in the absence of RHmax and RHmin)
eq. 54 of reference (for periods shorter than a day)
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
VP(Tmax = 25, Tmin = 18, Rhmax = 82, Rhmin = 54) VP(Tmax = 25, Tmin = 18, Rhmean = 68)
VP(Tmax = 25, Tmin = 18, Rhmax = 82, Rhmin = 54) VP(Tmax = 25, Tmin = 18, Rhmean = 68)
Solar time angle at midpoint of the period (for periods < 1 day).
w(x, long.deg, control = list(Lz = 345))
w(x, long.deg, control = list(Lz = 345))
x |
date-time object (e.g, POSIXct, POSIXlt or Date objects). |
long.deg |
longitude of the measurement site (degrees east of Greenwich) (for periods < 1 day) |
control |
list for control parameters and empirical factors (see Details) |
Lz:
longitude of the centre of the local time zone (degrees west of Greenwich)
- 0 for Greenwich
- 345 for Germany
- 330 for Cairo (Egypt)
- 255 for Bangkok (Thailand)
- 75, 90, 105 and 120 for the Eastern, Central, Rocky Mountain and Pacific time zones (United States)
eq. 31 of reference
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
Sunset hour angle for given latitude and solar declination (SolarDec
).
ws(x, lat.rad)
ws(x, lat.rad)
x |
date-time object or day of the year |
lat.rad |
latitude [rad] |
must be provided as number (1-366) or as a common date-time object (e.g, POSIXct, POSIXlt or Date objects). All formats for which is.timepoint from the lubridate package returns TRUE can be used
Sunset hour angle
eq. 25 of reference
Allen, R. G., Pereira, L. S., Raes, D., & Smith, M. (1998). Crop evapotranspiration-Guidelines for computing crop water requirements-FAO Irrigation and drainage paper 56. FAO, Rome, 300(9).
ws(x = 246, lat.rad = -0.35)
ws(x = 246, lat.rad = -0.35)