湿度諸量の計算法(1) - 相対湿度 -

ちょっと思うところがあるので湿度諸量の計算方法を何回かに分けて説明していこうと思う。
今回は相対湿度。おそらく普通の人は通風乾湿計なんか使わずに相対湿度センサーで直接相対湿度を測定すると思うので、飽和水蒸気圧と水蒸気圧の話はオマケ。オマケのが時間かかったが。

いんとろだくしょん

湿度とは何か、ということを感覚的に理解するのはそれほど難しくない。「ジメジメしている」「カラッとしている」という表現は、特別の説明がなくとも会話の中で用いることができる*1
一方で、具体的に湿度が何を指しているかということになると少し話が難しくなる。まず、空気というのは色々な気体が混ざった混合物である。その中で、水蒸気は重量で1〜3%程度を占める。この水蒸気の量の多寡を表すのが湿度である。問題は、その表現方法がいくつもあるという点である。
今回はその中で一番ありふれている(しかし一番分かりやすいわけではない)表現方法である相対湿度の意味と、乾湿球温度計を用いた場合の計算方法を中心に説明する。
なお、式の記述にあたってはRの形式を利用しているところがあるが、function(...)に続く{}の中身が普通の数式だと思ってもらえば多分読めると思う。
また、解説では氷点以上を対象とした。氷点下では飽和水蒸気圧等の計算が異なってくるので注意すること。

相対湿度(略称:RH、記号:、単位:無次元または%)

「湿度」というとパーセントで表示されている印象があるだろう。天気予報や市販のありふれた湿度計で使われているこの値を相対湿度と呼ぶ。

定義

相対湿度は以下のように定義される*2

湿り空気水蒸気圧とそれと同じ温度の飽和水蒸気圧との割合()。
(日本農業気象学会編『新訂 農業気象の測器と測定法』p.60)

ここでいくつか耳慣れない単語があると思う。

  • 湿り空気:水分を含む空気。要するに通常考える空気はほとんどが湿り空気である。全く水分を含まない空気を乾き空気と呼ぶ。
  • 水蒸気圧:「混合気体の圧力は各成分の分圧の和に等しい」という法則(ドルトンの法則)により、水蒸気は大気圧の一部分を担っている。水蒸気が担っている圧力が水蒸気圧である。
  • 飽和水蒸気圧:空気は無限に水蒸気を含めるわけではなく、限度があり、それ以上の水蒸気は凝結して水滴になってしまう。その時、空気は水蒸気で飽和していると言い、水蒸気で飽和している空気の水蒸気圧を飽和水蒸気圧と呼ぶ*3。飽和水蒸気圧は温度の関数として求めることができる(後述)。

要するに、「空気が限界含める水蒸気の量に対して、今の空気は何%の水蒸気を含んでいるのか?」が相対湿度である*4

なぜ相対湿度を使うのか?

定義から分かるように、相対湿度というのは重さや長さのようにはっきりした値ではない。そもそも空気中の湿度の量を直接表した値ではない(温度が分かれば計算することはできる)。それに頻出する割に難しい定義である。
ではなぜ相対湿度が重要で、天気予報などに使われるのかというと、第一に測定しやすいからである。
比較的原始的な湿度計に毛髪を用いたものがある。毛髪は水分を含むほど伸びる性質があり、相対湿度100%の時は0%のときよりも1.5%程度伸びる。相対湿度20〜100%の間では、毛髪の伸長率は対数的に増加する。これを利用したのが毛髪湿度計である(毛利茂雄『新・気象観測の手引』)。市販の安価な湿度計は毛髪の代わりにナイロンを利用したものや、吸湿に伴う伸張性が異なる2種類の金属を張り合わせたバイメタル式のものが多い(デジタル表示のものは別)。
そしてこれらの湿度計が温度ではなく相対湿度に反応することから分かるように、吸着が関わる現象では温度よりも相対湿度が支配的に働くものがいくつかある。いくつか例をあげよう。

  • 塩類飽和水溶液の平衡湿度:塩の飽和水溶液はある一定の相対湿度で空気と平衡状態となるのだが、これには温度はごくわずかしか影響しない*5。ペットボトルに水と溶け切らない量の塩化ナトリウムを入れたとしよう。その時、ペットボトル内の空気中の相対湿度は温度にかかわらず約76%である。
  • 水分活性:塩類飽和水溶液と同様に、食品もある相対湿度で空気と平衡状態になる。食品を密封した容器内に入れてしばらくすると容器内の相対湿度が一定の値で安定するが、その時の相対湿度を水分活性と呼ぶ(単位は%ではなく小数で直接表示するのが普通)。そして、水分活性の大小が食品中で微生物が繁殖できるか否かを概ね決める。
  • 植物病害の発生:植物に発生する病気の大半は糸状菌が原因だが、糸状菌が植物の硬い細胞壁を破って侵入出来るか否かを決める主要な因子も相対湿度である。
  • 結露:相対湿度100%以上になると、空気中の水分は凝結を始める。

