aerodynamic.conductance {bigleaf}R Documentation

Aerodynamic Conductance


Bulk aerodynamic conductance, including options for the boundary layer conductance formulation and stability correction functions.


  Tair = "Tair",
  pressure = "pressure",
  wind = "wind",
  ustar = "ustar",
  H = "H",
  z0m = NULL,
  N = 2,
  fc = NULL,
  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), 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).


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


Input variables such as LAI, Dl, or zh can be either constants, or vary with time (i.e. vectors of the same length as data).

Note that boundary layer conductance to water vapor transfer (Gb_w) is often assumed to equal Gb_h. This assumption is also made in this R package, for example in the function surface.conductance.

If the roughness length for momentum (z0m) is not provided as input, it is estimated from the function roughness.parameters within wind.profile if wind_profile = TRUE and/or Rb_model = "Su_2001" or "Choudhury_1988" The roughness.parameters function estimates a single z0m value for the entire time period! If a varying z0m value (e.g. across seasons or years) is required, z0m should be provided as input argument.


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.

See Also

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  

# calculation of Ga using a model derived from the logarithmic wind profile

# simple calculation of Ga_m, but a physically based canopy boundary layer model

[Package bigleaf version 0.8.2 Index]