【GMT】数行書くだけで綺麗なグラデーション図を作成

プログラミング


こんにちは。とりりんです。

今回はGMTでデータの描画をしていこうと思います。

こんなことが知りたい方向けです。

  • プログラミング初心者の方
  • プログラミングのモチベをあげたい方
  • データ分析に興味がある方

是非最後までご覧ください。

スポンサーリンク



grdimageコマンド

今回はGMTgrdimageコマンドを使用します。

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

↓とりりんを応援して頂けると嬉しいです!↓
にほんブログ村 投資ブログ お金(投資)へ

にほんブログ村

スポンサーリンク


コメント

タイトルとURLをコピーしました