heat_index_nws
Compute the 'heat index' as calculated by the National Weather Service.
Available in version 6.4.0 and later.
Prototype
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" function heat_index_nws ( t : numeric, rh : numeric, iounit [2] : integer, opt : integer ) return_val [dimsizes(t)] : float or double
Arguments
tScalar or array containing temperature(s) [ units see iounit ].
rhScalar or array containing relative humidity (%). If an array, it must have same size and shape as t.
iounitAn integer array of length 2 which specifies the units of the input t and returned heat_index:
- iounit(0)=0 input t (degC)
- iounit(0)=1 input t (degK)
- iounit(0)=2 input t (Farenheit)
- iounit(1)=0 returns units degC
- iounit(1)=1 returns units degK
- iounit(1)=2 returns units Farenheit
Option which indicates which formulation should be used. If opt=False, the default is to use the formulation as indicated on the NWS website. This formulation is appropriate for temperatures 80F and above and relative humidities greater than 40%. If opt=True and the attribute "coef" is associated with opt [ie, opt@coef] and and it has the integer value 2 ( ie: opt@coef=2 ), an alternate set of coefficients appropriate for temperatures spanning 70F-115F and humidities between 0 and 80% will be used. The results are within 3F of the default formulation.
Return value
A scalar or an array of the same size and shape as t. The output will be double if t or rh is of type double. The units are specified by iounit(1).
Description
Calculate the heat index as described at:
http://www.wpc.ncep.noaa.gov/html/heatindex_equation.shtml
The 'Heat Index' is a measure of how hot weather "feels" to the body. The combination of temperature an humidity produce an "apparent temperature" or the temperature the body "feels". The returned values are for shady locations only. Exposure to full sunshine can increase heat index values by up to 15°F. Also, strong winds, particularly with very hot, dry air, can be extremely hazardous as the wind adds heat to the body
The computation of the heat index is a refinement of a result obtained by multiple regression analysis carried out by Lans P. Rothfusz and described in a 1990 National Weather Service (NWS) Technical Attachment (SR 90-23). All values less that 40F/4.4C/277.65K are set to the ambient temperature.
In practice, the Steadman formula is computed first and the result averaged with the temperature. If this heat index value is 80 degrees F or higher, the full regression equation along with any adjustment as described above is applied. If the ambient temperature is less the 40F (4.4C/277.65K), the heat index is set to to the ambient temperature.
Effects of the heat index (shade values)
HEAT INDEX degC degF Notes 27-32 80-91 Caution: fatigue & cramps possible with prolonged exposure and activity. 32-41 90-105 Extreme caution: cramps, heat exhaustion & heat stroke 41-54 105-130 Danger: cramps, heat exhaustion are likely; heat stroke is probable 54+ 130+ Extreme danger: heat stroke is imminent. REFERENCES: WWW: Heat Index Buzan, J.R. et al (2015): Implementation and comparison of a suite of heat stress metrics within the Community Land Model version 4.5 Geosci. Model Dev., 8, 151–170, 2015 www.geosci-model-dev.net/8/151/2015/ doi:10.5194/gmd-8-151-2015 Lans P. Rothfusz (1990): NWS Technical Attachment (SR 90-23) Steadman, R. G. (1979): The assessment of sultriness, Part I: A temperature-humidity index based on human physiology and clothing science J. Appl. Meteorol., 18, 861–873, 1979a doi: http://dx.doi.org/10.1175/1520-0450(1979)018<0861:TAOSPI>2.0.CO;2
Examples
Heat indicies below (say) 78F/25.5C/298K may not be that useful.
Example 1: Sample with degrees farenheit input [iounit(0)=2] and returned [iounit(1)=2].
t = (/ 104, 100, 92, 92, 86, 80, 80, 60, 30 /) ; degF rh = (/ 55, 65, 60, 90, 90, 40, 75, 90, 50 /) ; % io = (/2,2/) ; degF input, degF output hi = heat_index_nws(t, rh, io, False) print("t="+t+" rh="+rh+" hi="+hi)The output is as follows. The first seven entries match the Wikipedia Heat Index table from NOAA. The table does not go below 80F and 40% relative humidity.
degF % degF (0) t=104 rh=55 hi=137.361 Match NOAA table (1) t=100 rh=65 hi=135.868 " (2) t= 92 rh=60 hi=104.684 " (3) t= 92 rh=90 hi=131.256 " (4) t= 86 rh=90 hi=105.294 " (5) t= 80 rh=75 hi=83.5751 " (6) t= 80 rh=40 hi=79.79 Match NOAA table (7) t= 60 rh=90 hi=59.965 (8) t= 30 rh=50 hi=30.00
Example 2: From a file
f = addfile ("foo.nc", "r") t = f->TREFHT ; degK; (time,lat,lon) rh = f->RHREFHT ; % io = (/1,2/) ; input degK; return degF HI = heat_index_nws(t, rh, io, False) printMinMax(HI, 0)The output returns any available meta data. Here
Variable: HI_NWS Type: float Total Size: 221184 bytes 55296 values Number of Dimensions: 3 Dimensions and sizes: [time | 1] x [lat | 192] x [lon | 288] Coordinates: time: [4623..4623] lat: [ -90.. 90] lon: [ 0..358.75] Number Of Attributes: 5 long_name : heat index: NWS units : degF www : http://www.wpc.ncep.noaa.gov/html/heatindex_equation.shtml info : appropriate for shady locations with no wind tag : NCL: heat_index_nws; (Steadman+t)*0.5 and Rothfusz (0) (0) heat index: NWS: min=-96.4815 max=110.047Example 3: Same as example 2 but:
io = (/1,0/) ; input degK; return degCThe output would be in degC:(0) heat index: NWS: min=-71.3779 max=43.359