ウィーンの変位則:黒体のピーク波長計算
このウィーンの変位則計算機は、黒体の絶対温度から、単位波長当たりの分光放射輝度が最大になる波長を求めます。温度をケルビンで入力すると、ピーク波長をメートル、マイクロメートル、ナノメートルで返します。ウィーン定数を温度で割る決定論的な計算なので、結果はすぐに得られます。熱放射の見積もり確認、恒星の比較、光学センサーの選定、温度が高い物体ほど強い放射が短波長側へ移る理由の理解に役立ちます。
無料で実行
ウィーンの変位則で求められるもの
黒体とは、スペクトルが絶対温度だけで決まる理想的な放射体です。ウィーンの変位則は、そのスペクトルを単位波長当たりの分光放射輝度で表したとき、最大となる波長を示します。関係式は単純で、ピーク波長はウィーン定数 2.897771955 × 10^-3 メートル・ケルビンを温度(ケルビン)で割った値です。温度が上がるほどピークは短波長側へ、下がるほど長波長側へ移動します。本計算機はメートル、マイクロメートル、ナノメートルの3単位を返すため、赤外線、可視光、さらに短い波長域でも追加換算なしで適切な尺度を使えます。このピークは、プランク分布の波長表示における最大点です。物体がその波長だけを放射するという意味ではなく、黒体放射は広い連続領域に及びます。また実在材料では、放射率が波長、表面状態、観測角度によって変化するため、理想黒体から外れる場合があります。
温度の入力方法と結果の読み方
絶対温度を、0より大きい有限の数値としてケルビンで入力してください。ウィーンの法則には絶対零度をゼロとする尺度が必要なため、摂氏や華氏の値はそのまま使えません。摂氏は 273.15 を加えてケルビンへ変換し、華氏にも適切な変換を適用してください。ゼロ、負数、文字列、無限大、未入力は、物理的に未定義または数値的に無効となるため拒否されます。検証後、定数を入力温度で割り、元の温度と3種類の波長単位を返します。約 5,800 K の光球は可視域にピークを持ち、室温付近の物体は熱赤外域にピークを持ちます。結果は、単位波長当たりの分光放射輝度における数学的な最大点として解釈してください。グラフや装置仕様と比較するときは、周波数ではなく波長で表示されていることと、単位が一致することをご確認ください。API の料金は1リクエスト $0.002 で、ブラウザーでは同じ純粋な演算をローカルで実行します。
重要な違いと実用上の制約
ピーク周波数という表現には注意が必要です。単位周波数当たりのプランク分布を最大化した位置は、単位波長当たりで最大化した位置とは数値的に異なります。一方のピーク座標を、周波数=光速÷波長という式で変換しても、もう一方のピークにはなりません。本機能は標準的なウィーンの波長変位定数に対応する、波長領域のピークだけを計算します。また、理想黒体という仮定にも限界があります。恒星、炉、惑星、ランプ、加熱部品は有用な範囲で黒体に近似できますが、吸収線、大気の窓、選択性コーティング、波長依存の放射率によって実測スペクトルは変形します。センサーのフィルター、光学系、感度も最大信号の位置を理論ピークからずらす可能性があります。初期の観測帯選定、モデルの妥当性確認、代表温度の比較に利用し、工学的な精度が必要な場合は実際の放射率とシステム応答を加味してください。総放射電力、色度、光子計数のピーク、完全なスペクトルは算出しません。
活用例
恒星の代表的な波長を見積もる
有効表面温度を波長領域のピークへ変換し、恒星の熱スペクトルを手早く比較できます。
熱センサーの初期帯域を選ぶ
大気透過率や検出器応答を考慮する前に、想定温度に対する理想黒体のピークを特定できます。
熱放射計算を検算する
ピークが絶対温度に反比例して移動することと、波長単位の換算が整合することを確認できます。
よくある質問
どの式を使って計算しますか?
ピーク波長 = 2.897771955 × 10^-3 メートル・ケルビン / 温度(ケルビン)を使用します。
摂氏や華氏を入力できますか?
できません。まず絶対温度のケルビンへ変換してください。ウィーンの法則は原点がずれた温度尺度には直接適用できません。
黒体はピーク波長だけを放射しますか?
いいえ。ピークは広い連続スペクトルの最大点であり、単一波長だけが放射されるわけではありません。
周波数表示のピークが異なるのはなぜですか?
単位波長当たりと単位周波数当たりの分光密度は別の分布なので、最大点の座標も異なります。
放射率や検出器応答も反映されますか?
いいえ。理想黒体の波長領域におけるピークです。放射率、透過率、フィルター、感度は別途適用してください。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/optics/wien-peak-wavelength \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"temperature_k":5778}'const res = await fetch("https://api.kit.forhosting.com/optics/wien-peak-wavelength", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"temperature_k": 5778
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/optics/wien-peak-wavelength",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"temperature_k": 5778
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/optics/wien-peak-wavelength", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"temperature_k":5778}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"temperature_k":5778}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/optics/wien-peak-wavelength", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"temperature_k": 5778
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "optics.wien_peak_wavelength",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |