View source: R/surface_roughness.r
wind.profile | R Documentation |
Wind speed at a given height above the canopy estimated from single-level measurements of wind speed.
wind.profile( data, z, Tair = "Tair", pressure = "pressure", ustar = "ustar", H = "H", wind = "wind", zr, zh, d = NULL, frac_d = 0.7, z0m = NULL, frac_z0m = NULL, estimate_z0m = TRUE, stab_correction = TRUE, stab_formulation = c("Dyer_1970", "Businger_1971"), constants = bigleaf.constants() )
data |
Data.frame or matrix containing all required variables |
z |
Height above ground for which wind speed is calculated. |
Tair |
Air temperature (deg C) |
pressure |
Atmospheric pressure (kPa) |
ustar |
Friction velocity (m s-1) |
H |
Sensible heat flux (W m-2) |
wind |
Wind speed at height zr (m s-1); only used if |
zr |
Instrument (reference) height (m) |
zh |
Canopy height (m) |
d |
Zero-plane displacement height (-) |
frac_d |
Fraction of displacement height on canopy height (-);
only used if |
z0m |
Roughness length (m), optional; only used if |
frac_z0m |
Fraction of roughness length on canopy height (-), optional; only used if |
estimate_z0m |
Should |
stab_correction |
Should stability correction be applied? Defaults to |
stab_formulation |
Stability correction function used (If |
constants |
k - von-Karman constant (-) |
The underlying assumption is the existence of a logarithmic wind profile above the height d + z0m (the height at which wind speed mathematically reaches zero according to the Monin-Obukhov similarity theory). In this case, the wind speed at a given height z is given by:
u(z) = (ustar/k) * (ln((z - d) / z0m) - ψ{m}
The roughness parameters zero-plane displacement height (d) and roughness length (z0m)
can be approximated from roughness.parameters
. ψ{m} is omitted
if stab_correction = FALSE
(not recommended). If estimate_z0m = TRUE
,
z0m is first estimated from the wind profile equation and then used in the equation
above for the calculation of u(z)
(see e.g. Newman & Klein 2014).
A vector of wind speed at heights z
.
Note that this equation is only valid for z >= d + z0m, and it is not
meaningful to calculate values closely above d + z0m. All values in heights
smaller than d + z0m will return 0.
Monteith, J.L., Unsworth, M.H., 2008: Principles of Environmental Physics. 3rd edition. Academic Press, London.
Newman, J.F., Klein, P.M., 2014: The impacts of atmospheric stability on the accuracy of wind speed extrapolation methods. Resources 3, 81-105.
roughness.parameters
heights <- seq(18,40,2) # heights above ground for which to calculate wind speed 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)) ws <- sapply(heights,function(x) wind.profile(df,z=x,zr=40,zh=25,d=16)) colnames(ws) <- paste0(heights,"m")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.