地球環境観測: 地球環境観測データ観察実習 (7)
同化データの観察

収束・発散の計算と表示

ベクトル場に対して、発散(divergence)という量を計算することができる。 発散の符号を逆にしたものを収束(convergence)という。 3次元ベクトルについて3次元の発散を考えることも多いが、 ここでは水平2次元のベクトルについて2次元の発散を考える。 地球上に分布する量を扱う際には球面で考えるべきである(さらに楕円体の扁平率も考慮することがある)が、 話を簡単にするつごうで、直交直線座標で説明する。 (x,y)平面にV = (u,v)というベクトルがあるとする (uがx方向、vがy方向の成分)。 このベクトルの発散は、
div V = ∂u/∂x + ∂v/∂y
である。 微分でなく、x, y方向それぞれの幅がΔx、Δyである箱で考えれば、 この箱での平均の発散は Δu/Δx + Δv/Δyである。

ここで、Δu、Δvの符号のとりかたに注意。 たとえば、Δu/Δx = (u2-u1) / (x2-x1) のように、分子・分母の差をとる向きを対応させればよい。 とくに、格子番号が座標値が減る向きについている場合 (y座標が北緯を正にとった緯度であり、格子番号が北からついている場合など) にはよく注意すること。

GrADSには、水平2次元の発散を差分法で計算する関数hdivgがある。 詳しい計算方法はわからないが(ソースプログラムは公開されているのでそれを読めばわかるはずだが)、球面は考慮しているようである。

これを使って、GAME再解析の3次元解析値(GrADS用ctlファイルはanal.ctl)の風の発散を表示するには、 [別ページ]の水平2次元場の表示の例のように 日時、鉛直座標値、表示方法などを指定したあと、
display hdivg(u,v)
とすればよい。 ただし、差分法で計算された収束発散の値は、 格子間隔からその2倍程度の空間スケールをもつ計算上のノイズを含むことが わかっている。 GrADSには、2次元の平滑化をする(9つの格子点値の重みつき平均による)関数 smth9もあるので、
display smth9(hdivg(u,v))
としたほうがよいかもしれない。
雲、とくに鉛直にのびる積雲・積乱雲ができやすいところは、 対流圏のうち下層で風が収束し上層で発散しているところである。 再解析でみた風の収束・発散と、衛星データでみた雲あるいは雨の分布とは 対応しているだろうか?

また、GAME再解析の2次元物理量モニター(GrADS用ctlファイルは2dmon.ctl)には、鉛直積算した水蒸気輸送ベクトルの東西成分uwv、 南北成分vwvが含まれている。 これを使って鉛直積算した水蒸気収束量を計算し表示するには、 日時、表示方法などを指定したあと、
display -hdivg(uwv,vwv)
とすればよい(ここでは収束を正としたいので発散にマイナスの符号をつける)。 風の発散の例と同様、平滑化をしたほうがよいかもしれない。


2005-12-22, 2006-12-16
増田 耕一 (環境情報学部 非常勤講師)
[同化データの観察(GrADS)の主ページへ] [実習教材の目次へ] [地球環境観測2006の日程へ]