Different wind speed between wind roses and wind profile


I’m trying to evaluate the good wind speed to test a butterfly on a tower.
So I made a wind roses and a wind profile.
But the values I get from the 2 are differents.

From the Wind roses, I get an average to the north at 3,1 m/s. But from the wind profile, at 10 m I get 1,5 m/s.
Do you have any idea to explain the différences ?

Thanks a lot for your help.


The main contributor to the difference your seeing is that the _terrain_ input needs to be set to a value representing the airport condition, by default it assumes a city.

Additionally, the wind profile average includes the calm hours (wind speeds ~ 0 m/s) in its averaging, whereas the wind rose filters these out. There are cases where you’ll want the calm hours (i.e. where having the 8760 data values is important), but you should always filter it out before calculating any metrics that depend on direction, since they don’t have a direction.

So if you set the _terrain_ to 2, and filter out wind speeds ~ 0, the wind average on the profile will equal the wind rose:

There’s another difference I noticed, that didn’t have any impact on most EPW files, but could lead to discrepency in theory, the direction binning between both components (for 8 bins) is slightly different.

Here’s the code for both. This is just for the north direction, but same logic extends for all other directions too:

# LB Wind Profile
lw, hg = dir_range
if dir_range == (337.5, 22.5):
    pattern = [lw < v or v < hg for v in met_wind_dir_]
# LB Wind Rose
interval1 = (k <= hist_range[1] and k >= bins[i])
interval2 = (k < bins[i + 1] and k >= hist_range[0])
if interval1 or interval2:

Rewritten version that captures the underlying conditional logic:

# LB Wind Profile
337.5 <  v or v < 22.7

# LB Wind Rose
337.5 <= v or v < 22.7

@chris what do you think? It looks like a typo to me in the interval calculation, or are the bin edge values accounted for somewhere else?


Thanks for your answer. It works fine that way :slight_smile: