The aerodynamic surface roughness length, zo, and zero-plane displacement, D, are defined for a neutral wind profile by
U(z) = (u*/k)ln((z-D)/zo)
where U is the mean wind speed measured at height z (above ground level), u* is friction velocity, and k=0.4 is the von Karman constant. D and zo are best calculated with a wind profile measured at several levels, but (theoretically) they can also be calculated from two levels of wind data as commonly measured by the ISFF Flux-PAM stations, i.e. with a prop-vane at 10m height and a sonic anemometer at a second height. A good test for neutral stability is zero heat flux <w'tc'> or zero temperature variance <tc'tc'>..
Solving for the two wind profile parameters,
D = z1 - (z2-z1)/[exp(k(U2-U1)/u*) - 1]
zo = (z-D)exp(-kU(z)/u*)
= (z2-z1)/[exp(kU2/u*) - exp(kU1/u*)]
Note that if the zero-plane displacement height is known, then the roughness length can be calculated from measurements of wind speed and friction velocity by a singe sonic anemometer.
The sensitivity of these formulas to errors in height, wind speed, and friction velocity measurements are,
dzo/zo = (dz2-dz1)/(z2-z1) - (z2-D)/(z2-z1)(dU2/U2-du*/u*)kU2/u* + (z1-D)/(z2-z1)(dU1/U1-du*/u*)kU1/u*
dD = dz1(z2-D)/(z2-z1) - dz2(z1-D)/(z2-z1) + (z2-D)(z1-D)/(z2-z1)*[(dU2/U2-du*/u*)kU2/u* - (dU1/U1-du*/u*)kU1/u*]
where dz, dU, and du* are measurement errors in height, wind speed, and friction velocity. It can be noted that the errors in roughness length dzo are proportional to zo, whereas the errors in zero-plane displacement dD are proportional to (z1-D) and (z2-D). Thus as zo approaches 0, its uncertainty decreases proportionally, whereas the uncertainty in zero-plane displacement does not decrease as D approaches 0. The error terms containing the factor kU/u*=ln((z-D)/z0)~ 4-8 can be particularly large. For example, if z2 / z1 = 2 and D << z1, then
dz0 ~ (4-8)z0[dU/U - du*/u*]
dD ~ z2[dU/U - du*/u*]