Generic Mapping Tools

2021 年 7 月 19 日 改訂

Generic Mapping Tools (GMT)は、地図を描くためのソフトウェアです。

インストール

こちらを参考にしました。

Linux

CentOS7 には以下で簡単にインストールできました。1 分ぐらいかかったでしょうか。

sudo yum install GMT gshhg-gmt-nc4-all dcw-gm

こちらを参考にしました。 Python から動かすと、もしかしたら、エラーが出るかもしれません。その場合は、もう一度 python のビルドをやり直したほうが良いかもしれません。こちらを参考にしてください。おそらく、python をインストールする前に、GMT をインストールする必要があるようです。


Mac

普通に使うのであれば難しくないです。ただ、web tool として apache で gmt を動かすと、gmt ps2raster あるいは gmt psconvert が動かなかったです。Linux では問題なく動きます (2021 年 7 月)。

Mac: homebrew から
Sourc code (zip) の INSTALL.md に従いました。それぞれ数分かかりました。しかし、terminal からは動かせますが、html から tool としては動かせないです。

You may need to update the formulas so for that you will do:

brew update && brew upgrade

For the latest stable GMT 6 release, use:

brew install gmt

すると、以下の指示が出たので、従いました。

GMT needs Ghostscript for the 'psconvert' command to convert PostScript files
to other formats. To use 'psconvert',
please 'brew install ghostscript'.

以下を行うように言われました。

If you really need to use these commands with their normal names, you can add a "gnubin" directory to your PATH from your bashrc like:

PATH="/usr/local/opt/inetutils/libexec/gnubin:$PATH"

以下はやりませんでした。

GMT needs FFmpeg for the 'movie' command to make movies in MP4 or WebM format.
If you need this feature, please 'brew install ffmpeg'.

GMT needs GraphicsMagick for the 'movie' command to make animated GIFs.
If you need this feature, please 'brew install graphicsmagick'.

Mac: .dmg から
こちらから gmt-6.1.1-darwin-x86_64.dmg をダウンロードしました。 .dmg ファイルをダブルクリックすると、GMT-6.1.1.app をアプリケーションディレクトリ (エイリアス) にドラッグするように支持されます。
 terminal から動かすプログラムは、上記の手順て自動的にインストールされています。しかし、terminal からは動かせますが、html から tool としては動かせないです。

[inouejunmp:GMT-6.1.1.app]$ ls Contents/Resources/bin/
ffmpeg* gmt-config* isogmt*
gdal_translate* gmt_shell_functions.sh* ogr2ogr*
gm* gmtswitch*
gmt* gs*

[inouejunmp:GMT-6.1.1.app]$ pwd
/Applications/GMT-6.1.1.app

ただ、gtm を他のディレクトリにコピーして使えないようです。ライブラリが必要なようです。

[inouejunmp:GMT-6.1.1.app]$ ls Contents/Resources/
GMT-6.1.1.icns bin/ include/ lib/ share/

このため、PATH を .bashrc に記述しました。

[inouejunmp:GMT-6.1.1.app]$ cat ~/.bashrc
# .bashrc

# User specific aliases and functions
PS1="[$USER:\W]$ "

alias ls='ls -F'

export PATH=.:$PATH
export PATH=/usr/local/bin:$PATH
export PATH=~/bin:$PATH
export PATH=/Applications/GMT-6.1.1.app/Contents/Resources/bin:$PATH


ソースコードから

ソースコードからのインストールはこちらの「Building GMT from source」に紹介されています。ただし、Mac へのインストールは難しいので、homebrew などの利用が推奨されています (こちら):

I have successfully compiled GMT from source, but it can be time-consuming to get all the dependencies – and so the workflow below, using package managers, is what I would recommend for Mac OS X users.

私はまだソースコードから GMT をビルドしたことがないです (2021 年 7 月)。

 

観測点をプロットする

test_gmt.tar.gz

$ sh command.sh

.ps を .png に変換するスクリプトが Mac と Linux で異なります。command.sh の該当箇所を書き換えてください。

 

エラー対策

Linux では psconvert を動かすと、以下のエラーが出ます。

[osaka USERNAME:test_gmt]$ gmt psconvert test.ps -P -Tg -E500
sh: gs: コマンドが見つかりません
psconvert: Failed to parse response to GhostScript version query [n = -1 0 0].

こちらにしたがって、gohstscript をインストールしたところ、無事、psconvert が動きました。

sudo yum install ghostscript

(2021 年 7 月)

 

エラー対策

テンポラリファイルが作成できない

[osaka USERNAME:www]$ gmt psconvert ../html/seibutsuGikenWork/4265-KeRevI/150map.ps -P -Tg -E200
psconvert: Unable to create a temporary file

これは、プログラムが置いてあるディレクトリの権限に問題があるために生じると考えられます。以下で解決しました。

[osaka vpsuser:www]$ pwd
/var/www
[osaka vpsuser:www]$ sudo chown apache:vpsuser cgi-bin
[osaka vpsuser:www]$ sudo chmod 775 cgi-bin
[osaka vpsuser:www]$ ls -ltr
合計 8
drwxrwxr-x 4 apache vpsuser 4096 7月 27 14:24 html
drwxrwxr-x 3 apache vpsuser 4096 7月 27 16:14 cgi-bin

(2021 年 7 月 27 日)

 

高解像海岸線データ

NOAA のページから入手可能です。

gshhg-* を解凍すると、中にgshhs_X.bというファイルがあります。

Xが
c (cruide) → l (low) → i (intermediate) → h (high) → f (full)
の順に高解像度になります。

GMTでデフォルト以外のgshhgを使うには以下のコマンドで指定するようです。

http://gmt.soest.hawaii.edu/doc/5.4.4/supplements/gshhg/gshhg.html

(ET さんより)。

 

リンク

海底地形図作成講座

東大大海研・沖野先生。速習 GMTで GMT の使い方が開設されています。

北大水産

一通り説明があります。

いちからはじめる GMT

東京学芸大学気象学研究室

GMT の使い方

GMT と ETOPO1 で地図形成

海底地形図。ダウンロードして、GMT でも使えるらしいです (ET さんより)。