気温と、「相対湿度」または「露点温度」のどちらか一方を入力してください。ヒートインデックス(体感温度)を °C・°F・K で計算し、米国NWSの4段階の危険度の目安と、湿度と体感温度の関係のグラフも表示します。
目次
このページでできること
- 気温と相対湿度を入れるだけで、米国NWS(国立気象局)方式のヒートインデックス(夏の体感温度の指標)がその場でわかります
- 湿度の代わりに露点温度からも計算できます(露点温度は自動で相対湿度に換算されます)
- 結果は °C・°F・K の3つの単位で表示され、米国NWSの4段階の危険度の目安も確認できます
- 「同じ気温でも湿度が高いと体感温度がどれだけ上がるか」がグラフで一目でわかります
- 式のやさしい解説・Excel/Googleスプレッドシート/Python用のコピペ数式・計算ドリル(演習問題)もこのページにまとまっています
この計算は何の役に立つ?
「今日は33°C。昨日より1°C低いから少し楽かな」——湿度を見落とすと、この判断は逆になることがあります。気温33°C・湿度75%のヒートインデックスは約46°Cで、米国NWSの4段階では「危険(Danger)」に相当します。
同じ気温でも湿度で危険度が大きく変わることを数字で知っておくと、練習の強度や休憩の取り方を「気温だけ」で判断しなくなります。なお、日本の学校・スポーツ現場の公式な判断基準は環境省のWBGT(暑さ指数)なので、実際の中止判断などはそちらに従ってください。
米国ではOSHA(労働安全衛生局)が、屋外作業の暑さ対策の目安としてヒートインデックスを使っています。例えば気温30°Cでも、湿度50%なら体感約31°C、湿度80%なら体感約38°Cと、湿度だけで7°C近く差が出ます。
「気温が同じでも蒸し暑い日は作業ペースを落とす・休憩と水分を増やす」という調整を、感覚ではなく数字を根拠に行えます。
乾燥した内陸の都市の40°C(湿度20%)はヒートインデックス約39°C、蒸し暑い都市の33°C(湿度75%)は約46°C——気温が7°C低い方が、体感でははるかに厳しいという逆転が起こります。
海外の天気予報やアプリに出てくる「Heat Index」「Feels like(体感温度)」はまさにこの指標なので、意味がわかると旅行先の服装や日中の行動計画を立てやすくなります。
室温28°C・湿度70%のヒートインデックスは約31°Cですが、除湿して湿度40%まで下げると約28°Cになります。温度設定を変えなくても、湿度を下げるだけで体感が3°C下がる計算です。
「冷房の設定温度を下げる」以外に「湿度を下げる」という選択肢があることを数字で理解できると、電気代と快適さのバランスを取りやすくなります。
気象情報に出てくる露点温度は、空気中の水蒸気の量を表す値です。例えば気温30°Cのとき、露点温度24°Cなら相対湿度は約70%(かなり蒸し暑い)、露点温度15°Cなら約40%(からっとしている)に相当します。
「露点温度が高い日は蒸し暑い」という関係を知っておくと、湿度の予報が無くても暑さの質を先読みできます。このページの計算機は露点温度からの入力にも対応しています。
式とグラフ
用語・記号の解説
記号
| \(HI\) | エイチ・アイ | ヒートインデックス(Heat Index)。気温と湿度から求める体感温度の指標で、式は華氏(°F)で計算します。このページの計算機は °C・K にも自動で換算します。 |
| \(T\) | ティー | 気温。簡易式・回帰式では華氏(°F)、露点温度からの換算式(Magnus近似)では摂氏(°C)を使う点に注意してください。 |
| \(RH\) | アール・エイチ | 相対湿度(Relative Humidity)。天気予報の「湿度」のことで、0〜100の%の値をそのまま式に入れます(例:湿度70% → 70)。 |
| \(T_d\) | ティー・ディー | 露点温度(°C)。空気を冷やしたときに水滴(結露)ができ始める温度で、空気中の水蒸気の量を表します。 |
| \(c_0\)〜\(c_8\) | シー・ゼロ〜シー・エイト | Rothfusz回帰式の9個の係数。観測データに最も合うように統計的に定められた定数です。 |
| \(\exp\) | エクスポネンシャル | 自然指数関数。\(\exp(x)\) はネイピア数 \(e \fallingdotseq 2.718\) の \(x\) 乗のことです。Excelでは EXP関数、Pythonでは math.exp で計算できます。 |
用語
| ヒートインデックス | ひーといんでっくす | 気温と湿度を組み合わせて「人がどのくらい暑く感じるか」を温度の形で表した指標。1978年にGeorge Winterlingが考案し、米国NWS(国立気象局)が夏の暑さの注意喚起に使っています。日陰・弱い風の条件を想定した指標で、風速や日差しは考慮しません(直射日光の下では体感温度がこの値よりさらに大きく上がりうるとNWSは注意しています)。また、もともと気温80°F(約26.7°C)以上・相対湿度40%以上の蒸し暑い条件を対象に作られているため、それより涼しい・乾いた条件での値は参考程度です。 |
| WBGT (暑さ指数) |
だぶりゅー・びー・じー・てぃー(あつさしすう) | 湿球黒球温度。日本の環境省が熱中症予防に使う指標で、気温・湿度に加えて日差し(輻射熱)も反映します。日本語で「暑さ指数」というと普通こちらを指し、このページのヒートインデックスとは別の指標です。日本での熱中症予防の判断には環境省のWBGTと熱中症警戒アラートを参照してください。 |
| 体感温度 | たいかんおんど | 温度計の気温ではなく「人が実際に感じる暑さ・寒さ」を表した温度。湿度が高いと汗が蒸発しにくく体から熱が逃げないため、同じ気温でも暑く感じます。ヒートインデックスはこの効果を数式にしたものです。 |
| 相対湿度 | そうたいしつど | その気温で空気が限界まで含める水蒸気の量に対して、実際に含んでいる水蒸気の量が何%かを表した値。天気予報の「湿度」はこの相対湿度です。 |
| 露点温度 | ろてんおんど | 空気をだんだん冷やしていったとき、水蒸気が水滴に変わり始める(結露が始まる)温度。空気中の水蒸気の量が多いほど高くなるため、蒸し暑さの目安としても使われます(露点温度が高い日は蒸し暑い日です)。 |
| 飽和水蒸気圧 | ほうわすいじょうきあつ | その温度で空気が限界まで水蒸気を含んだときの水蒸気の圧力。温度が高いほど大きくなります。気象学では相対湿度を「実際の水蒸気圧 ÷ 飽和水蒸気圧 × 100(%)」で定義し、Magnusの近似式はこの飽和水蒸気圧を温度から手軽に求めるための式です。 |
| 回帰式 | かいきしき | たくさんの観測データに最もよく合うように係数を決めた式。Rothfusz回帰式は、体感温度の理論モデルの計算結果を気温と湿度の式で近似したものです。 |
| 華氏 (°F) |
かし(かしおんど) | 米国で使われる温度の単位。水が凍る温度が32°F、沸騰する温度が212°Fです。摂氏との換算は °F = °C × 9/5 + 32 です。 |
| ケルビン (K) |
けるびん | 科学で使われる絶対温度の単位。摂氏に273.15を足した値です(0°C = 273.15 K)。 |
前提として理解しておくといいこと
このページの計算を「意味がわかって」使えるようになるために、前提として理解しておくといいことをまとめました。
| 文字式と代入(中学1年) |
|
| 割合・百分率(小学5年) |
|
| 温度の単位(中学理科〜) |
|
| 平方根(中学3年) |
|
| 指数関数(高校 数学II) |
|
Excelで計算する方法
| 気温(°C) | 25 |
| 気温(°F) | =B1*9/5+32 |
| 相対湿度(%) | 40 |
| ヒートインデックス(°F) | =0.5*(B2+61+(B2-68)*1.2+B3*0.094) |
| ヒートインデックス(°C) | =(B4-32)*5/9 |
| 気温(°C) | 30 |
| 気温(°F) | =B1*9/5+32 |
| 相対湿度(%) | 70 |
| ヒートインデックス(°F) | =-42.379+2.04901523*B2+10.14333127*B3-0.22475541*B2*B3-0.00683783*B2^2-0.05481717*B3^2+0.00122874*B2^2*B3+0.00085282*B2*B3^2-0.00000199*B2^2*B3^2 |
| ヒートインデックス(°C) | =(B4-32)*5/9 |
| 気温(°C) | 30 |
| 露点温度(°C) | 22 |
| 相対湿度(%) | =100*EXP(17.625*B2/(243.04+B2))/EXP(17.625*B1/(243.04+B1)) |
1つ目の表(簡易式)は、気温と簡易式の値の平均が80°F未満のとき(涼しめの条件)に使う式です。例の値(25°C・40%)ではB4に約76.28(°F)、B5に約24.6(°C)と表示されます。
2つ目の表(回帰式)は80°F以上の暑い条件用で、例の値(30°C・70%)ではB4に約95.07(°F)、B5に約35.0(°C)と表示されます。※低湿度(13%未満)・高湿度(85%超)の端の条件の補正は省略しています。厳密な値はこのページの計算機かPythonのコードをお使いください。
3つ目の表は露点温度から相対湿度への換算で、例の値(気温30°C・露点22°C)ではB3に約62.28(%)と表示されます。
Googleスプレッドシートで計算する方法
| 気温(°C) | 25 |
| 気温(°F) | =B1*9/5+32 |
| 相対湿度(%) | 40 |
| ヒートインデックス(°F) | =0.5*(B2+61+(B2-68)*1.2+B3*0.094) |
| ヒートインデックス(°C) | =(B4-32)*5/9 |
| 気温(°C) | 30 |
| 気温(°F) | =B1*9/5+32 |
| 相対湿度(%) | 70 |
| ヒートインデックス(°F) | =-42.379+2.04901523*B2+10.14333127*B3-0.22475541*B2*B3-0.00683783*B2^2-0.05481717*B3^2+0.00122874*B2^2*B3+0.00085282*B2*B3^2-0.00000199*B2^2*B3^2 |
| ヒートインデックス(°C) | =(B4-32)*5/9 |
| 気温(°C) | 30 |
| 露点温度(°C) | 22 |
| 相対湿度(%) | =100*EXP(17.625*B2/(243.04+B2))/EXP(17.625*B1/(243.04+B1)) |
Pythonで計算する方法
import math
air_temperature_c = 30 # 気温(°C)
relative_humidity = 70 # 相対湿度(%)
# 露点温度から計算する場合は、下2行のコメント(#)を外す(Magnus近似で相対湿度に換算)
# dew_point_c = 22 # 露点温度(°C)
# relative_humidity = 100 * math.exp(17.625 * dew_point_c / (243.04 + dew_point_c)) / math.exp(17.625 * air_temperature_c / (243.04 + air_temperature_c))
t_f = air_temperature_c * 9 / 5 + 32 # 華氏(°F)に換算
rh = relative_humidity
heat_index_f = 0.5 * (t_f + 61 + (t_f - 68) * 1.2 + rh * 0.094) # 簡易式
if (t_f + heat_index_f) / 2 >= 80: # 平均が80°F以上ならRothfusz回帰式で計算し直す
heat_index_f = (-42.379 + 2.04901523 * t_f + 10.14333127 * rh
- 0.22475541 * t_f * rh - 0.00683783 * t_f ** 2
- 0.05481717 * rh ** 2 + 0.00122874 * t_f ** 2 * rh
+ 0.00085282 * t_f * rh ** 2 - 0.00000199 * t_f ** 2 * rh ** 2)
if rh < 13 and 80 <= t_f <= 112: # 低湿度補正
heat_index_f -= (13 - rh) / 4 * math.sqrt((17 - abs(t_f - 95)) / 17)
elif rh > 85 and 80 <= t_f <= 87: # 高湿度補正
heat_index_f += (rh - 85) / 10 * (87 - t_f) / 5
heat_index_c = (heat_index_f - 32) * 5 / 9
heat_index_k = heat_index_c + 273.15
print(f"ヒートインデックス: {heat_index_c:.1f} °C({heat_index_f:.1f} °F / {heat_index_k:.1f} K)")
数式記述言語(LaTeX等)での書き方(コピペ可)
HI = 0.5 × (T + 61 + (T − 68) × 1.2 + RH × 0.094)
HI = 0.5 \left( T + 61 + (T - 68) \times 1.2 + RH \times 0.094 \right)
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>HI</mi>
<mo>=</mo>
<mn>0.5</mn>
<mo>×</mo>
<mo>(</mo>
<mi>T</mi><mo>+</mo><mn>61</mn>
<mo>+</mo>
<mo>(</mo><mi>T</mi><mo>−</mo><mn>68</mn><mo>)</mo>
<mo>×</mo><mn>1.2</mn>
<mo>+</mo>
<mi>RH</mi><mo>×</mo><mn>0.094</mn>
<mo>)</mo>
</mrow>
</math>
HI = 0.5 (T + 61 + (T - 68) * 1.2 + RH * 0.094)
hi = 0.5*(t + 61 + (t - 68)*1.2 + rh*0.094)
HI := 0.5*(T + 61 + (T - 68)*1.2 + RH*0.094);
HI = 0.5*(T + 61 + (T - 68)*1.2 + RH*0.094);
HI = 0.5(T + 61 + (T - 68) × 1.2 + RH × 0.094)
HI = −42.379 + 2.04901523T + 10.14333127RH − 0.22475541T·RH − 0.00683783T² − 0.05481717RH² + 0.00122874T²·RH + 0.00085282T·RH² − 0.00000199T²·RH²
HI = -42.379 + 2.04901523\,T + 10.14333127\,RH - 0.22475541\,T \cdot RH - 0.00683783\,T^2 - 0.05481717\,RH^2 + 0.00122874\,T^2 RH + 0.00085282\,T\,RH^2 - 0.00000199\,T^2 RH^2
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>HI</mi>
<mo>=</mo>
<mo>−</mo><mn>42.379</mn>
<mo>+</mo><mn>2.04901523</mn><mi>T</mi>
<mo>+</mo><mn>10.14333127</mn><mi>RH</mi>
<mo>−</mo><mn>0.22475541</mn><mi>T</mi><mo>⋅</mo><mi>RH</mi>
<mo>−</mo><mn>0.00683783</mn><msup><mi>T</mi><mn>2</mn></msup>
<mo>−</mo><mn>0.05481717</mn><msup><mi>RH</mi><mn>2</mn></msup>
<mo>+</mo><mn>0.00122874</mn><msup><mi>T</mi><mn>2</mn></msup><mi>RH</mi>
<mo>+</mo><mn>0.00085282</mn><mi>T</mi><msup><mi>RH</mi><mn>2</mn></msup>
<mo>−</mo><mn>0.00000199</mn><msup><mi>T</mi><mn>2</mn></msup><msup><mi>RH</mi><mn>2</mn></msup>
</mrow>
</math>
HI = -42.379 + 2.04901523 T + 10.14333127 RH - 0.22475541 T RH - 0.00683783 T^2 - 0.05481717 RH^2 + 0.00122874 T^2 RH + 0.00085282 T RH^2 - 0.00000199 T^2 RH^2
hi = -42.379 + 2.04901523*t + 10.14333127*rh - 0.22475541*t*rh - 0.00683783*t^2 - 0.05481717*rh^2 + 0.00122874*t^2*rh + 0.00085282*t*rh^2 - 0.00000199*t^2*rh^2
HI := -42.379 + 2.04901523*T + 10.14333127*RH - 0.22475541*T*RH - 0.00683783*T^2 - 0.05481717*RH^2 + 0.00122874*T^2*RH + 0.00085282*T*RH^2 - 0.00000199*T^2*RH^2;
HI = -42.379 + 2.04901523*T + 10.14333127*RH - 0.22475541*T*RH - 0.00683783*T^2 - 0.05481717*RH^2 + 0.00122874*T^2*RH + 0.00085282*T*RH^2 - 0.00000199*T^2*RH^2;
HI = -42.379 + 2.04901523T + 10.14333127RH - 0.22475541T RH - 0.00683783T^2 - 0.05481717RH^2 + 0.00122874T^2 RH + 0.00085282T RH^2 - 0.00000199T^2 RH^2
RH = 100 × exp(17.625Td / (243.04 + Td)) ÷ exp(17.625T / (243.04 + T))
RH = 100 \times \dfrac{\exp\left(\dfrac{17.625\,T_d}{243.04 + T_d}\right)}{\exp\left(\dfrac{17.625\,T}{243.04 + T}\right)}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>RH</mi>
<mo>=</mo>
<mn>100</mn>
<mo>×</mo>
<mfrac>
<mrow>
<mi>exp</mi>
<mo>(</mo>
<mfrac>
<mrow><mn>17.625</mn><msub><mi>T</mi><mi>d</mi></msub></mrow>
<mrow><mn>243.04</mn><mo>+</mo><msub><mi>T</mi><mi>d</mi></msub></mrow>
</mfrac>
<mo>)</mo>
</mrow>
<mrow>
<mi>exp</mi>
<mo>(</mo>
<mfrac>
<mrow><mn>17.625</mn><mi>T</mi></mrow>
<mrow><mn>243.04</mn><mo>+</mo><mi>T</mi></mrow>
</mfrac>
<mo>)</mo>
</mrow>
</mfrac>
</mrow>
</math>
RH = 100 exp((17.625 T_d)/(243.04 + T_d)) / exp((17.625 T)/(243.04 + T))
rh = 100*Exp[17.625*td/(243.04 + td)]/Exp[17.625*t/(243.04 + t)]
RH := 100*exp(17.625*Td/(243.04 + Td))/exp(17.625*T/(243.04 + T));
RH = 100*exp(17.625*Td/(243.04 + Td))/exp(17.625*T/(243.04 + T));
RH = 100 exp(17.625T_d/(243.04 + T_d))/exp(17.625T/(243.04 + T))
ChatGPT に聞いて計算してもらう方法
あなたは気象計算のアシスタントです。次の計算を、必ずPythonコードを実際に実行して行い、実行結果の数値だけを根拠に回答してください(暗算や推測で答えないでください)。 気温30°C・相対湿度70%のときのヒートインデックス(米国NWS方式のHeat Index)を求めてください。 計算手順: 1. 気温を華氏に換算する(°F = °C × 9/5 + 32) 2. 簡易式 HI = 0.5 × (T + 61 + (T − 68) × 1.2 + RH × 0.094) を計算する 3. 気温と簡易式の値の平均が80°F以上なら、Rothfusz回帰式 HI = -42.379 + 2.04901523T + 10.14333127RH - 0.22475541T·RH - 0.00683783T² - 0.05481717RH² + 0.00122874T²RH + 0.00085282T·RH² - 0.00000199T²RH² で計算し直す(RH<13%かつ80〜112°Fなら低湿度補正、RH>85%かつ80〜87°Fなら高湿度補正も適用) 4. 結果を°Fと°Cの両方で示す 計算に使った式と、実行結果の数値を示してください。
計算ドリル(演習問題)
このページの式を、自分の手で計算できるようになるための演習問題です。
ヒートインデックスの式は華氏(°F)で作られているので、まず温度の単位換算から練習します。
答えと解説は解答ページにあります。
使い方
-
1数値を入力計算したい数値を入力欄に入力します
-
2計算「計算する」ボタンを押します
-
3結果を確認計算結果がその場に表示されます。計算の考え方や式の解説も同じページで確認できます
DataChefの特徴
専門知識不要、直感的で簡単な操作
個人情報を登録することなく使用できます
「ダウンロード」押下でファイルを自動削除
クレジット表記不要
商用利用許諾の連絡も不要です
