水蒸気量と水蒸気輸送ベクトルの計算を、
対象期間(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
が呼び出される。
これはsonde2
の
sumquv.awk
と同じ計算だが、ついでに時間変数
(ここでは、年の通しの日付で、端数を認め、世界時で1日の初めに整数値をとる
ようにした)も書き出す。
このため、dosumquvx.awk
のほうでデータがあるはずの日時を順に計算し、
それを変数month, day, hour
の値として
sumquvx.awk
に引き渡している。
実行すると、それぞれの地点について、
sonde_sumquvx_nongkhai
のような名前のファイルができる。
実行中、入力ファイルがない日時についてはエラーメッセージが出るが、
プログラムは止まらずに進行する。
ただし、入力ファイルがない日時の出力は
最初の4列が0になる。
この出力ファイルを入力とする処理では、
左端の列が0である場合はデータ値欠損とみなす必要がある。
sonde_sumquvx...
のファイルは
1行が1回の観測に対応し、
各行はスペースくぎりで、左の列から順に次の意味。
ただし、観測データがない場合も行はあり、最初の4列に0がはいっている。
wtimes.csh
上の作業の結果得られる4地点それぞれの時系列を
4段にならべてグラフで表示するものである。
横軸は、処理の便宜上、年の通しの日付になっている。
何月何日という日付を入れることは、いちいち文字列と紙の上の位置座標を与えて
GMTのpstext
を呼び出す手続きを追加すれば可能である。
なお、途中までしかとれなかったゾンデ観測をはずすため、 鉛直積算した空気の(面積あたり)質量が7000 kg/m2ある 場合に限って作図に入れるようにしたが、 それでも観測時のトラブルと思われる不自然な値が残っている。