こんにちは。とりりんです。
今回はGMTでデータの描画をしていこうと思います。
こんなことが知りたい方向けです。
- プログラミング初心者の方
- プログラミングのモチベをあげたい方
- データ分析に興味がある方
是非最後までご覧ください。
grdimageコマンド
今回はGMTのgrdimageコマンドを使用します。
grdimageはnetCDFファイルのデータを格子状に描画してくれる便利なコマンドです。
要するに、NetCDFファイルさえあれば超簡単にできちゃいます。
NetCDFファイルについて知りたい方は、こちらを参照してください。
実際に描画してみよう
では、PythonでNetCDFファイル作成にて作成した擬似的な全球気温データ(北緯南緯60度までだけど)を使って描画します。
GMTでは基本シェルスクリプトを使っていきます(ターミナル直書きでも可能)。
いつもは長々しいソースコードを書きますが、今日は超短いですよ!
#!/bin/bash ncFile=./netcdf4.nc psFile=./grdimage.ps cptFile=./color.cpt gmt makecpt -Crainbow -Z -D -T-5/40/1 > $cptFile gmt grdimage $ncFile -JM15c -Ba30f10g20/a20f10g10:."Global Temperature":WSne -R0/360/-60/60 -C$cptFile -P -K > $psFile gmt pscoast -J -B -R -W -P -K -O >> $psFile gmt psscale -C$cptFile -Dx16/3/6/0.5 -Ba10f5::/:"deg C": -O >> $psFile gmt ps2raster $psFile -E100 -Tg
これを実行するとこんな図が出来上がります。

スポンサーリンク
ソースコードはGitHubにもあるので、動かしてみたい方は参照してください。
最初に定義した3変数はそれぞれ以下を指します。
- ncFile : 擬似気温データであるNetCDFファイルのパス
- psFile : 描画する画像ファイルのパス
- cptFile: カラーパレットファイル
GMTではカラーパレットファイルというものを使用します。
今回で言うと、0度だったら青で塗ってね!的なファイルです。
今回はrainbowで作成し、Zオプションで連続的な色に設定、Tオプションで-5から40まで1ずつ色をグラデーションで作成しています。
Dオプションは-5未満、40より大きいを最大値、最小値で塗りつぶしたい場合はつけるようにしましょう。
grdimageコマンドではNetCDFファイルを描画していきます。
今回は緯度経度の解像度を10度にしているため格子状に塗りつぶされます。
J, B, R, P, K, Oオプションはpscoastコマンドなどで使ういつものやつです。
格子状に塗りつぶすだけだと物足りないので、pscoastで海岸線、psscaleで凡例をつけました。
psscaleはCオプションでカラーパレットを取得、Bオプションで軸設定(基本はpsscaleなどと同じ)、Dオプションで描画位置などを指定しています。
Dオプションは、描画位置(X)/描画位置(Y)/縦方向の長さ/横方向の長さです。
最後にhをつけると、横にした凡例を作成できます。
因みにps2rasterはpsファイルだと扱いにくいのでpngファイルを作っているだけです。
スポンサーリンク
まとめ
今回はGMTでデータの描画をしてみました。
毎回言ってるような気がしますが、数行(色を塗るだけなら1行)でこんな綺麗な図を作れるのは感動的ですよね。
あちこちに転がっててわかりにくい気がするので、GMTについてまとめたページでも作ってみようかなぁ。。
最後までご覧いただき、ありがとうございました!
Python
GitHub
Qiita
↓とりりんを応援して頂けると嬉しいです!↓
にほんブログ村
コメント