LoginSignup
4
8

More than 3 years have passed since last update.

はじめてのGMT6「九州を描く」

Last updated at Posted at 2020-05-06

手軽に地図を作成できるツールとして、GMT(The Generic Mapping Tools)があります。
筆者はこれまでGMT5を使っていましたが、昨年2019年の11月にver6.0.0が出たようですので、GMT6に挑戦してみることにしました。
すぐ忘れてしまう筆者の備忘録も兼ねて、ここにGMT6の使い方を記録していきたいと思います。

地図描画の基本を押さえていく

basemap

gmt basemapを使って、地図を描くのに必要な基本情報を与えていきます。
早速
地図の投影法
縮尺
描画範囲
目盛りの取り方
その他の装飾
を決めていきます。

①メルカトル図法や正距方位図法など様々な地図の投影法が存在しますが、その詳細については割愛します。
そして今回はよく目にするメルカトル図法を採用します。
②縮尺(地図の大きさ)は5万分の1(1:50000)のようにも指定できますし、図の幅(例えば15cm)のようにも指定できます。今回は15cmにしましょう。
③描画範囲は「九州を描く」ことを目的にしていますので、ざっくりと東経128度〜東経133度、北緯30度〜北緯35度の範囲にします。
④目盛りの取り方は、GMTに丸投げしました(笑)
⑤最後に、軸のラベルは東西南北全方向につけることとし、図のタイトルとして「Kyushu」を描くようにします。

上記のような条件で地図を描く準備をします。

kyushu.sh
#!/bin/bash
gmt begin kyushu png
    gmt basemap -JM15 -R128/133/30/35 -Bafg -BWSNE+t"Kyushu"
gmt end

-Jオプションで投影法と図のサイズを決めます。M15図の幅が15cmの地図をメルカトル図法で描くという意味です。
-Rオプションで描画範囲を決めます。128/133/30/35東経128度〜東経133度、北緯30度〜北緯35度の範囲という意味です。
-Bオプションで図の目盛りなどの調整をします。aは基本となる目盛り(目盛のケバの間隔)、fは細かい目盛り(枠のケバの間隔)、gでグリッドの幅(格子線の間隔)が決まるようです。a2f1のようにすれば、2度ずつの目盛りと1度ずつの小さな目盛りをつけられることになります。さらにWSNE東西南北に軸ラベルをつけること、+t"Kyushu"「Kyushu」というタイトルをつけることを指定しています。

さてこれを実行すると、次のような図が出力されます。
kyushu.png

思い通りの枠と九州(概念)が描かれました!

coast

ここからは九州(概念)を顕在化させていきます。
gmt coastを使って、陸地の情報を加えます。

kyushu.sh
#!/bin/bash
gmt begin kyushu png
    gmt basemap -JM15 -R128/133/30/35 -Bafg -BWSNE+t"Kyushu"
    gmt coast -Df -W0.05
gmt end

-Dオプションで地図の精度を決めます。full, high, intermediate, low, crudeの5種類で、fが一番精細になります。cでもやってみてください。ひどいですよ。
-Wオプションで線の幅を決めます。0.05では0.05ポイントの幅の線となります。

すると、どうでしょう。
image.png

見事に九州周辺を描くことができました!

陸地や海に色もつけたい

このままでは味気ないので色もつけてみましょう。ついでにスケール(縮尺)も付けておきます。
gmt coastでいけます。

kyushu.sh
#!/bin/bash
gmt begin kyushu png
    gmt basemap -JM15 -R128/133/30/35 -BWSNE+t"Kyushu"
    gmt coast -Df -W0.05 -G103/202/77 -S186/223/229 -Lg130.5/29.5+c32+w300+f+l"km" -Bafg 
gmt end

-Gオプションで陸地(乾いた領域)の色を、-Sオプションで海(湿った領域:水域)の色を指定することができます。今回はRGBで指定しました。
-Lオプションでスケールを書き加えます。-Lg130.5/29/7は地図上の座標でスケールの中心位置を決めています。-Lxで紙面における位置でも指定できます。+c32北緯32度における距離を用いる意味です。地球は球体ですので、指定する緯度によって経度方向の距離が変わってきます。+w300300kmのスケールを描画すること、+f白黒の棒で表現すること、+l"km"kmのラベルをつけることを意味しています。
また、基本的に後から加えたコマンドは上書きされていくため、グリッド線が隠れないようにgmt coast-Bafgを使っています。
image.png
これでだいぶ地図らしくなったと思います!

次回予告

今回はここまでにします。
参考にしたのは以下のdocumentationです。英語ですが…
basemap
coast

次回で、DEM(数値標高モデル)を使った陰影段彩図が描けるようにしたいと思います。
ありがとうございました!

4
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
8