水蒸気量と飽和水蒸気量から想定湿度を求める
気象庁の観測では従来、湿度(相対湿度)は気象台や特別地域観測所のみで測定されていたが、近年は気温を観測するアメダスで湿度計の設置が進んでいる。
今回はこの湿度情報の使い方を考えてみる。
冬場の室内はとかく乾燥しがちだが、外気をそのまま室内の暖かい環境に持ってきた場合、どの位の湿度になるかは水蒸気量(絶対湿度と呼ばれることもある)から求めることができる。
水蒸気量は当該気温における飽和水蒸気量と湿度から求めることができるが、以下のサイトにその式が掲載されている。
もし20℃の室内に気温5.6℃・湿度84%の空気を持ってきた時、その湿度は
室内の湿度 = \frac{外気の水蒸気量}{20℃の飽和水蒸気量} \times 100
= \frac{5.6℃の飽和水蒸気量 \times \frac{湿度84\%}{100}}{20℃の飽和水蒸気量} \times 100 \approx \frac{7.08 \times \frac{84}{100}}{17.31} \times 100 \approx 34\%
となる。
この想定湿度を Node-RED で計算し、 TC001 に表示させることとする。
JavaScript はべき乗の表記に注意
calculate
var amedas_array = msg.payload;
var point = "44132"; //東京
var room_temp = 20; //室温20℃を想定
var temp = amedas_array[point].temp[0];
var humidity = amedas_array[point].humidity[0];
var swv_room = 217 * ( 6.1078 * 10 ** ( 7.5 * room_temp / ( room_temp + 237.3 ) ) ) / ( room_temp + 273.15 )
var wv_temp = 217 * ( 6.1078 * 10 ** ( 7.5 * temp / ( temp + 237.3 ) ) ) / ( temp + 273.15 ) * humidity / 100
var room_hum = Math.floor(wv_temp / swv_room * 100)
temp = temp.toFixed(1) + 'C';
humidity = humidity + '%';
room_hum = room_hum + '%';
msg.payload = [{ "text": temp, "icon": "tokyo" }, { "text": humidity, "icon": "tokyo" }, { "text": room_hum, "icon": "20deg" }];
return msg;
JavaScript の場合、べき乗表現は ^
ではなく **
になるので注意が必要である。
それ以外はそのまま前述サイトの式を入れてやればよい。
room_temp の値を実態に合わせ変更することで、任意の室温の想定湿度を表示することができる。
Node-RED に気温計のデータを自動入力できるのであれば、その値を代入するとよいだろう。
水の飽和水蒸気量を使っているため、外気温が0℃未満や降雪時の水蒸気量算出は正確性が保証できない。