LoginSignup
1
1

【GMT】台風データを使って描画してみた

Last updated at Posted at 2021-11-11

概要

GMTを使ってベストトラックデータを使って各台風における中心気圧や最大風速の時系列変化を描画する。
以下のことが学習可能。

  • シェルスクリプト(データの読み書きや扱い方など)
  • GMTのpsxyコマンド

ベストトラックデータ

台風業界で最も有名なデータの1つで、台風の各種情報をテキスト形式で格納。
データ形式がわかりにくいため、実際に使用する場合は気象庁ベストトラックフォーマットを見ておくと良い。

データは気象庁ベストトラックページから取得可能。今回は2021年(2021年11月1日現在は1~8号)のデータを使用。

台風データの分割

気象庁ベストトラックページから取得したベストトラックデータは1年分を1ファイルで格納されている。
これだと非常に使いにくいため、台風1つごとのデータに分割する必要がある。
(自分でやるのがめんどくさいという方はGitやブログにソースがあるので使ってください)

データ整形 + 描画

GMTで描画していきます。2021年1号の例です。

bash

# Standard Settings
tyNum=2101
savePs=2101.ps
mswTxt=2101_MaximumSustainedWind.txt
presTxt=2101_Pressure.txt

# GMT Settings
dispTime=a1Df3Hg6H
startDate=2021-02-16T00:00:00
gmtDate=2021-02-23T00:00:00
timeInterval=`echo "scale=5; 0.00031 / 7" | bc`

gmt psxy $presTxt -B$dispTime:"UTC":/a20g10:"Pressure[hPa]"::."20${tyNum:0:2} No.${tyNum:2:2}":WSn -R$startDate/$gmtDate/940/1020 -Jx${timeInterval}T/0.15 -Sc0.2 -Gblue -K > $savePs
gmt psxy $presTxt -B -R -J -W1,blue -P -K -O >> $savePs
gmt psxy $mswTxt -B/a10:"MSW[kt]":E -R$startDate/$gmtDate/0.1/100 -Jx${timeInterval}T/0.12 -Ss0.2 -Ggreen -P -K -O >> $savePs
gmt psxy $mswTxt -B -R -J -W1,green -P -K -O >> $savePs
gmt pslegend -R -J -Dx1.8/11.5/2.5/1.2 -F+p1,black+gwhite -P -O >> $savePs
S 0.2 c 0.2 blue black 0.5 Pressure
S 0.2 c 0.2 green black 0.5 MSW
EOF
gmt ps2raster $savePs -E100 -Tg

今回は時系列グラフを書くので。GMTに食べさせるデータはこのような形である必要があります。
GMTは2021-01-01T00:00:00にしないと時刻だと理解してくれない、つらい。

2021-01-01T00:00:00 1000
2021-01-01T60:00:00 990
...

GMTのpsxyコマンドでは、プロット位置に○を描画させる処理と線を結ぶ処理をしています。
pslegendは凡例を描画するコマンドで、少し厄介で、<<EOF ... EOFなどで囲った部分で凡例の内容を示します。
psファイルは扱いにくいので、最後にps2rasterでpng出力させています。

こんな図が出来上がります。
GMTは本当綺麗なんですよね。

image

その他

各種ソースコードはGitHubにおいています。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1