Bulk aerodynamic conductance, including options for the boundary layer conductance formulation and stability correction functions.
aerodynamic.conductance(data, Tair = "Tair", pressure = "pressure",
wind = "wind", ustar = "ustar", H = "H", zr, zh, d, z0m, Dl,
N = 2, fc = NULL, LAI, Cd = 0.2, hs = 0.01,
wind_profile = FALSE, stab_correction = TRUE,
stab_formulation = c("Dyer_1970", "Businger_1971"),
Rb_model = c("Thom_1972", "Choudhury_1988", "Su_2001",
"constant_kB-1"), kB_h = NULL, Sc = NULL, Sc_name = NULL,
constants = bigleaf.constants())
Data.frame or matrix containing all required variables
Air temperature (deg C)
Atmospheric pressure (kPa)
Wind speed (m s-1)
Friction velocity (m s-1)
Sensible heat flux (W m-2)
Instrument (reference) height (m)
Canopy height (m)
Zero-plane displacement height (m)
Roughness length for momentum (m)
Characteristic leaf dimension (m) (if Rb_model
= "Su_2001"
)
or leaf width (if Rb_model
= "Choudhury_1988"
); ignored otherwise.
Number of leaf sides participating in heat exchange (1 or 2); only used if Rb_model = "Su_2001"
.
Defaults to 2.
Fractional vegetation cover (-); only used if Rb_model = "Su_2001"
. See Details.
One-sided leaf area index (m2 m-2); only used if Rb_model
= "Choudhury_1988"
or "Su_2001"
.
Foliage drag coefficient (-); only used if Rb_model = "Su_2001"
.
Roughness length of bare soil (m); only used if Rb_model = "Su_2001"
.
Should Ga for momentum be calculated based on the logarithmic wind profile equation?
Defaults to FALSE
.
Should stability correction be applied? Defaults to TRUE
. Ignored if wind_profile = FALSE
.
Stability correction function. Either "Dyer_1970"
(default) or
"Businger_1971"
. Ignored if wind_profile = FALSE
or if stab_correction = FALSE
.
Boundary layer resistance formulation. One of "Thom_1972","Choudhury_1988","Su_2001","constant_kB-1"
.
kB-1 value for heat transfer; only used if Rb_model = "constant_kB-1"
Optional: Schmidt number of additional quantities to be calculated
Optional: Name of the additonal quantities, has to be of same length than
Sc_name
k - von Karman constant
cp - specific heat of air for constant pressure (J K-1 kg-1)
Kelvin - conversion degree Celsius to Kelvin
g - gravitational acceleration (m s-2)
pressure0 - reference atmospheric pressure at sea level (Pa)
Tair0 - reference air temperature (K)
Sc_CO2 - Schmidt number for CO2
Pr - Prandtl number (if Sc
is provided)
a dataframe with the following columns:
Aerodynamic conductance for momentum transfer (m s-1)
Aerodynamic resistance for momentum transfer (s m-1)
Aerodynamic conductance for heat transfer (m s-1)
Aerodynamic resistance for heat transfer (s m-1)
Canopy boundary layer conductance for heat transfer (m s-1)
Canopy boundary layer resistance for heat transfer (s m-1)
kB-1 parameter for heat transfer
Stability parameter 'zeta' (NA if wind_profile = FALSE
)
Integrated stability correction function (NA if wind_profile = FALSE
)
Aerodynamic resistance for CO2 transfer (s m-1)
Aerodynamic conductance for CO2 transfer (m s-1)
Canopy boundary layer conductance for CO2 transfer (m s-1)
Aerodynamic conductance for Sc_name
(m s-1). Only added if Sc_name
and
the respective Sc
are provided
Boundary layer conductance for Sc_name
(m s-1). Only added if Sc_name
and
the respective Sc
are provided
Aerodynamic conductance for heat (Ga_h) is calculated as:
$$Ga_h = 1 / (Ra_m + Rb_h)$$
where Ra_m is the aerodynamic resistance for momentum and Rb the (quasi-laminar) canopy boundary layer resistance ('excess resistance').
The aerodynamic resistance for momentum Ra_m is given by:
$$Ra_m = u/ustar^2$$
Note that this formulation accounts for changes in atmospheric stability, and does not require an additional stability correction function.
An alternative method to calculate Ra_m is provided
(calculated if wind_profile = TRUE
):
$$Ra_m = (ln((zr - d)/z0m) - psi_h) / (k ustar)$$
If the roughness parameters z0m and d are unknown, they can be estimated using
roughness.parameters
. The argument stab_formulation
determines the stability correction function used
to account for the effect of atmospheric stability on Ra_m (Ra_m is lower for unstable
and higher for stable stratification). Stratification is based on a stability parameter zeta (z-d/L),
where z = reference height, d the zero-plane displacement height, and L the Monin-Obukhov length,
calculated with Monin.Obukhov.length
The stability correction function is chosen by the argument stab_formulation
. Options are
"Dyer_1970"
and "Businger_1971"
.
The model used to determine the canopy boundary layer resistance for heat (Rb_h) is specified by
the argument Rb_model
. The following options are implemented:
"Thom_1972"
is an empirical formulation based on the friction velocity (ustar) (Thom 1972):
$$Rb_h = 6.2ustar^-0.667$$
The model by Choudhury & Monteith 1988 (Rb_model = "Choudhury_1988"
),
calculates Rb_h based on leaf width, LAI and ustar (Note that function argument Dl
represents leaf width (w) and not characteristic leaf dimension (Dl)
if Rb_model
= "Choudhury_1988"
):
$$Gb_h = LAI((0.02/\alpha)*sqrt(u(zh)/w)*(1-exp(-\alpha/2)))$$
where \(\alpha\) is a canopy attenuation coefficient modeled in dependence on LAI,
u(zh) is wind speed at canopy height (calculated from wind.profile
),
and w is leaf width (m). See Gb.Choudhury
for further details.
The option Rb_model = "Su_2001"
calculates Rb_h based on the physically-based Rb model by Su et al. 2001,
a simplification of the model developed by Massman 1999:
$$kB-1 = (k Cd fc^2) / (4Ct ustar/u(zh)) + kBs-1(1 - fc)^2$$
where Cd is a foliage drag coefficient (defaults to 0.2), fc is fractional
vegetation cover, Bs-1 is the inverse Stanton number for bare soil surface,
and Ct is a heat transfer coefficient. See Gb.Su
for
details on the model.
The models calculate the parameter kB-1, which is related to Rb_h:
$$kB-1 = Rb_h * (k * ustar)$$
Rb (and Gb) for water vapor and heat are assumed to be equal in this package. Gb for other quantities x is calculated as (Hicks et al. 1987):
$$Gb_x = Gb / (Sc_x / Pr)^0.67$$
where Sc_x is the Schmidt number of quantity x, and Pr is the Prandtl number (0.71).
Verma, S., 1989: Aerodynamic resistances to transfers of heat, mass and momentum. In: Estimation of areal evapotranspiration, IAHS Pub, 177, 13-20.
Verhoef, A., De Bruin, H., Van Den Hurk, B., 1997: Some practical notes on the parameter kB-1 for sparse vegetation. Journal of Applied Meteorology, 36, 560-572.
Hicks, B.B., Baldocchi, D.D., Meyers, T.P., Hosker, J.R., Matt, D.R., 1987: A preliminary multiple resistance routine for deriving dry deposition velocities from measured quantities. Water, Air, and Soil Pollution 36, 311-330.
Monteith, J.L., Unsworth, M.H., 2008: Principles of environmental physics. Third Edition. Elsevier Academic Press, Burlington, USA.
Gb.Thom
, Gb.Choudhury
, Gb.Su
for calculations of Rb / Gb only
# NOT RUN {
df <- data.frame(Tair=25,pressure=100,wind=c(3,4,5),ustar=c(0.5,0.6,0.65),H=c(200,230,250))
# simple calculation of Ga
aerodynamic.conductance(df,Rb_model="Thom_1972")
# calculation of Ga using a model derived from the logarithmic wind profile
aerodynamic.conductance(df,Rb_model="Thom_1972",zr=40,zh=25,d=17.5,z0m=2,wind_profile=TRUE)
# simple calculation of Ga, but a physically based canopy boundary layer model
aerodynamic.conductance(df,Rb_model="Su_2001",zr=40,zh=25,d=17.5,Dl=0.05,N=2,fc=0.8)
# }
Run the code above in your browser using DataLab