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 = NULL,
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()
)
a data.frame 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
Roughness length for heat (m) (NA if not input z0m
not provided as input
or not estimated in this function)
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
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), optional; if not provided, it is estimated from roughness.parameters
(method="wind_profile"). Only used if wind_profile = TRUE
and/or Rb_model
= "Su_2001"
or
"Choudhury_1988"
.
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 additional 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)
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_h = (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) (in the code referred to as kB_h
),
which is related to Rb_h:
$$kB_h = Rb_h * (k * ustar)$$
From version 0.7.6 onwards, the roughness length for heat (z0h) is added to the output
if z0m is available (i.e. provided as input or calculated within this function).
z0h is calculated from roughness.length.heat
:
$$z0h = z0m / exp(kB_h)$$
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
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_m, 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