GMTはコマンドを使って地図やグラフなどを書くためのソフトです。
ここではWindows上での操作を中心に扱っています。
まず,元となるグリッドデータをダウンロードします。
今回は,陸上と海洋のデータをあわせてコンパイルしてある,GINA(Geographical Information Network of Alaska) global grid (アラスカ大学)のデータを使用することにしました。
グリッドデータは全球で8個に分けられていて,1つ1つが激重(200MB強)です。
ダウンロードの際は注意して,相手サーバに負担をかけないようにしましょう。
ダウンロードしてきたファイルを解凍してできたSouth_East.grdとNorth_East.grd.bz2から緯度 N10−S50° 経度 E20−80°のグリッドファイルAtlantisBank.grdを作成することにします。
切り出す範囲を決めるため,グリッドファイルの範囲を確認しておきます。
grdinfo [グリッドファイル名]
//South_East.grdの情報を見る C:\GMT>grdinfo South_East.grd South_East.grd: Title: South_East.grd: Command: grdcut -V -R0/90/-90/0 South_East/South_East_wings.grd -GSouth_East/South_East.grd South_East.grd: Remark: South_East.grd: Pixel node registration used South_East.grd: grdfile format # 0 South_East.grd: x_min: 0 x_max: 90 x_inc: 0.00833333 units: user_x_unit nx: 10800 South_East.grd: y_min: -90 y_max: 0 y_inc: 0.00833333 units: user_y_unit ny: 10800 South_East.grd: z_min: -6732.72 z_max: 5825 units: user_z_unit South_East.grd: scale_factor: 1 add_offset: 0
x_min,x_max,y_min,y_maxあたりをチェックしておきます。
次に切り出しを行います。結合にはきちんと隣り合うグリッドファイルが必要となるので,同じ経度(E20-80°)で切り出すことにします。
grdcut [gridファイル名] -G[切り出しgridファイル名] -R[西(経度)]/[東(経度)]/[南(緯度)]/[北(緯度)]
//South_East.grdをE20-80 S50-0で切り出し C:\GMT>grdcut South_East.grd -Gsouthsub1.grd -R20/80/-50/0 //North_East.grdをE20-80 0-N10で切り出し C:\GMT>grdcut North_East.grd -Gsouthsub2.grd -R20/80/0/10
次は,2つのファイルを結合します。
grdpaste [gridファイル1] [gridファイル2] -G[作成gridファイル]
// southsub1.grdとsouthsub2.grdを結合してAtlantisBank.grdを作成 C:\GMT>grdpaste southsub1.grd southsub2.grd -GAtlantisBank.grd
これでめでたくAtlantisBank.grdが完成。
grdgrdientを使います。
grdgradient [gridファイル名] -G[作成gridファイル名] -A[光を当てる方向(度)] -Ne[0.0-1.0]
-Neがよくわからないときは0.6あたりから始めると良いらしい...です。はい。私はわかってません(^_^;)
なので,以下のような感じにしました。-Aは0/90のようにして,2方向から光を当てるというのも良いらしいです。
C:\GMT>grdgradient AtlantisBank.grd -GAtlantisBank_grad.grd -A45 -Ne0.6
grdimage [グリッド.grd] -R[右経度]/[左経度]/[下緯度]/[上緯度] -Jm[cm/1度]c -C%GMTHOME%\share\[カラーパレット.cpt] -P > [出力.eps]
・ためしてみたもの
//インド洋の海底の様子を描画 C:\GMT>grdimage AtlantisBank.grd -R20/80/-50/10 -Ba10f5g5 -Jm0.5c -C%GMTHOME%\share\GMT_topo.cpt -IAtlantisBank_grad.grd -P > AtlantisBank.eps
日本周辺図と書きつつも北関東〜南東北の範囲です。原図として必要だったもので(^_^)
ここでは、海岸線を書くためのpscoastと、プロットするためのpsxy、テキストを書くためのpstextを使いました。
詳しいコマンドの使い方はそのうち書きます(^_^;
コマンドが多くなって書く量が増えるので、コマンドはバッチファイル(japan_coast.bat)にまとめました。また、県庁所在地を示すためのデータファイル(japan_pref_capital.txt)も用意しました。
pstextに使用するデータファイルの書式は、
経度 緯度 フォントサイズ 角度 フォント番号 位置合わせ 文字データ
の順番で。
フォント番号の確認は pstext -Lで。ちなみに日本語フォントはRyumin-Lightが35、GothicBBB-Mediumが37と表示されたので使えそう。と言うわけで文字データには漢字を使ってみました。なお、保存時には適当なテキストエディタで文字コードをEUC-JPにしないと表示されません。
位置合わせは、横位置(Left/Center/Right)、縦位置(Top/Middle/Bottom)の頭文字の組合せで。右上を指定座標にあわせるならRTみたいな感じに。
以上を試した結果が右の図。GSviewで問題なく表示できました。
REM 描画範囲の設定 SET region=137.5/34.8/141.5/38.8r REM 投影法・倍率の設定 SET proj=s139.5/38/1:2500000 REM 海岸線の解像度 SET resolution=h REM 地図周りの設定 SET boundary=a1g1WSne REM 出力ファイル名の設定 SET epsfile=japan_coast.eps REM 調査地点名ファイルの設定 SET pointlist=japan_pref_capital_kanji.txt REM 都市名ファイルの設定 SET citylist=japan_pref_capital_kanji.txt pscoast -R%region% -J%proj% -B%boundary% -D%resolution% [本来は1行で] -A50 -G128/255/128 -S128/128/255 -W -P -K -V > %epsfile% psxy %pointlist% -R%region% -J%proj% -Sc0.2c -G255/128/128 [本来は1行で] -P -O -K -V >> %epsfile% pstext %citylist% -R%region% -J%proj% -G0/0/0 -P -O -V >> %epsfile% PAUSE
141:20.485 43:03.515 10 0 37 RB 札幌市 140:44.244 40:49.283 10 0 37 RB 青森市 141:09.096 39:42.127 10 0 37 LB 盛岡市 140:52.206 38:16.077 10 0 37 LB 仙台市 140:06.085 39:43.069 10 0 37 RB 秋田市 140:21.487 38:14.255 10 0 37 RB 山形市 140:28.038 37:45.003 10 0 37 LT 福島市 140:26.483 36:20.304 10 0 37 LT 水戸市 139:53.000 36:33.555 10 0 37 LB 宇都宮市 139:03.391 36:23.282 10 0 37 LT 前橋市 139:38.563 35:51.276 10 0 37 LB さいたま市 140:07.223 35:36.160 10 0 37 LB 千葉市 139:41.299 35:41.221 10 0 37 RT 東京都 139:38.329 35:26.518 10 0 37 LT 横浜市 139:01.234 37:54.088 10 0 37 RB 新潟市 137:12.412 36:41.422 10 0 37 LB 富山市 136:39.268 36:33.461 10 0 37 RB 金沢市 136:13.179 36:03.546 10 0 37 RB 福井市 138:34.062 35:39.507 10 0 37 RB 甲府市 138:10.512 36:39.046 10 0 37 LB 長野市 136:43.196 35:23.281 10 0 37 LB 岐阜市 138:22.586 34:58.368 10 0 37 LT 静岡市 136:54.234 35:10.487 10 0 37 LB 名古屋市 136:30.310 34:43.488 10 0 37 LT 津市 135:52.065 35:00.157 10 0 37 LT 大津市 135:45.199 35:01.156 10 0 37 RB 京都市 135:31.107 34:41.107 10 0 37 CB 大阪市 135:10.589 34:41.285 10 0 37 RT 神戸市 135:49.582 34:41.069 10 0 37 LT 奈良市 135:10.030 34:13.336 10 0 37 LT 和歌山市 134:14.156 35:30.139 10 0 37 LB 鳥取市 133:03.017 35:28.197 10 0 37 RB 松江市 133:56.042 34:39.420 10 0 37 RB 岡山市 132:27.343 34:23.483 10 0 37 RB 広島市 131:28.148 34:11.091 10 0 37 RB 山口市 134:33.333 34:03.567 10 0 37 LT 徳島市 134:02.357 34:20.244 10 0 37 RT 高松市 132:45.562 33:50.298 10 0 37 RT 松江市 133:31.512 33:33.349 10 0 37 LT 高知市 130:25.055 33:36.223 10 0 37 RB 福岡市 130:17.589 33:14.578 10 0 37 LB 佐賀市 129:52.245 32:44.415 10 0 37 RT 長崎市 130:44.294 32:47.231 10 0 37 LT 熊本市 131:36.449 33:14.175 10 0 37 LB 大分市 131:25.246 31:54.388 10 0 37 LB 宮崎市 130:33.285 31:33.365 10 0 37 LT 鹿児島市 127:40.513 26:12.451 10 0 37 RB 那覇市