New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
does MetPy's heat_index match NWS heat_index calculation by Rothfusz 1990? #1096
Comments
AWIPS II python code includes adjustments. The plot thickens! |
GEMPAK's prheat.f So the question I am attempting to resolve now is if the 40% RH threshold is right for the Rothfusz equation used by MetPy or that was only meant to be applied to Steadman. |
So an attempt to summarize my two cents. It is important to understand that there is no exact heat index equation, but my opinion is that it would be good to closely match what the National Weather Service does. e6dcd58 introduced the So the initial question, is where did those two constraints come from? The terse
But the present day GEMPAK code, at least, only checks the So I am wondering what to do here? :) I think the path forward, that mostly matches what NWS does.
I am willing to PR this and would love to be told how I have messed up this assessment! :) |
I think your assessment is sound. The only context I can add for the original commit is that the driving force behind adding the which caps out at 40%. It's entirely possible that's the basis I was using (it would seem to be consistent with the undefined <80F as well). However, my feelings now are that we have no scholarly evidence, or any citation whatsoever, for an exact RH>40% limitation, so I believe we should drop it. In searching for documentation on RH, I found the following:
I think we should do what's documented as the NWS approach, since that's objectively the most consistent with the Steadman table. I actually don't see any justification in the papers of cutting off below 80, only changing formulas. So I think the path forward is:
I don't see any mention in those resources about the 80F limit, but I do see practical use of it, like GEMPAK and the Oklahoma Mesonet. So should we keep it as an option with |
Thanks @dopplershift for the thorough comment. I wonder if the 80F 40% threshold is a back-handed way to always keep the heat_index >= air temperature. Do you see it as a problem that this proposed change would allow the I am fine with keeping the current default logic of masking heat_index < 80F by default. |
I don't have a problem with |
And I don't have an off-hand example of this either, but I've seen NWS have heat indices below temperature forecasts in the grids too, so I think this is pretty common. |
As I continue to review this confusing fun, it is unclear to me that what I PR'd last night is fully replicating what the NWS does. I also suspect there is no canonical NWS implementation of heat index :) The Anderson 2013 paper seems to imply that the canonical implementation is the javascript code on the WPC website, lol. The AWIPS II code has a hard coded setting of the heat_index to the temperature when the temperature is less than 80F. GEMPAK does not have this. En-lieu of something more authoritative, I think we are good to go with this change. |
Yo MetPy, feast your eyes on this, bah ha ha Oh noes, that plot does not exactly match values with plot posted above! For example, 80F and 100% RH, Metpy patched has 89 and NWS chart has 87.... and what does official WPC javascript say: 89! We win. The official chart is not right, lol. I need to get a life. |
That's amazing. I would love a PR that adds that as an example. Would prefer it without seaborn, but might even be worth it with seaborn. |
Thanks for the kind words @dopplershift , there is no need to introduce a seaborn requirement just for this plot. I'll just convert the |
@dopplershift I updated the gist to remove the |
- adds additional corrections used by the NWS operational heat index - removes default lower bound of 40% Relative Humidity for undefined HI - updates tests as this change produces different test results - closes Unidata#1096
The present MetPy
heat_index
calculation has a doc ofBut the Weather Prediction Center website on the topic shows a number of corrections and then contains the confusing verbiage
So if for nothing else than to document this situation, does MetPy need an additional heat index formulation? and/or the adjustments included for certain temperature and humidity ranges?
The text was updated successfully, but these errors were encountered: