View source: R/surface_roughness.r
roughness.parameters | R Documentation |
A simple approximation of the two roughness parameters displacement height (d) and roughness length for momentum (z0m).
roughness.parameters( method = c("canopy_height", "canopy_height&LAI", "wind_profile"), zh, frac_d = 0.7, frac_z0m = 0.1, LAI, zr, cd = 0.2, hs = 0.01, data, Tair = "Tair", pressure = "pressure", wind = "wind", ustar = "ustar", H = "H", d = NULL, z0m = NULL, stab_roughness = TRUE, stab_formulation = c("Dyer_1970", "Businger_1971"), constants = bigleaf.constants() )
method |
Method to use, one of |
zh |
Vegetation height (m) |
frac_d |
Fraction of displacement height on canopy height (-) |
frac_z0m |
Fraction of roughness length on canopy height (-) |
LAI |
Leaf area index (-) |
zr |
Instrument (reference) height (m) |
cd |
Mean drag coefficient for individual leaves. Defaults to 0.2.
Only needed if |
hs |
roughness length of the soil surface (m). Only needed if |
data |
Data.frame or matrix containing all required variables |
Tair |
Air temperature (deg C) |
pressure |
Atmospheric pressure (kPa) |
wind |
Wind speed at height zr (m s-1) |
ustar |
Friction velocity (m s-1) |
H |
Sensible heat flux (W m-2) |
d |
Zero-plane displacement height (m); optional |
z0m |
Roughness length for momentum (m); optional |
stab_roughness |
Should stability correction be considered? Default is |
stab_formulation |
Stability correction function used (If |
constants |
k - von-Karman constant (-) |
The two main roughness parameters, the displacement height (d)
and the roughness length for momentum (z0m) can be estimated from simple
empirical relationships with canopy height (zh). If method = "canopy_height"
,
the following formulas are used:
d = frac_d * zh
z0m = frac_z0m * zh
where frac_d defaults to 0.7 and frac_z0m to 0.1.
Alternatively, d and z0m can be estimated from both canopy height and LAI
(If method = "canopy_height&LAI"
).
Based on data from Shaw & Pereira 1982, Choudhury & Monteith 1988 proposed
the following semi-empirical relations:
X = cd * LAI
d = 1.1 * zh * ln(1 + X^(1/4))
z0m = hs + 0.3 * zh * X^(1/2) for 0 <= X <= 0.2
z0m = hs * zh * (1 - d/zh) for 0.2 < X
If method = "wind_profile"
, z0m is estimated by solving
the wind speed profile for z0m:
z0m = median((zr - d) * exp(-k*wind / ustar - psi_m)
By default, d in this equation is fixed to 0.7*zh, but can be set to any
other value. psi_m is 0 if stab_roughness = FALSE
.
a data.frame with the following columns:
d |
Zero-plane displacement height (m) |
z0m |
Roughness length for momentum (m) |
z0m_se |
Only if |
Choudhury, B. J., Monteith J.L., 1988: A four-layer model for the heat budget of homogeneous land surfaces. Q. J. R. Meteorol. Soc. 114, 373-398.
Shaw, R. H., Pereira, A., 1982: Aerodynamic roughness of a plant canopy: a numerical experiment. Agricultural Meteorology, 26, 51-65.
wind.profile
# estimate d and z0m from canopy height for a dense (LAI=5) and open (LAI=2) canopy roughness.parameters(method="canopy_height&LAI",zh=25,LAI=5) roughness.parameters(method="canopy_height&LAI",zh=25,LAI=2) # fix d to 0.7*zh and estimate z0m from the wind profile df <- data.frame(Tair=c(25,25,25),pressure=100,wind=c(3,4,5),ustar=c(0.5,0.6,0.65),H=200) roughness.parameters(method="wind_profile",zh=25,zr=40,frac_d=0.7,data=df) # assume d = 0.8*zh roughness.parameters(method="wind_profile",zh=25,zr=40,frac_d=0.8,data=df)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.