逆に、相対湿度があまり関係ない物理現象もある。例えば水の蒸発という現象は、空気中への水分子の拡散であるため、水蒸気の濃度勾配が主要なパラメータである。よって飽和水蒸気量の多い高温時の方が乾燥はしやすい。同じ相対湿度でも冬より夏のほうが洗濯物が乾きやすい主な原因はここにある。

相対湿度の求め方

  • :相対湿度
  • :水蒸気圧
  • :同じ温度に対する飽和水蒸気圧

水蒸気圧や飽和水蒸気圧の測定法や求め方は後述する。
なお、近年は安価で小型な精度の優れた相対湿度センサーも多いので、そうしたものを利用して直接測定しても良いし、その方が現実的である。

飽和水蒸気圧(記号:、単位:hPa)

飽和水蒸気圧については上で説明したので、求め方だけ説明する。
飽和水蒸気圧は温度の関数として求められると説明したが、その求める近似式にはかなりのバリエーションがある。ここでは『農業気象の測器と測定法』に記載されているものを中心に紹介する。

Goff-Gratchの式
Log(e_s) = 10.79574(1 - T1/T) - 5.02800Log(T/T1)
           + 1.50475 × 10^{-4} × {1-10^(-8.2969(T/T1 - 1))}
           + 0.42873 × 10^{-3} × {10^(4.76955(1 - T1/T)) - 1}
           + 0.78614

ここでLogは常用対数、e_sが飽和水蒸気圧(hPa)、Tは絶対温度で表した気温(℃+273.15)、T1は水の三重点温度(273.16K)である。有効範囲は0〜100℃の水および-50〜0℃の過冷却水である。
Rで書くと以下のようになる。

GofGra <- function(t){ ## 入力:℃ 出力:hPa
  10^
  (10.79574 * (1 - 273.16/(t + 273.15)) -
   5.02800 * log((t + 273.15)/273.16, 10) +
   1.50475 * 10^{-4} * {1-10^(-8.2969 * ((t + 273.15)/273.16 - 1))} +
   0.42873 * 10^{-3} * {10^(4.76955*(1 - 273.16/(t + 273.15))) - 1} +
   0.78614)
}

Goff-Gratchの式は国際的に採用されている式だが複雑なので実際は近似式が使われることが多い。

岡田の式

Goff-Gratchの式を岡田(1985)が最小自乗近似して求めた式で、-30〜50℃の範囲でGoff-Gratchの式との有効数字の一致が4〜5桁である。
Rで書くと以下のようになる。なお、水面上の水蒸気圧である。

okada <- function(t){ ## 入力:℃ 出力:hPa
  exp(1.809378 +
      0.07266115 * t +
      (-3.003879 * 10^-4) * t^2 +
      (1.181765 * 10^-6) * t^3 +
      (-3.863083 * 10^-9) * t^4)
}
Murrayの式、Tetensの式

上述の式をExcelのような複雑な式を入れるのに適さないソフトで利用しようとするとかなり骨が折れる。実用上は次のMurrayの式か、Tetensの式でも差し支えない。

