地球環境観測: 実習3

ゾンデによる水蒸気量の時系列のファイル作成とグラフ化

水蒸気量と水蒸気輸送ベクトルの計算を、 対象期間(5月16日から6月15日まで)の6時間ごとの全時刻について 続けて計算し、その結果をファイルに書き出すプログラムと、 その水蒸気量の時系列をGMTでグラフにするシェルスクリプトを /pub/sfc/earthobs/example/sonde/sonde3/に用意した。

dosumquvx.csh

水蒸気量と水蒸気輸送ベクトルの鉛直積分を続けて行なう。 使い方は、csh dosumquvx.cshでよい。 その中で

awk -v stn=nongkhai -v zsfc=173 -f dosumquvx.awk /dev/null
などが実行されている。

173は地表面の標高。 [観測地点の表]の「標高(data)」の列参照。
/dev/nullは内容が空のファイルである。 awkの使い方としては邪道だが、このawkプログラムは全部の仕事をBEGIN部で やっているので入力ファイル名の指定は実質的には不要である。 しかしawkインタプリタの仕様上ファイル名を書く必要があるので、これを指定する。

dosumquvx.awkの中では、awkのsystem機能を使って、 sumquvx.awkが呼び出される。 これはsonde2sumquv.awkと同じ計算だが、ついでに時間変数 (ここでは、年の通しの日付で、端数を認め、世界時で1日の初めに整数値をとる ようにした)も書き出す。 このため、dosumquvx.awkのほうでデータがあるはずの日時を順に計算し、 それを変数month, day, hourの値として sumquvx.awkに引き渡している。

実行すると、それぞれの地点について、 sonde_sumquvx_nongkhaiのような名前のファイルができる。 実行中、入力ファイルがない日時についてはエラーメッセージが出るが、 プログラムは止まらずに進行する。 ただし、入力ファイルがない日時の出力は 最初の4列が0になる。 この出力ファイルを入力とする処理では、 左端の列が0である場合はデータ値欠損とみなす必要がある。

sonde_sumquvx...のファイルは 1行が1回の観測に対応し、 各行はスペースくぎりで、左の列から順に次の意味。 ただし、観測データがない場合も行はあり、最初の4列に0がはいっている。

  1. 鉛直積算した空気の質量 (kg / m2)
  2. 鉛直積算した水蒸気の質量 (kg / m2)
  3. 鉛直積算した水蒸気輸送ベクトルの東西成分、 東に向かうのが正 (kg /(m s))
  4. 鉛直積算した水蒸気輸送ベクトルの南北成分、 北に向かうのが正 (kg /(m s))
  5. 時(世界時)
  6. 時間目盛り (1月1日からの通しの日付に、時を日の小数として含めた)

wtimes.csh

上の作業の結果得られる4地点それぞれの時系列を 4段にならべてグラフで表示するものである。 横軸は、処理の便宜上、年の通しの日付になっている。 何月何日という日付を入れることは、いちいち文字列と紙の上の位置座標を与えて GMTのpstextを呼び出す手続きを追加すれば可能である。

なお、途中までしかとれなかったゾンデ観測をはずすため、 鉛直積算した空気の(面積あたり)質量が7000 kg/m2ある 場合に限って作図に入れるようにしたが、 それでも観測時のトラブルと思われる不自然な値が残っている。


(2003-06-05, 2004-10-23, 2005-01-20) 2005-10-22, 2006-11-08, 2006-11-18
増田 耕一 (環境情報学部 非常勤講師)
[作業1] [作業2] [ゾンデデータの実習の目次へ] [地球環境観測2006教材目次へ] [日程へ]