看了下 NOAA 的http://www.wpc.ncep.noaa.gov/html/heatindex.shtml這個(gè)鏈接,計(jì)算體感溫度的??戳讼掠?jì)算方法,是簡(jiǎn)單的公式,就是沒有看公式是怎么得出來的。寫成python大概這樣子。
import math
def calc_heat_index(T, RH):
'''NOAA計(jì)算體感溫度 參數(shù)為氣溫(攝氏度)和相對(duì)濕度(0~100或者0~1)'''
if RH < 1:
RH *= 100
T = 1.8 * T + 32
HI = 0.5 * (T + 61 + (T - 68) * 1.2 + RH * 0.094)
if HI >= 80: # 如果不小于 80華氏度 則用完整公式重新計(jì)算
HI = -42.379 + 2.04901523 * T + 10.14333127 * RH - .22475541 * T * RH \
- .00683783 * T * T - .05481717 * RH * RH + .00122874 * T * T * RH \
+ .00085282 * T * RH * RH - .00000199 * T * T * RH * RH
if RH < 13 and 80 < T < 112:
ADJUSTMENT = (13 - RH) / 4 * math.sqrt((17 - abs(T - 95)) / 17)
HI -= ADJUSTMENT
elif RH > 85 and 80 < T < 87:
ADJUSTMENT = (RH - 85) * (87 - T) / 50
HI += ADJUSTMENT
return round((HI - 32) / 1.8, 2)
返回的是攝氏度,取了兩位小數(shù)。
如果30攝氏度,相對(duì)濕度80%,計(jì)算得到體感溫度是37.67攝氏度。