sharppy / SHARPpy

Sounding/Hodograph Analysis and Research Program in Python
https://sharppy.github.io/SHARPpy/index.html
Other
216 stars 112 forks source link

SWEAT Index shear term modification #145

Closed tennessean closed 5 years ago

tennessean commented 5 years ago

I happened to be looking through the params.py page when I noticed the code for the SWEAT Index, more specifically the shear term (labeled as "term5", lines 2936-2939):

    if vec500[0] - vec850[0] > 0:
        term5 = 125 * (np.sin( np.radians(vec500[0] - vec850[0])  + 0.2))
    else:
        term5 = 0

This section is missing a couple of other important restrictions regarding the use of the shear term: Miller (1972), Notes on Analysis and Severe Storm Forecasting Procedures of the Military Weather Warning Center (AWS Technical Report 200), says on page F-3 that:

The entire shear term, 125(S+0.2), is set to zero if any of the following conditions are not met: 850-mb wind direction in the range 130 through 250 degrees, 500-mb wind direction in the range 210 through 310 degrees, 500-mb wind direction minus 850-mb wind direction positive; and both the 850- and 500-mb wind speeds at least 15 knots.

So, taking these requirements into consideration, the correct shear term should (perhaps) be written as such:

    if 130 <= vec850[0] and 250 >= vec850[0] and 210 <= vec500[0] and 310 >= vec500[0] and vec500[0] - vec850[0] > 0 and vec850[1] >= 15 and vec500[1] >= 15:
        term5 = 125 * (np.sin( np.radians(vec500[0] - vec850[0])  + 0.2))
    else:
        term5 = 0

Note that the wind speed terms have to be in knots.

Since I'm relatively new here, I didn't want to make any changes without letting others know of the changes that I wanted to make. Please let me know what you think.

Thank you.

wblumberg commented 5 years ago

Nice catch! I've updated the code to correct this error. I didn't know about those wind restrictions. Interesting and important for those outside of the US who wish to use this index.