スポンサーリンク
スポンサーリンク

GMT5からGMT6に乗り換える方へ(gmt begin / gmt endの使い方)

スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク

【2021/05/02 追記】いろいろ加筆しました。

GMT6の記事を書きまくっている私ですが、私が初めてGMTに触れたのはGMT5.4.5のときです。
そのときも巷にはGMT4の書き方がありふれていたのでGMT4の書き方も何となくわかります。

今回は、GMT4/5からGMT6に乗り換えたい人向けの記事です。

スポンサーリンク
スポンサーリンク

GMT6のお作法

GMTを用いて図を描く場合は最初に、gmt begin、最後にgmt endを書きます。

gmt begin [出力ファイル名] [出力ファイル拡張子]
使用できる拡張子は「bmp , eps , jpg , pdf , png , PNG , ppm , ps , tif」。
何も指定しない場合、PDFとなる。
※ アルファチャンネルを持つpng画像にしたい場合はPNGにすること。

gmt end [show]
GUIの環境を導入している場合は showを付けると画像が即表示される。
ただし、PostScript画像で閲覧する場合はghostscript-xが必要。

#!/bin/bash
gmt psbasemap -JX12 -R0/100/0/100 -Bafg -BWSne > hogehoge.ps
gmt psconvert hogehoge.ps -Tg -A1

は

#!/bin/bash
gmt begin hogehoge png
    gmt basemap -JX12 -R0/100/0/100 -Bafg -BWSne
gmt end

と書くようになりました。
これを実行すると、hogehoge.pngが生成されるはずです。


GMT4/GMT5にあった-Kと-Oは使用しません。自動的に図は上書きされます。
よく、2枚目に別の図を作成する。。というテクニックがGMT5までにはありましたが、GMT6ではgmt figureを使用することで似たようなことをすることができます。

gmt psbasemap -JM12 -R120/150/20/50 -Bafg -BWSNE -K > hogehoge.ps
gmt pscoast -Df -W0.25 -O >> hogehoge.ps
gmt psconvert hogehoge.ps -Tg -A1

は

#!/bin/bash
gmt begin hogehoge png
    gmt basemap -JM12 -R120/150/20/50 -Bafg -BWSNE
    gmt coast -Df -W0.25
gmt end

となります。

モジュール名の変更

GMT6から一部のモジュール名が変更となっています。

頭にpsとついていたモジュールのほとんどはpsが消えました
ただし、psconvertはpsconvertのままです。GMT6ではあまり使わないからですかね。。

psbasemap ⇒ basemap

gmt basemapの使い方
GMTのbasemapモジュールについて説明しています。

pscoast ⇒ coast

gmt coast の使い方
GMT6のcoastモジュールについて説明しています。

psmeca ⇒ meca

gmt meca の使い方
GMTのmecaモジュールについて説明しています。

pscoupe ⇒ coupe

などなど…。


ただし、以下のモジュール等は名前自体が変わっています。

psxyはplotと言う名前になりました。

gmt plot の使い方
GMTのplotモジュールについて説明しています。

psxyzはplot3dになりました。

gmt plot3dの使い方
GMTのplot3dモジュールについて説明しています。

psscaleはcolorbarになりました。

gmt colorbarの使い方
GMTのcolorbarモジュールについて説明しています。

他にもいろいろありますので、GMT公式のページを見てください。

Modules — GMT 6.8.0 documentation

モジュールの前に"gmt"が必須に

GMT5の時も再三付けろよ!とマニュアルに書いてあった気がしますが、GMT6からはgmt basemapのようにgmtを付けないとデフォルトでは動かないようになりました。

gmtを付けなくても動かすようにする方法

インストールする前

もし、インストールを行う前だったら、

cd gmt-${GMT_VERSION}
cat ./cmake/ConfigUserTemplate.cmake | \
sed -e 's%\#set (GSHHG_ROOT "gshhg_path"%'"set (GSHHG_ROOT ${GSHHG_ROOT}"'%g' | \
sed -e 's/\#set (COPY_GSHHG FALSE)/set (COPY_GSHHG TRUE)/g' | \
sed -e 's%\#set (DCW_ROOT "dcw-gmt_path"%'"set (DCW_ROOT ${DCW_ROOT}"'%g' | \
sed -e 's/\#set (COPY_DCW FALSE)/set (COPY_DCW TRUE)/g' | \
sed -e 's/\#set (GMT_INSTALL_MODULE_LINKS TRUE)/set (GMT_INSTALL_MODULE_LINKS TRUE)/g' \
> ./cmake/ConfigUser.cmake

でgmtを付けなくても動くようになります。

インストールした後

上記をせずに、インストールした場合は、.bashrc等におまじないを記載します。

まず、

gmt --show-sharedir

を実行して、GMTのshareディレクトリを確認します。
その後、.bashrc等に

source $(GMTのshareディレクトリ)/tools/gmt_functions.sh

と記載します。これで動くはずです。

コメント

スポンサーリンク