GMT

提供: MacWiki
2011年1月10日 (月) 08:31時点における (トーク | 投稿記録)による版

移動: 案内検索

目次

GMT とは?

GMT (Generic Mapping Tools) は、地理的データを扱うための数多くのコマンドのセットです。単純化して言えば「地図を描く」ソフトです。数多くの投影法に対応しています。地図だけでなくグラフを描くこともできます。GNU General Public License のオープンソースソフトウェアです。

GUI は用意されておらず,ターミナルからコマンドを打ち込んで使います。実際の利用場面ではシェルスクリプトを書いて使うことが多いでしょう。もとは地震学などの分野で使うことを想定して作られたソフトウェアですが、それ以外の分野でも、試料採取地を地図上に表示したい、地理的なデータから地図上に等値線を入れたい、などといったときに有用かと思います。出力が PostScript なので Adobe Illustrator などで修正を加えるのも容易です。

最新版は 2010-11-04 にリリースされた 4.5.5 です(4.5.4 はリリース直後に取り下げられ,欠番になっています)。ver.5 のアルファ版も同時にリリースされています。4.x では緯度経度のデフォルトの指定方法が変更されているなど 3.x とは異なる部分が多くあります。現在の web 上の日本語の GMT 関連情報はほとんど 3.x を想定していますので、慣れたユーザ以外は 4.x の使用はやめておいた方がよいかもしれません。

新バージョンの変更点については、GMT reference and cookbook の Chapter1 を参照してください。

また、リアルタイムな修正状況については、chagelog を参照してください。


GMT 4.5.5 の変更点(4.5.4 は欠番)

  • バグフィックスリリース。
  • spotter 追加パッケージの動作を変更。
  • ハワイ語の時間軸をサポート。

GMT 4.5.3 の変更点

  • 基本的にバグフィックスリリースだが、機能強化もある(gmtmath、grdgradient、grdmath、pswiggle、mgd77/mgd77、x2sys/x2sys_get、GMT_nighttime.cpt、GMT_paired.cpt)。
  • 国境線などの修正(シリア-イスラエル間、イスラエル-ヨルダン間、モルドバ-ウクライナ間、エリトリア-エチオピア間の境界線)。
  • 消失していた河川-湖沼メタデータの修正。
  • これらの修正により、GSHHS のバージョンが2.1.0になった。

GMT 4.5.2 の変更点

  • 基本的にバグフィックスリリースだが、新機能の追加もある。
  • GSHHS のバージョンが2.0.2になった(ポリゴン自体には変更なし)。

GMT 4.5.1 の変更点

  • バグフィックスリリース。GSHHS のバージョンが2.0.1になった(ポリゴン自体は2.0と同じ)。ほか、若干の機能追加。
  • 多円錐図法のサポート(-JPoly)。
  • GDAL経由でのグリッドデータおよび画像の入出力(実験的な機能、configure時に指定)。
  • -JXwidth/height オプションで height に 0 を指定すると、領域の縦横比と width の値から height を再計算するようになった(width に 0 を指定すればその逆になる)。

GMT 4.5.0 の変更点

  • 新しい追加パッケージ sph(Spherical triangulation, Voronoi construction and interpolation)を導入。曲面上での補間、三角分割(Delaunay法およびVoronoi法)、距離計算を可能にする。
  • imgsrc 追加パッケージに img2google スクリプトを追加。これを用いれば Sandwell and Smith のグローバル水深データから簡単に Google Earth タイルを作成できる。
  • mgd77 追加パッケージに mgd77magref プログラムを追加。
  • misc 追加パッケージに gmt2kml と kml2gmt を追加(GMTデータを Google Earth で表示することを補助)、dimfilter を追加。
  • x2sys 追加パッケージに x2sys_merge を追加。
  • ps2raster で単純な kml ファイルを生成できるようになった。
  • グローバルなオプション -g を導入。
  • 地球楕円体の指定方法を変更。
  • 海岸線データ GSHHS のバージョンが 2.0 に。データの改善と -A オプションの拡張に対応。
  • configure スクリプトの改良。64ビットシステムのサポートを改善した。また、netCDF の有無と、インストールされていればその場所を自動的に検出するようになった。

GMT 4.4.0 の変更点

  • 様々なスプラインのグリーン関数(Green's function)による補間・グリッディング。
  • その他の追加機能に、Douglas-Peucker アルゴリズムによる曲線の単純化を行うツール、gmtdp を追加。
  • MEX 関連の追加機能に、Sandwell/Smith 画像ファイル (*.img) を直接読み込む関数 imgread.m を追加。
  • x2sys 追加機能に3つのプログラム(x2sys_list, x2sys_cross, x2sys_report)を追加。
  • GMT_qsort(qsort の64ビット対応版)を追加。qsort が Mac OS X の 64 bit 環境で動作しないので、その代用として Mac OS X で 64 bit 対応版をコンパイルする際にのみ使用される(Apple がこの問題をフィックスするまでの措置)
  • ps2raster による geotiff 画像の生成が可能になった(GDAL が必要)。
  • バグ修正(gmt_customio.c, gmt_init.c, gmt_io.c, gmt_map.c, gmt_math.h, gmt_plot.c, gmt_proj.c, gmt_support.c, gmt_vector.c, pslib.c, gmtmath.c, grdblend.c, grdfilter.c, grdimage.c, grdmath.c, grdreformat.c, psbasemap.c, pscoast.c, pslegend.c, psmask.c, psscale.c, pstext.c, psxyz.c, xyz2grd.c, meca/psmeca.c, meca/pscoupe.c, misc/gmtstitch.c, mgd77/mgd77.c, mgd77/mgd77sniffer.c, mgd77/mgd77track.c, spotter/backtracker.c, x2sys/x2sys_get.c, xgrid/xGridEdit.c)
  • その他、多くの機能強化
    • pscoast で -D オプション指定を“+”で修飾できるようになった。指定した解像度が利用できない場合、その次に解像度の低いデータを利用するようになる。この変更は gmtselect および grdlandmask にも影響。
    • psxy および psxyz に新オプション -Iintens を追加。
    • 3つの実行例を追加。
    • etc.

GMT 4.3.1 の変更点

いくつかのバグが修正されています。作者によれば“critical”なバグもあったようなので、4.3 ユーザはアップデートが推奨されています。

GMT 4.3 の変更点

  • シェルスクリプトとして、csh系でなく Bourne shell の書式を使うようになりました。
  • ソースファイルが .bz2 形式のみで提供されるようになりました。
  • 海岸線データファイルが更新(GSHHS 1.10)されました。
  • MEX において、Octave とのインターフェイスがサポートされました。
  • ソースコードが完全に64bit対応となりました。
  • “isolation mode”(一時ファイルおよび隠しファイルを GMT_TMPDIR 環境変数で指定したディレクトリに書き込む)が追加されました。
  • インストール時の configure/make において、CFLAGS や LDFLAGS が設定されていればそれを使用するようになりました。
  • 色名が16進コード(#ff0000 など)で指定可能になりました。
  • 投影法を名称(proj4 で用いられているのと同様のもの)で指定可能になりました。
  • バイナリのテーブルデータとして“COARDS-compliant netCDF”ファイル(詳細について、筆者は未検討)が使用可能になりました。

上記の変更にともない、GMTparam.txt で指定する項目も少し変わっています。

インストール(パッケージシステムによる場合)

GMT のインストールは、なんらかのパッケージシステムを利用するのが楽でしょう。Fink では、バイナリのバージョンが 4.2.0-2(ただし Snow Leopard 用バイナリは提供されていません)、ソースインストールの Stable 版が 4.2.0-2、同 Unstable 版が 4.5.5-1 となっています(2010-11-07現在)。Fink がインストールされていれば、

fink install gmt

でソースからGMT 本体と gmt-shlibsパッケージ、最低(coarse)、低(low)、中(intermediate)解像度の海岸線データ(gshhs-loresパッケージ)がインストールされます。高(high)および最高(full)解像度の海岸線データは gshhs-hiresパッケージで、ドキュメントおよびサンプル、チュートリアルは gmt-docパッケージでインストールされます。

MacPorts の場合、バージョンは 4.5.3 となっていて(2010-11-07現在)、

sudo port install gmt

でインストールできます。variant で gshhs を指定すると高解像度および最高解像度の海岸線データが、doc を指定するとドキュメントおよびサンプル、チュートリアルが、octave を指定すると Octave とのインターフェイスがインストールされます。また、triangle を指定すると三角形分割のアルゴリズムに J. Shewchuk の高速なルーチン(ただしライセンスはGPLでない)が用いられるようになります。XGRID 関連はインストールされません。

インストール(パッケージシステムによらない場合)

パッケージシステムが提供していないバージョンを使いたい場合などは、自分でインストールすることになります。GMT のインストールには、インターネットへの接続環境、Developer Tools のインストール、NetCDF のインストール(後述)が必要ですので、事前に準備しておいてください。

GMT のサイトで“DOWNLOAD”をクリックし、右下のフレームで“INSTALL FORM”のリンクをクリックすると、パラメータの設定ファイル作成を支援するフォームのページがフレーム内に開かれます。そこの“A. Basic Requirements:”の下にある“install_gmt.sh”のリンクから、“install_gmt.sh”というファイルを GMT をインストールしたいディレクトリに保存します。次に、その下の各項目を選択していき、“GET PARAMETERS”のボタンを押すと、右下のフレーム内に GMTparam.txt ファイルが表示されます。これを install_gmt.sh と同じディレクトリに保存します。

その段階で Terminal.app を起動し、install_gmt.sh を保存したディレクトリに移動した後、

$ sudo sh install_gmt.sh GMTparam.txt
PASSWORD:(パスワードを入力)

とタイプすれば、インストールが開始されます(インターネットに接続している必要があります)。

インストール終了後にシェルの環境変数の設定を促す文章が表示されますので、それに従ってパスの設定などを行ってください。

GMTparam.txt がない場合には、

$ sudo sh install_gmt.sh
PASSWORD:(パスワードを入力)

とすれば、対話的なインストールが開始されます。インストールスクリプトが設定を聞いてきますので、それに答えていけばインストールされます。ただし、質問がけっこう多く、間違っても元に戻ることはできない(スクリプトを中断するしかない)ので、よほど自信がない限り GMTparam.txt を用意してのインストールをお勧めします。

パラメータの説明

以下、パラメータの設定支援フォームの各項目について、簡単に解説します。

A. Basic Requirements:

1. Select default units in GMT:

描画する図形の長さの単位を指定します。米英のユーザのためにインストールするというのでもない限り、デフォルト(SI単位系)でかまわないでしょう。

2. Select default PostScript output format for GMT:

出力を PostScript 形式にするか、Encapsulated PostScript 形式にするか選択します。デフォルト(PS)でかまわないでしょう。

3. Select POSIX Advisory File Locking:

ファイルロッキングを使用するか否かを指定します。デフォルト(YES)でかまいません。

B. NetCDF Setup

1. Select the appropriate netCDF library option:
  • NetCDF についての指定です。事前に netCDF をインストールしているか否かで選択が変わります。インストールしていなければ“Please get and install the latest netCDF 3.6.x”を選択してください。ただし、この場合は最新版をインストールしようとするので、場合によっては netCDF のインストールに失敗するかもしれません。Fink か MacPorts で事前にインストールしておく方が安全でしょう。
    • netCDF の最新安定版は 4.1(2010-02-05現在、3系では 3.6.3 が最新)です。とくに理由がなければ 3.6.3 のソースコードをダウンロードしてインストールした方が安全でしょう。4.1 をインストールする場合は、netCDF の configure 時に --disable-netcdf-4 を指定する必要があるかもしれません(未検証)。
    • パッケージシステムを利用する場合、Fink では netCDF のバージョンが 3.6.3(2009-11-09現在)ですので、バージョンについて問題は生じないでしょう。MacPorts でも、variant で +netcdf4 を指定しない限り問題は生じないと思われます。
  • 事前に netCDF をインストールした場合は、“netCDF 3.6.x is already installed”を選択します。この場合、netCDF のインストールディレクトリを通常から変更していなければ、その選択だけでよいはずです。MacPorts や Fink で netCDF をインストールした場合は、“Give full pathname to the netCDF directory: ”のフォームに、MacPorts の場合は /opt/local、Fink の場合は /sw と記入します。
2. OPTIONAL. Experimental GDAL import support:

GDAL を経由してさらに多くの種類の grid ファイルを読み込んだり、geotiff 形式の出力を行うことが可能になりました。まだ実験的な機能という扱いですが、GDAL のサポートが必要であれば、“Build optional/experimental GDAL grid import”をチェックし、“If you selected to use GDAL, give full pathname to the GDAL directory:”のフォームに GDAL をインストールしたディレクトリを入力してください(B.1.を参照)。

C. GMT Setup

1. Select the FTP site nearest you:

ソースコードをダウンロードするサイトを選択します。“Asia (ISV, Hokkaido University, Sapporo, Japan)”を選べばよいですが、ダウンロードに失敗する場合は適当なところを選択してください。新バージョンのリリース直後には、本家との同期が済んでいないために、ミラーサーバによっては最新版をダウンロードできないことがあります。

  • 現在、北大のミラーサーバはなくなっていますが、ここの選択は“Asia”で大丈夫です(東海大学のftpサーバに接続します)。
2. Select normal [Default] or passive ftp transmission:

通常の ftp と受動的ftp のどちらでダウンロードするかを選択します。どちらを選択すべきかはお使いのネットワーク環境によります。大学や組織のLAN内からダウンロードする場合は注意してください。

3. Select the components you want (gzip/bzip2 sizes indicated):

ダウンロードするファイルを選択します。海岸線の最高解像度、高解像度データをチェックするとディスク消費量が増えますが、最近の機種のハードディスク容量からすれば大した量ではないので、チェックしておいてよいでしょう。なお、最初の3つのファイルのチェックは絶対に外さないでください。外すとインストール自体ができません。

4. Select which triangulation algorithm to use:

三角形分割のアルゴリズムを選択します。デフォルト(Watson's algorithm)でかまいませんが、Shewchuk のアルゴリズムの方が高速です。ただし、Shewchuk のコードのライセンスは GPL ではありません。とくに私企業で、あるいは営利目的で利用しようと考えている方はラインセンスをよく検討してください。

5. Select library build type:

ライブラリのリンク形式を選択します。“Shared (dynamic) Libraries”で大丈夫なはずですが、バージョンによっては make に失敗することがあるようです。したがって、デフォルト(Static)にしておいた方が安全です。その場合はディスク消費量が増えますが、それほど問題にはならないでしょう。

6. Select the C compiler you want to use:

デフォルト(cc)でかまいません。Apple の Developer Tools と異なるコンパイラを使う場合には“ohters”を選択して“Custom C Compiler: ”のフォームにそのコンパイラのパスを入力します。

(この項、以下の部分は充分な検証ができていないので注意してください)

また、“Produce executables that are:”で“64-bit”を選べば64bitのバイナリが、“universal”を選べばユニバーサルバイナリが生成されます。

  • “64-bit”を選ぶのであれば、netCDF も64bitでmakeしておく必要があります。B.1.で“Please get and install the latest netCDF 3.6.x”を選んだ場合、必ずしも netCDF が64bitでmakeされるとは限らない(たぶん 10.5 だと32bitバイナリになっている)ので注意してください。パッケージシステムで netCDF をインストールしている場合にも注意が必要です。
  • 逆に、netCDF を 64bit でmakeしたならば“64-bit”にチェックを入れておく必要があります。10.6 上では、とくに指定しない限り、自前で netCDF をmakeすると 64bit のバイナリになっているはずなので注意してください。
  • “universal”を選ぶ際にも、netCDF について同様の注意が必要と思われます(未検証)。
7. Select the make program you want to use:

make に使用するプログラムを選択します。デフォルト(make)でかまいません。

8. Select GMT final destination directories

GMT をインストールするディレクトリを入力します。デフォルトでは install_gmt のあるディレクトリに作られる GMT{version_No} 内の bin, lib, include, share, man, www ディレクトリの下に各種ファイルがインストールされます。それ以外の場所にインストールするには、このフォームでディレクトリを指定するか、インストールしたいディレクトリに install_gmt および GMTparam.txt を置いてインストールを実行するかしてください。

たとえば、“Place GMT in subdirectories of:”のフォームに /usr/local/GMT4.4 と入力しておけば、/usr/local/GMT4.4/bin、/usr/local/GMT4.4/lib 等々に各ファイルがインストールされます。bin、lib などのインストール先を個別に指定したければ、その下の“Place GMT executables in:”などのフォームで指定します。

9. Select alternative GMT_SHAREDIR directory

リモートから GMT を使うユーザがいる環境でなければ、デフォルト(空欄)のままにしてください。

GMT は、海岸線データなど基本的なデータファイルや設定ファイルを、セクションC.7で指定した各ディレクトリから読み取ります。しかし、これらのディレクトリがリモートユーザからは違うパス名で見えることがあります。このような場合には、$GMT_SHAREDIR 環境変数を設定することで正しい場所を指定できます。こうしたことが想定される場合には、このフォームに $GMT_SHAREDIR のパスを入力してください。

  • 実際には、この指定はインストール終了後に表示される環境設定に関する指示に使われるだけのようです。上記のような問題がある場合には、インストール後にシェルの設定ファイルで $GMT_SHAREDIR を設定してもよいと思われます。
10. Alternative coastline directories

海岸線データのインストール先を指定します。ネットワーク上で海岸線データを共有したいなど、特別の理由がなければ、デフォルト(Install all selected coastline files in $GMT_SHAREDIR/coast)のままにしてください。

11. Select supplemental packages to install:

追加パッケージを選択します。デフォルトでかまいません。MATLAB または Octave をインストールしていて、それらとのインターフェイスが必要ならば“MEX:”にチェックを入れ、チェックボックスでどちらかのアプリケーションを選択してください。

11. Additional information for MEX (Matlab or Octave):

上記 11. の補足です。必要であれば Matlab または Octave のディレクトリを指定します。

12. Complete the operation:

インストール終了後の動作を指定します。デフォルトでもかまいませんが、“Delete all archives upon sucessful installation”にチェックを入れれば、インストール後にソースコードや海岸線データの圧縮ファイルが削除されます。“Run all example scripts (assumes scripts tar archive was chosen above)”のチェックは外さず、サンプル画像を作成しておいた方が良いでしょう。

使い方

まずは Tutorial を読んでみるのがいいでしょう。より詳しい説明は Technical Reference and Cookbook などにあります。これらは GMT をインストールしたディレクトリの share/doc/gmt/pdf ディレクトリ下にあります。インストールする前に読んでみたいというのであれば、以下のページからダウンロードしましょう。

英語はちょっと、という方には、ver.3.* についてのものですが、

が参考になると思います。

ほかの日本語の情報源としては、

などがあります。また、日本語のメーリングリストもあります。

もっと手軽に (1)

Mac とは関係ありませんが,旧 GEOMAR (ドイツの海洋科学研究機関) の Web サイトには GMT で地図を作る CGI が設置されています.GMT をインストールせずに試してみることができます.

もっと手軽に (2)

iGMT という tcl/tk を利用した GMT のフロントエンドがあるそうです.又聞きですが,Mac OS X でも動いているそうです.

Wiki内の関連ページ