比湿と水蒸気混合比の変換計算ツール
比湿と水蒸気混合比は同じ水分量を表しますが、基準とする空気の質量が異なります。比湿は湿潤空気全体の質量を用い、混合比は乾燥空気だけの質量を用います。この計算ツールでは、どちらの値からでもkg/kg単位で相互換算し、両方の値と適用した式を表示します。大気観測、気象モデル、環境データ、ならびに湿潤空気基準と乾燥空気基準の区別が重要になる学習や検算にご利用いただけます。
無料で実行
二つの湿度量が示す内容をご確認ください
一般にqで表す比湿は、水蒸気の質量を湿潤空気の総質量で割った値です。この総質量には乾燥空気と水蒸気の両方が含まれます。一方、通常rで表す水蒸気混合比は、水蒸気の質量を乾燥空気だけの質量で割ります。混合比の分母は小さいため、水分が存在する場合、対応する比湿より混合比のほうがわずかに大きくなります。どちらも無次元の質量比ですが、kg/kgのほか、空気1キログラム当たりの水蒸気量としてg/kgで示されることもあります。本ツールは計算をkg/kgに統一し、単位の倍率を暗黙に変更せず、代数関係を明確にしています。入力値の種類を選び、ゼロ以上の比を入力すると対応値をご確認いただけます。通常の大気条件では差は小さいものの、両者を同じ意味として扱うと、高精度計算、モデル初期化、定義の異なるデータ同士の比較で系統的な誤差が生じる場合があります。
順方向と逆方向の式を適用します
比湿から混合比へ換算する場合は、r = q / (1 - q)を使用します。この減算により総質量基準から水蒸気分を除き、rに必要な乾燥空気基準へ変換します。この方向には重要な数学的制約があり、qは1 kg/kg未満でなければなりません。q = 1では分母がゼロになり、1を超える値は物理的な質量分率を表せないため、計算結果も適切ではありません。そのため、1以上の比湿には入力エラーを返します。逆方向にはq = r / (1 + r)を使います。有限かつゼロ以上の混合比から得られる比湿は、必ずゼロ以上1未満です。結果は有効数字十五桁の安定した表現に整え、必要な精度を保ちながら二進浮動小数点に由来する見づらい誤差を抑えます。また、選択された式も応答に含まれるため、自動処理の監査、説明、記録にも役立ちます。
大気データでは定義と単位を統一してください
換算前に、単に湿度と名付けられた列だけで判断せず、データ元の定義をご確認ください。気象資料、ラジオゾンデ、再解析データ、シミュレーション出力では、比湿をq、混合比をrまたはwで表し、いずれもg/kgで収録する場合があります。元データがg/kgなら、入力前に1,000で割ってください。出力されたkg/kgをg/kgへ戻す場合は1,000を掛けます。これらの質量比は、温度にも依存する蒸気圧の比較である相対湿度や、単位体積当たりの水蒸気質量である絶対湿度とは区別が必要です。結果は、決定論的な前処理、品質管理、科学計算ノート、データ取り込み時の変換に利用できます。自動処理の1回当たりの料金は$0.002です。後続計算に必要な精度を維持し、元の変数が湿潤空気と乾燥空気のどちらを分母にしていたか記録しておくと、換算を再現しやすくなります。
活用例
気象観測値を統一します
公表された比湿を、大気解析工程で必要な乾燥空気基準の混合比へ変換します。
モデル入力を準備します
湿潤空気の質量分率を使うモデルへ投入する前に、混合比のデータを比湿へ変換します。
科学計算を検算します
適用された式と二つの出力値を使って、順方向および逆方向の換算をご確認いただけます。
よくある質問
比湿と混合比はどのように異なりますか?
比湿は水蒸気質量を湿潤空気の総質量で割り、混合比は水蒸気質量を乾燥空気の質量で割ります。
比湿を1 kg/kg未満にする必要があるのはなぜですか?
比湿は総質量に対する分率です。1では順方向の式がゼロ除算となり、1を超える値は有効な質量分率ではありません。
グラム毎キログラムの値を入力できますか?
入力単位はkg/kgです。g/kgを1,000で割って入力し、結果をg/kgへ戻す場合は1,000を掛けてください。
相対湿度と同じものですか?
異なります。相対湿度は蒸気圧と飽和蒸気圧を比較し、温度にも依存しますが、ここで扱うのは質量比です。
API計算の料金はいくらですか?
APIによる1回の計算料金は$0.002です。処理は決定論的であり、外部サービスへ接続しません。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/earth/specific-humidity-to-mixing-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":0.012,"convert_from":"specific_humidity"}'const res = await fetch("https://api.kit.forhosting.com/earth/specific-humidity-to-mixing-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 0.012,
"convert_from": "specific_humidity"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/earth/specific-humidity-to-mixing-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 0.012,
"convert_from": "specific_humidity"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/earth/specific-humidity-to-mixing-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":0.012,"convert_from":"specific_humidity"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":0.012,"convert_from":"specific_humidity"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/earth/specific-humidity-to-mixing-ratio", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"value": 0.012,
"convert_from": "specific_humidity"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "earth.specific_humidity_to_mixing_ratio",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |