Hi Chris,
Sorry for coming back to you so late on this.
I went through some literature on the web and in books to understand it myself. It seems that most people would agree that the log wind profile represents wind flow more accurately in lower heights. The general formula for the log wind profile is:
U(z) = (u*/k)[ln((z-d)/zo)] + psi(z, zo, L) (1)
where U(z) is the mean horizontal wind speed at heigh z, u* is the friction velocity (velocity scale representative of velocities close to a solid boundary), k is the von karman constant (empirically set at 0.41 for rough and smooth surfaces), d is the displacement height, zo is the specific surface roughness, and psi is a stability term.
Most cases assume neutral stability in the atmosphere to eliminate the psi term (i.e. z/L = 0) If not there are much more complex calculations required between temperature and wind speeds, essentially requiring numerical simulations to calculate the profile. With eliminating the psi term, it is easy to calculate the wind speed at any height z, provided we know the wind speed at reference heigh z1, like so:
U(z)/U(z1) = ln((z-d)-zo)/ln((z1-d)-zo1) -> U(z) = … (2)
where z is the height we are interested in, zo is the roughness height in our case area, z1 is the reference height and zo1 is the reference roughness of the measurements. These are the measurements in the EPW file. The added information so far compared to the power law is that we also need the roughness level of the EPW data (usually near airports where roughness is very low, like 0.0002).
Another simpler way is to calculate the friction velocity first by:
u*=kU(z)/ln(z/zo), (3)
assuming d=0 and z is the reference height of the measurements. Then we can use this to calculate the wind profile.
While d=0 is an assumption I can understand, I do not really agree with accounting for a similar roughness level between the area of measurements and the case area. This is highliy problem and context specific. Especially in urban environments in my opinion it is almost always wrong.
The displacement height (d) is usually calculated as 2/3 of the average height in the area of interest (sometimes “average” has a qualitative connotation as “characteristic”). Accounting for displacement height does introduce a problem though, the wind profile below d meters is undetermined, since ln(x) is undefined for x<0. In order to solve there is a two-step approach which forms these two equations:
U(z) = (u*/k) x ln(z/zo1) for z < a*d
and
U(z) = (u*/k) x ln((z-d)/zo), for z > a*d
Literature mentions that the choice of zo1 and a (i.e. the boundary of the 2 profiles) is quite arbitrary and not very influential in the results. Usually, zo1 is much lower than zo since lower roughness is expected on a higher height, especially in urban zones.
The way I understand it, I think even implementing the simple formula (1) and then using (2) to calculate the profile is enough. For the inclusion of the displacement zone I imagine additional inputs would be required from the users and it would be their responsibility to conduct some sort of sensitivity analysis on the results. Equation (3) would be ok if no data on roughness level of the EPW measurement is available.
Anyways, that’s my 0.02c. Bear with me and the mistakes herein, this isn’t my specialty by a long shot and I’m just delving into all of this.
Some references:
Wikipedia ofc.
sts.bwk.tue.nl/drivingrain ( a nice page with a lot of additional references. The two-method was mentioned here).
wind-data.ch/tools/profile.php? (a nice online tool that calculates log-wind profiles) and gives the most commonly reproduced values (in the literature) for zo.
Wilcox, Turbulence Modeling for CFD (this is more related to CFD but it gives some background on the physics of the log-law)
Argain et al. 2008, Estimation of the Friction Velocity in Stably Stratified Boundary Layer Flows Over Hills (an example of the complicated calculations when not assuming a neutral stability in the atmosphere)
American Society of Civil Engineers (1999), Wind Tunnel Studies of Building and Structures (as always very good reference, provides the standard categories for zo values)