windcanopy | R Documentation |
Used for calculating wind speed profile in canopies with variable
PAI
windcanopy(
uh,
z,
hgt,
PAI = 3,
cd = 0.2,
iw = 0.5,
phi_m = 1,
edgedist = NA,
uref,
zref = hgt + 2
)
uh |
wind speed at top of canopy layer (m /s) |
z |
height of canopy layer node (m) |
hgt |
height to top of canopy layer (m) |
PAI |
Plant Area Index of canopy layer (m / m) |
cd |
drag coefficient |
iw |
turbulence intensity |
phi_m |
diabatic correction factor |
edgedist |
optional numeric value indicating distance (m) to open habitat (see details) |
uref |
wind at reference height (m) (see details) |
zref |
height (m) of |
if 'edgedist' is not NA, then horizontal wind component is also added. Here,
the wind profile of a reference grass surface is calaculate, and at any given height z
an attenuated wind speed inside thew canopy calculated, with the degree of attenuation
determined by foliage density, distance from edge and the ratio of horizontal to vertical
wind speed. If the the attenuated horizontal wind speed exceeds the wind speed due
to vertical attenuation, the horizontal wind speed is returned. The parameter uref
represents the wind speed at height zref
above the reference grass surface. If edgedist
is set to NA (the default) the horizontal wind component and hence uref
and zref
are
ignored.
wind speed at height of canopy node (m / s)
# ==== Generate plant area index values
m <- 100
hgt <- 5
z<-c(1:m) * (hgt / m)
PAI <- microctools::PAIgeometry(m, 3, 7, 70)
plot(z~PAI, type = "l")
cPAI <- cumsum(PAI)
# ==== Calculate wind speed at top of canopy
uref <- 2
a <- microctools::attencoef(hgt, 3)
uh <- windprofile(uref, hgt + 2, hgt, a, 3, hgt)
# === Calculate canopy profile (near edge)
uz1 <- 0
for (i in m:1) {
uz1[i] <- windcanopy(uh, z[i], z[i] + 0.05, cPAI[i], edgedist = 20, uref = uref)
uh <- windcanopy(uh, z[i] - 0.05, z[i] + 0.05, cPAI[i], edgedist = 20, uref = uref)
}
# === Calculate canopy profile (far from edge)
uh <- windprofile(uref, hgt + 2, hgt, a, 3, hgt)
uz2 <- 0
for (i in m:1) {
uz2[i] <- windcanopy(uh, z[i], z[i] + 0.05, cPAI[i], edgedist = 500, uref = uref)
uh <- windcanopy(uh, z[i] - 0.05, z[i] + 0.05, cPAI[i], edgedist = 500, uref = uref)
}
plot(z ~ uz1, type = "l", xlab = "wind speed", ylab = "height", xlim = c(0,1.5),
col = rgb(1,0,0,0.5), lwd = 2)
par(new = TRUE)
plot(z ~ uz2, type = "l", xlab = "", ylab = "", xlim = c(0,1.5),
col = rgb(0,0,1,0.5), lwd = 2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.