Unidata / MetPy

MetPy is a collection of tools in Python for reading, visualizing and performing calculations with weather data.
https://unidata.github.io/MetPy/
BSD 3-Clause "New" or "Revised" License
1.25k stars 415 forks source link

WINDEX (microburst potential) #639

Open jrleeman opened 6 years ago

jrleeman commented 6 years ago

Another severe index:

McCann_1994.pdf

GEMPAK docs

WNDX WINDEX (index for microburst potential) WNDX (S1, S2, S3, S4) = 2.5 SQRT (HGHTF RATIO * (GAMMA*2 - 30 + MIXRS - 2 MIXRF ) ) TMPCS = surface temperature = S1 HGHTF = AGL Height of Freezing level = S2 MIXRS = surface mixing ratio = S3 MIXRF = freezing level mixing ratio = S4 RATIO = MIXRS / 12 if MIXRS < 12, = 1 otherwise GAMMA = TMPCS / HGHTF

jrleeman commented 6 years ago

Reading the paper I only see one point of uncertainty here. The GEMPAK docs show the leading coefficient to be 2.5 while the paper has it as 5.

screenshot 2017-12-06 08 48 51

The implementation would look something like:

def windex(melting_level_height, lapse_rate_to_melting_level,
                    mixing_ratio_to_1km, mixing_ratio_at_melting_level):
    R_Q = np.clip(mixing_ratio_to_1km / 12, 0, 1)
    return (5 * np.sqrt(melting_level_height.to('km') * R_Q * 
                (lapse_rate_to_melting_level.to('delta_DegC/km') * lapse_rate_to_melting_level.to('delta_DegC/km') -
                 30 + mixing_ratio_to_1km - 2 * mixing_ratio_at_melting_level)))

The paper also gives us some good units tests.

screenshot 2017-12-06 08 46 32