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の環境を持ち、かつghostscript-xを導入している場合は showを付けると画像が即表示される。

#!/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が消えました
ただし、psconvertpsconvertのままです。GMT6ではあまり使わないからですかね。。

psbasemapbasemap

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

pscoastcoast

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

psmecameca

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

pscoupecoupe

などなど…。


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

psxyplotと言う名前になりました。

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

psxyzplot3dになりました。

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

psscalecolorbarになりました。

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

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

Modules — GMT 6.2.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

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

コメント

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