murray <- function(t){ 6.1078 * exp(17.2693882 * t /(t + 237.3))}
tetens <- function(t){ 6.11 * 10^(7.5*t/(t + 237.3)) }

これらの式を使っても、通常の温度範囲であれば大きな誤差が生ずることはない(参考:404 Not Found / レンタルサーバー@FIW)。
もしパソコンを使って計算するのならせっかくだからGoff-Gratchを使ったらどうか、という程度の話である。

水蒸気圧(記号:、単位:hPa)

水蒸気圧は測温部を濡らした温度計(湿球)と、濡らしていない温度計(乾球)の温度から求められる。湿球温度、乾球温度という2つのパラメータは乾湿球温度計を用いて直接測定する。このとき、乾湿温球温度計を通風しているかいないかによって計算式が異なる。

通風している場合(Sprungの式)

風速3m/s以上の風速で通風している場合は以下の式で水蒸気圧を求められる。

sprung <- function(td, tw){
  ## 入力:td(乾球温度、℃) tw(湿球温度、℃) 出力:水蒸気圧(hPa)
  GofGra(tw) - 0.000662 * 1013.25 * (td - tw)
}

ここでtdは乾球温度、twは湿球温度、GofGra(tw)は湿球温度における飽和水蒸気圧(関数定義は上述)である。
また、1013.25とした部分は大気圧(hPa)である。標準大気圧としているが、測定できるならした方が良いと思う*6
なお、実用上大きな問題は無いが、厳密には温度計の形状や風速によって係数が若干異なってくる。

通風しているが風速が十分でない場合

通風しているが風速が1〜1.5m/s程度、0.5m/s以下という場合は計量法で定められた以下の式を用いる。

vp1 <- function(td, tw){ ## 風速1〜1.5m/s
  GofGra(tw) - 0.0008 * 1013.25 * (td - tw) * (1 + (tw / 610))
}
vp2 <- function(td, tw){ ## 風速0.5m/s以下
  GofGra(tw) - 0.0012 * 1013.25 * (td - tw) * (1 + (tw / 610))
}

ただし風速が確保できていない場合精度が落ちるので、この式を使わなければならない状況であればまず風速を稼ぐ方法を考えたほうが良い。

通風していない場合

通風していない場合というのは、要するに学校とかによくある市販の乾湿球温度計の場合である。
Angotの式というものがあるが、そもそも精度が確保できないので以下の簡便な式で十分である。

vp3 <- function(td, tw){ ## 通風なし
  GofGra(tw) - 0.0008 * 1013.25 * (td - tw)
}

なお、通風しないタイプの乾湿球温度計には大抵の場合乾球と湿球の温度から相対湿度を求める一覧表が印刷されているので、この式を使う機会はないはずである。

参考文献まとめ

*1:勿論、我々人間は湿度を直接的に感じる感覚器を持ってはいない。一方、昆虫は「湿度を感じる」感覚器を実際に持っている。例えばゴキブリは湿度の勾配を検知して水源にたどり着くことが出来る。口を開けて眠るのは危険である。

*2:「空気中の水蒸気のモル分率と、同じ温度・圧力で飽和している空気中の水蒸気のモル分率の非」を定義に含める場合もある(上田政文『湿度と蒸発』p.27)。これは表現を変えただけと考えて差し支えない。

*3:厳密には水と水蒸気が平衡状態にあるときの水蒸気圧を飽和水蒸気圧と呼ぶ

*4:噛み砕いた表現のようだが、こちらが第一である。水蒸気圧や水蒸気モル分率を用いた定義などはこれを言い換えたものである。

*5:多少影響の大きい塩類もある。

*6:天気図などを見れば分かるように、標準大気圧との差は数十hPaになる場合がある。また、標高が100m上がると約10hPa気圧が低下する。標高が高いとか明らかに低気圧が上陸しているという場合は補正したほうがいいのかもしれない。なお、気圧も測定できるデータロガーでも2万円程度である(e.g.温湿度・気圧データロガー DT-174B (USB型))。