View source: R/aerodynamic_conductance.r
aerodynamic.conductance | R Documentation |
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() )
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), optional; if not provided, it is estimated from |
Dl |
Characteristic leaf dimension (m) (if |
N |
Number of leaf sides participating in heat exchange (1 or 2); only used if |
fc |
Fractional vegetation cover (-); only used if |
LAI |
One-sided leaf area index (m2 m-2); only used if |
Cd |
Foliage drag coefficient (-); only used if |
hs |
Roughness length of bare soil (m); only used if |
wind_profile |
Should Ga for momentum be calculated based on the logarithmic wind profile equation?
Defaults to |
stab_correction |
Should stability correction be applied? Defaults to |
stab_formulation |
Stability correction function. Either |
Rb_model |
Boundary layer resistance formulation. One of |
kB_h |
kB-1 value for heat transfer; only used if |
Sc |
Optional: Schmidt number of additional quantities to be calculated |
Sc_name |
Optional: Name of the additional quantities, has to be of same length than
|
constants |
k - von Karman constant |
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/α)*sqrt(u(zh)/w)*(1-exp(-α/2)))
where α 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:
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 |
z0h |
Roughness length for heat (m) (NA if not input |
zeta |
Stability parameter 'zeta' (NA if |
psi_h |
Integrated stability correction function (NA if |
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 |
Gb_Sc_name |
Boundary layer conductance for |
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.
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.