2008年 6月 1日 掲載, 2010年 1月 12日 図を追加
GMT(The Generic Mapping Tools)は高機能の地図・グラフ作成,データ処理ツール群である. 使いこなせば強力なツールであるが,対話的でない, コマンドがたくさんある,オプションがやたらと多いなど初心者には敷居が高いツールでもある.
「いちからはじめる GMT」は,最小限のコマンド,オプションからはじめて, 少しずつ複雑にしていくことで,GMT を親しみながら学んでもらおうと思って書いていく. たくさんあるコマンド,オプションを少しずつ覚えていってもらいたい.
このシリーズで使う GMT のバージョンは 4.2.1 で,FreeBSD 6.2 にインストールしてある. インストール時の設定で,デフォルトの出力を EPS に指定している (詳しいインストール手順はこちら).
GMT の pscoast は地図を作画するコマンドである. こいつをいちからはじめてみよう.
まず,pscoast を単独で実行してみる.
$ pscoast pscoast 4.2.1 - Plot continents, shorelines, rivers, and borders on maps usage: pscoast -B<params> -J<params> [-A<min_area>[/<min_level>/<max_level>]] [-R<west>/<east>/<south>/<north>[/<zmin/zmax>][r]] [-C[<fill>]] …
使い方(usage)が標準エラー出力にずらずらっと出てくる. 最初の方を読むと,地図投影法を指定する -Jオプション (proJection)と, 範囲を指定する -Rオプション(Region?)が必要らしい.
では,メルカトル図法で,日本地図を作図してみよう. メルカトル図法は -Jm で縮尺(1:25000000)をつづける. 範囲 -Rオプションでは西端経度/東端経度/南端緯度/北端緯度を指定する.
$ pscoast -Jm1:25000000 -R120/155/20/50 pscoast: GMT SYNTAX ERROR: Must specify at least one of -C, -G, -S, -I, -N, and -W
-C, -G, -S, -I, -N, -W のうち, 最低ひとつのオプションが必要とのエラーが出た. それぞれのオプションには,
という機能がある.まあ,最初は岸線を描いてみるのかな. -W オプションをつけてみる.
$ pscoast -Jm1:25000000 -R120/155/20/50 -W %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: (atend) %%Title: GMT v4.2.1 Document from pscoast %%Creator: GMT %%For: kdo %%DocumentNeededResources: font Helvetica %%CreationDate: Wed Dec 19 19:59:27 2007 %%LanguageLevel: 1 %%DocumentData: Clean7Bit %%Orientation: Landscape …
今度はエラーは出ない. 標準出力に PostScript の内容がざーっと出てくる. これをリダイレクトでファイルに保存して, PostScriptファイルのビューワ(ここでは gv を使う)で見てみよう.
$ pscoast -Jm1:25000000 -R120/155/20/50 -W > map.eps $ gv map.eps
下のような地図が表示された.
ほんとに地図だけである. 枠線くらいほしいなあ,というときは -Bオプション(Boundary)である.
$ pscoast -Jm1:25000000 -R120/155/20/50 -W -B > map.eps
二重線の枠「だけ」がついた. ふつうの地図みたいに経緯度線とかも描いてみたい. -Bオプションにいろいろ書くことで実現できる. g5 を追加する.
$ pscoast -Jm1:25000000 -R120/155/20/50 -W -Bg5 > map.eps
で 5度おきのグリッド線が引かれる. 経緯度の数値を記入したい.ということで -Bオプションに a10 を追加.
$ pscoast -Jm1:25000000 -R120/155/20/50 -W -Bg5a10 > map.eps
枠外に 10度おきの数値が描かれた. 同時に枠線が白黒パターンに塗りわけられたが, 10度ごとではちょっと格好わるい. グリッド線にあわせて 5度ごとに塗りわけたいので, -Bオプションにさらに f5 を追加.
$ pscoast -Jm1:25000000 -R120/155/20/50 -W -Bg5a10f5 > map.eps
地図のタイトルもつけてみよう.-Bオプションに :."タイトル": とつづける.
$ pscoast -Jm1:25000000 -R120/155/20/50 -W -Bg5a10f5:."Map around Japan": > map.eps
タイトルの上半分が切れてしまった. これは,A4横の紙面に描画しているためである. 紙面を A4縦にすればいい.-Pオプション(Portrait)をつける.
$ pscoast -Jm1:25000000 -R120/155/20/50 -W -Bg5a10f5:."Map around Japan": -P > map.eps
-Gオプションで陸域に色をつけてみよう.
$ pscoast -Jm1:25000000 -R120/155/20/50 -W -Bg5a10f5:."Map around Japan": -P -G > map.eps
まっくろけになった.このままではちょっと使えない. 色は -Gtan のように色の名前で指定できる. /usr/X11R6/lib/X11/rgb.txt に書いてある色が使える. RGB 各色を数値で細かく指定することもできる. -G210/180/140 と指定すると -Gtan と同じになる.
$ pscoast -Jm1:25000000 -R120/155/20/50 -W -Bg5a10f5:."Map around Japan": -P -Gtan > map.eps
思うような地図ができあがった.
初回はここまで.次回 psxy につづく…,のかな?
[ KDOホームにもどる ] [ いちからはじめる GMT インデックスにもどる ]
(C) 2008 KDO