実践! GMT その1(アメダスデータを使ってみよう)

 それではGMTを使って実際に絵を書いてみましょう。 今回使用するデータは日本の宝であるアメダスのデータです。

 アメダスとは気象観測用に全国に2000ヶ所くらい設置された 地上気象観測用のシステムのことで、毎時間の気象状況を把握するためにあります。 皆さんも良くテレビなんかで見ていると思いますが 毎時間(10分ごとのもあります)のデータということで移り変わる気象状況の 把握には欠かせないものなのです。

 GMTの使い方5でちょっと触れましたが あれだと何か雑だし物足りないのでここでちょっと補足することにします。

何で図が雑になるのか?

 それは、アメダスのデータが偏在しているからです。 偏在するデータに等値線を引く場合人間が手作業ですると周りのデータと比較しながら フリーハンドで描けるのですが、GMTにやらせてしまうとカクカクになってしまうのです。

 そこで、GMTにはグリッド化(格子化)という機能が付いています。 グリッド化するのとしないのとでどう違うか具体的なものは GMTの本家のページ を見ると判ります。

 リンク先のページの下の図を見ると、pscontourが素のデータ、他は何らかの格子化を行っているもようです。 triangulateが一番素のデータに忠実な滑らかな曲線が得られていますが、 今回はsurfaceを使って説明していきます。

 なお、GMTの格子化についての説明は東大の沖野さんの 海底地形図作成講座に詳しいです。

 一般的な格子化については検索等でお調べください。私がわかる範囲で言うと、 ある格子点に付き、アメダスデータの距離で重み付けをしてその格子点のデータを決めると言うことで。

それでは書いて見ましょう

 元データはGMTの使い方5test4.txtを使いますが、 test2.txtのawkによる切り出しをもう一度ここでは行います。 test2.txtのデータの並びは

地点 緯度 経度 県番号 年 月 日 時 分 空データ 降水量 気温 風速 風向 日照

で、GMTの使い方5では

#!/bin/bash

makecpt -Crainbow -T10/35/2.5 > colors.cpt

awk '($8==10){print $3,$2,$12}' test2.txt | \
pscontour -R138/141/34.5/37.5 -Jm2 -Ccolors.cpt -B1 -W -P -X1 -Y1 -I -K > hindo.ps

pscoast -R -Jm -B1 -P -W -Dh -O >> hindo.ps

というスクリプトでしたが、このpscontourをgrdcontourで置き換えます。 その際、読み込むデータを格子化するのでsurfaceというコマンドを使用します。

 上のスクリプトを書き直すと、
#!/bin/bash

makecpt -Crainbow -T10/35/2.5 > colors.cpt

awk '($8==10){print $3,$2,$12}' test2.txt | \
surface -R138/141/34.5/37.5 -I0.01 -S0.1 -Gtest1.grd

grdcontour test1.grd -R -Jm2 -Ccolors.cpt -B1 -W -P -X1 -Y1 -K > hindo2.ps

pscoast -R -Jm -B1 -P -W -Dh -O >> hindo2.ps

 これを実行すると、



という図が出来上がります。注意するところは、観測点のない海上にも変な等値線が引かれている ところと色が付いていたはずなのが無いところです。

 海上の変な線はpscoastで海上に色を塗ることで隠匿できます。 また、格子化したものに色を塗る場合はgrdimageというコマンドを使用しないといけません。 これを踏まえると、

#!/bin/bash

makecpt -Crainbow -T10/35/2.5 > colors.cpt

awk '($8==10){print $3,$2,$12}' test2.txt | \
surface -R138/141/34.5/37.5 -I0.01 -S0.1 -Gtest1.grd

grdimage test1.grd -R -Jm2 -Ccolors.cpt -P -X1 -Y1 -K > hindo3.ps

grdcontour test1.grd -R -Jm -Ccolors.cpt -B1 -W -P -K -O >> hindo3.ps

pscoast -R -Jm -B1 -P -W -Dh -S255 -O >> hindo3.ps



となります。それではそれぞれのコマンドの説明をしていきます。

surface:格子化する命令。
grdimage:格子データに色を塗る命令。surfaceで作った格子データの指定を忘れずに。
grdcontour:格子データに等値線を引く命令。上に同じくファイルの指定を忘れずに。

です。なお、surfaceは凄く計算量が多く時間がかかるようなので コマンドプロンプトが止まっていてもしばらく待っていましょう。

 pscontourがひとつの命令で線も色も描けたのに対しちょっと面倒になっています。 次にオプションの説明です。

surface:Rはpsxy等と同じ範囲指定。Iは格子点の間隔。 Sは格子点からどれくらいの遠さのアメダスデータまで使うかの値。 Gは作るグリッドデータのファイル名。
grdimage:RとJはいつもと同じ。まえに指定している場合は値を書かなくても良いです。 Cは使うカラーパレット。それ以下はいつもと同じです。
grdcontour:pscontourと比べて、Iオプションがないだけ。Iをつけると動きません。
pscoast:Sオプションで水領域の色付け。255は真っ白。0だと真っ黒。RGB値を適宜入れると色もつけられます。

 とりあえず気温の分布を書くことができました。次は風の分布を書いて見ましょう。
上へ トップ 次へ