風冷指数による体感温度計算ツール
この計算ツールは、華氏で表した気温とマイル毎時で表した風速を組み合わせ、風による体感温度を求めます。寒く風のある状況を対象とした米国国立気象局(NWS)の標準式を使用します。50°F以下の気温と3 mphを超える風速を入力すると、小数第1位に丸めた再現可能な結果が得られます。屋外活動の準備、予報時間帯の比較、気温だけでは伝わりにくい寒冷曝露の説明に役立ちます。
無料で実行
風冷指数が示す内容
風冷指数による体感温度は、動く空気が皮膚からの熱損失を速めるとき、露出した皮膚がどの程度の寒さを感じると予想されるかを示します。物体が実際の気温より低くなるという意味ではなく、温度計の測定値に代わるものでもありません。気温と風を、曝露の程度を理解しやすい等価温度にまとめた指標です。無風の30°Fと風のある30°Fでは気温は同じですが、後者では露出した皮膚から熱がより速く奪われます。その差を、なじみのある低い温度として表します。衣服の選択、屋外作業や運動の休憩計画、予報の説明、時間帯の比較などにご利用いただけます。ただし、個人の医学的な予測ではなく、曝露の目安としてお使いください。日差し、湿度、衣服、運動量、風よけ、年齢、健康状態によって実際の感じ方は変わります。安全上の判断では、これらの要因と地域の公的な気象警報も併せてご確認ください。
NWSの計算方法
本ツールは、華氏とマイル毎時を用いるNWSの標準式 35.74 + 0.6215T − 35.75V^0.16 + 0.4275TV^0.16 を適用します。Tは華氏の気温、Vはmphの風速です。風速の分数指数は、動く空気と熱損失の非線形な関係を表すため、風速が2倍になっても冷却効果が単純に2倍になるわけではありません。式全体を計算してから、最後に結果を小数第1位へ丸めます。最後まで精度を保つことで、不要な丸め誤差を防ぎます。この機能は純粋な算術処理のみを行い、予報の取得、場所の推定、現在の観測値の照会は行いません。対象となる場所と時刻について、信頼できる温度計、気象観測所、または予報の値をご入力ください。同じ数値を入力すれば、ブラウザーとAPIは毎回同じ決定論的な結果を返します。
有効範囲内でのみご利用ください
NWSの式は、気温が50°F以下で、風速が3 mphを超える場合を対象としています。本ツールは、モデルの範囲外で見かけ上精密な値を示さないよう、両方の境界を検証します。条件は3 mphを超えることなので、ちょうど3 mphは受け付けません。負の風速は物理的に無効であり、未入力、数値以外、有限でない値と同様に入力エラーになります。50°Fより暖かい場合は、この寒冷用の式を延長せず、実測気温または適切な暑さの指数をご利用ください。情報源が突風の使用を明示していない限り、代表的な持続風速を選ぶことをお勧めします。短時間の突風は、期間全体を表さない厳しい値を生む場合があります。また、予報は標準の高さで風を測る一方、風の遮られた歩道、谷、建物の入口では気流が異なります。出力の代表性は、入力した2つの測定値に左右されます。
活用例
屋外作業の計画
寒い予報と予想風速を一つの曝露値にまとめ、休憩や防寒装備の計画にお役立てください。
冬季運動の準備
風により気温表示だけでは不十分なとき、時間帯ごとの体感温度を比較できます。
気象予報の説明
レポート、ダッシュボード、警報、教材に再現可能な体感温度を追加できます。
よくある質問
どの計算式を使用していますか?
華氏とマイル毎時によるNWS標準式 35.74 + 0.6215T − 35.75V^0.16 + 0.4275TV^0.16 を使用します。
この式はどの条件で有効ですか?
気温が50°F以下、風速が3 mphを超える場合にご利用ください。範囲外の入力はエラーになります。
風で物体が気温より冷たくなりますか?
いいえ。風は物体が気温まで冷える速度を上げますが、気温より低くすることはありません。
結果はどのように丸められますか?
式全体を先に計算し、その後で華氏の体感温度を小数第1位に丸めます。
APIでの計算料金はいくらですか?
APIリクエスト1回の料金は$0.002です。同じ決定論的計算をブラウザーでも実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/weather/wind-chill-calculate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"air_temperature_f":30,"wind_speed_mph":10}'const res = await fetch("https://api.kit.forhosting.com/weather/wind-chill-calculate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"air_temperature_f": 30,
"wind_speed_mph": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/weather/wind-chill-calculate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"air_temperature_f": 30,
"wind_speed_mph": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/weather/wind-chill-calculate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"air_temperature_f":30,"wind_speed_mph":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"air_temperature_f":30,"wind_speed_mph":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/weather/wind-chill-calculate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"air_temperature_f": 30,
"wind_speed_mph": 10
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "weather.wind_chill_calculate",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |