Learn R Programming

bigleaf (version 0.7.0)

aerodynamic.conductance: Aerodynamic Conductance

Description

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

Usage

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())

Arguments

data

Data.frame or matrix containing all required variables

Tair

Air temperature (deg C)

pressure

Atmospheric pressure (kPa)

wind

Wind speed (m s-1)

ustar

Friction velocity (m s-1)

H

Sensible heat flux (W m-2)

zr

Instrument (reference) height (m)

zh

Canopy height (m)

d

Zero-plane displacement height (m)

z0m

Roughness length for momentum (m)

Dl

Characteristic leaf dimension (m) (if Rb_model = "Su_2001") or leaf width (if Rb_model = "Choudhury_1988"); ignored otherwise.

N

Number of leaf sides participating in heat exchange (1 or 2); only used if Rb_model = "Su_2001". Defaults to 2.

fc

Fractional vegetation cover (-); only used if Rb_model = "Su_2001". See Details.

LAI

One-sided leaf area index (m2 m-2); only used if Rb_model = "Choudhury_1988" or "Su_2001".

Cd

Foliage drag coefficient (-); only used if Rb_model = "Su_2001".

hs

Roughness length of bare soil (m); only used if Rb_model = "Su_2001".

wind_profile

Should Ga for momentum be calculated based on the logarithmic wind profile equation? Defaults to FALSE.

stab_correction

Should stability correction be applied? Defaults to TRUE. Ignored if wind_profile = FALSE.

stab_formulation

Stability correction function. Either "Dyer_1970" (default) or "Businger_1971". Ignored if wind_profile = FALSE or if stab_correction = FALSE.

Rb_model

Boundary layer resistance formulation. One of "Thom_1972","Choudhury_1988","Su_2001","constant_kB-1".

kB_h

kB-1 value for heat transfer; only used if Rb_model = "constant_kB-1"

Sc

Optional: Schmidt number of additional quantities to be calculated

Sc_name

Optional: Name of the additonal quantities, has to be of same length than Sc_name

constants

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)

Value

a dataframe with the following columns:

Ga_m

Aerodynamic conductance for momentum transfer (m s-1)

Ra_m

Aerodynamic resistance for momentum transfer (s m-1)

Ga_h

Aerodynamic conductance for heat transfer (m s-1)

Ra_h

Aerodynamic resistance for heat transfer (s m-1)

Gb_h

Canopy boundary layer conductance for heat transfer (m s-1)

Rb_h

Canopy boundary layer resistance for heat transfer (s m-1)

kB_h

kB-1 parameter for heat transfer

zeta

Stability parameter 'zeta' (NA if wind_profile = FALSE)

psi_h

Integrated stability correction function (NA if wind_profile = FALSE)

Ra_CO2

Aerodynamic resistance for CO2 transfer (s m-1)

Ga_CO2

Aerodynamic conductance for CO2 transfer (m s-1)

Gb_CO2

Canopy boundary layer conductance for CO2 transfer (m s-1)

Ga_Sc_name

Aerodynamic conductance for Sc_name (m s-1). Only added if Sc_name and the respective Sc are provided

Gb_Sc_name

Boundary layer conductance for Sc_name (m s-1). Only added if Sc_name and the respective Sc are provided

Details

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).

References

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

Examples

Run this code
# 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