体感温度計算:風冷指数と暑さ指数を自動判定
この体感温度計算ツールは、気象条件に適した式を自動で選びます。実測気温に加え、風速、相対湿度、またはその両方をご入力ください。寒く風が強い場合は風冷指数を、高温多湿の場合は暑さ指数を計算します。どちらの式も適用範囲外であれば、式を不適切に外挿せず、実測気温をそのまま返します。結果の単位は、入力時に選択した摂氏または華氏と同じです。
無料で実行
お持ちの気象データから一つの結果を算出します
体感温度を求める万能な式はありません。冷たい空気が動くと露出した皮膚から熱が奪われやすくなり、高温多湿の空気では汗による冷却効果が下がります。このツールでは、気温と、利用できる補助観測値である風速、相対湿度、またはその両方をご入力いただけます。値を内部で共通の単位にそろえた後、適用条件を満たす式を選択します。返される体感温度は選択した温度単位のままですので、摂氏の入力には摂氏、華氏の入力には華氏で結果が表示されます。応答には使用した式の名称も含まれます。この情報により、自動処理でも、風冷指数や暑さ指数を計算した場合と、実測気温を維持した場合を区別できます。風速と湿度の少なくとも一方が必要です。気象計が両方を記録している場合は、事前に天候を分類せず完全な観測値で判定できるよう、両方をご指定ください。
計算式を自動選択する仕組み
風冷指数は、風速が毎時3マイルを超え、気温が華氏50度以下の場合にのみ検討されます。これはおよそ時速4.8キロメートル、摂氏10度に相当します。この範囲では、気温と風速を用いる北米の風冷指数式を適用します。寒冷条件に該当しない場合、相対湿度が入力され、気温が華氏80度、約摂氏26.7度以上であれば暑さ指数を検討します。暑熱計算にはRothfusz回帰式と、低湿度および高湿度向けの標準補正を使用します。下限付近では、より単純な予備推定によって完全な回帰式を適用するか判断します。風冷指数が優先されるのは、寒く風が強い条件を実際に満たす場合だけです。そのため、風速と湿度の両方を入力しても、性質の異なる二つの式を不自然に平均することはありません。どちらの適用範囲にも入らない場合、式の項目はair_temperatureとなり、体感温度は実測気温と同じになります。
結果を安全に読み取り活用する方法
出力には、丸めた体感温度、元の気温、温度単位、選択された式が含まれます。画面に風冷指数や暑さ指数などの名称を表示する際は式の項目を使い、監査可能な記録が必要な場合は実測値も保存してください。この結果は標準化された屋外曝露条件を示すもので、個人向けの医療予測ではありません。日なたや日陰、衣服、運動量、年齢、健康状態、風よけ、局所的な微気候によって、同じ観測値でも感じ方は変わります。気象機関の値も、観測方法や丸め方によりわずかに異なることがあります。業務上の警報に利用する場合は、数値だけで安全性を判断せず、地域の基準値や公的な案内と照合してください。この計算は決定的で、ネットワークへの問い合わせを行いません。現在の天気を取得したり、不足する観測値を推測したりしないため、出所と時刻を管理しているセンサーデータ、過去の資料、予報値の処理に適しています。
活用例
観測所データに体感温度を追加
気温、風速、湿度の観測値を、計算方式が明確な一つの体感値へ変換します。
季節をまたぐ予報を一括処理
冬の風冷指数と夏の暑さ指数を、式を事前指定せず一つの連携で処理します。
屋外活動の条件を確認
予報値から標準的な寒さや暑さへの曝露を見積もり、選択された式も確認できます。
よくある質問
APIリクエストの料金はいくらですか?
基本料金は1リクエスト当たり$0.002です。同じ決定的な計算をブラウザでは無料で実行できます。
風速と湿度の両方を入力するとどうなりますか?
まず寒く風が強い条件を確認し、次に高温多湿の条件を確認します。二つの式を平均することはありません。
結果が気温と同じになることがあるのはなぜですか?
どちらの標準式も適用範囲外であるためです。その場合は実測値を維持し、式をair_temperatureと表示します。
風速にはどの単位を使用できますか?
km/h、mph、m/sを選択し、時速キロメートル、時速マイル、メートル毎秒で入力できます。
湿度を省略できますか?
風速があれば省略できます。寒く風が強い観測では湿度なしで風冷指数を計算し、それ以外は実測気温を返します。
風速を省略できますか?
湿度があれば省略できます。十分に高温であれば、風速なしで暑さ指数を計算できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/calc3/temperature-feels-like-wind-or-humidity \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"temperature":35,"wind_speed":25}'const res = await fetch("https://api.kit.forhosting.com/calc3/temperature-feels-like-wind-or-humidity", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"temperature": 35,
"wind_speed": 25
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calc3/temperature-feels-like-wind-or-humidity",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"temperature": 35,
"wind_speed": 25
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calc3/temperature-feels-like-wind-or-humidity", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"temperature":35,"wind_speed":25}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"temperature":35,"wind_speed":25}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calc3/temperature-feels-like-wind-or-humidity", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"temperature": 35,
"wind_speed": 25
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calc3.temperature_feels_like_wind_or_humidity",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |