GIS - GMT で正距方位図法!
Updated:
GMT(The Generic Mapping Tools) で、正距方位図法(Azimuthal Equidistant Projection)で描画する方法についての記録です。(「正距方位図法」は、中心からの距離と方位が正しく表され、地球全体を描画した場合は真円となる投影法です)
0. 前提条件
- LMDE2 (Linux Mint Debian Edition 2; 64bit) での作業を想定。
- GMT 5.1.1 での作業を想定。
1. bash スクリプトの作成
以下、2種類の地図を描画するスクリプト。(説明は後述)
- 指定した中心地点から90度の範囲を全て描画。
- 描画範囲を指定して描画。
File: gmt_aep.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#! /bin/bash
#
FNAME_1="imgs/JAPAN_AEP_1.ps"
FNAME_2="imgs/JAPAN_AEP_2.ps"
DPI=100
LAT=35.468056
LON=133.048611
TITLE="Azimuthal Equidistant Projection"
# GMT 設定
gmtset PS_MEDIA = Custom_20cx22c
# 正距方位図法-1
pscoast -P -JE$LON/$LAT/18 -R-180/180/-90/90 -Dl -Wthinnest,black -Gwheat -S200/255/255 -Bg10:."$TITLE": -X1 -Y1 -K > $FNAME_1
echo $LON $LAT | psxy -JE -R -S+18c -Wthin,red -O >> $FNAME_1
ps2raster $FNAME_1 -Tg -Qt -Qg -E$DPI
# 正距方位図法-2
pscoast -P -JE$LON/$LAT/17 -R120/20/-90/20r -Dl -Wthinnest,black -Gwheat -S200/255/255 -Bg10a30:."$TITLE": -X1.5 -Y1.5 -K > $FNAME_2
echo $LON $LAT | psxy -JE -R -S+34c -Wthin,red -O >> $FNAME_2
ps2raster $FNAME_2 -Tg -Qt -Qg -E$DPI
以下、説明。
- 各種定数
FNAME_1
保存ファイル名(正距方位図法-1用)FNAME_2
保存ファイル名(正距方位図法-2用)DPI
解像度LAT
中心地点の緯度(例は松江市役所の緯度)LON
中心地点の経度(例は松江市役所の経度)TITLE
地図のタイトル※未設定のため、日本語非対応
gmtset
GMT 設定PS_MEDIA = Custom_20cx22c
用紙サイズを「20cm x 22cm のカスタム設定」に設定
pscoast
海岸線等の描画(正距方位図法-1)-P
用紙を「ポートレート」に設定-JE$LON/$LAT/18c
地図投影法を「正距方位図法」に設定し、経度、緯度を$LON
,$LAT
の値、幅を「18cm」に設定-R-180/180/-90/90
描画対象範囲を「西経180度〜東経180度、南緯90度〜北緯90度」に設定-Dl
使用する海岸線データを LOW に設定-Wthinnest,black
海岸線の太さを「極細」、色を「黒」に設定-Gwheat
陸域の色を「小麦色」に設定-S200/255/255
海域の色を水色に設定-Bg10:."$TITLE":
経/緯線の描画間隔を「10度」、タイトルを $TITLE の値に設定-X1 -Y1
左、下からのオフセット値を「1cm」、「1cm」に設定-K
更に追記可能となるよう設定(当pscoast
コマンドで描画終了なら不要)> $FNAME_1
出力ファイルを指定
pscoast
海岸線等の描画(正距方位図法-2)※正距方位図法-1と異なる部分のみ-R120/20/-90/20r
描画範囲左下の経度を「東経120度」、緯度を「北緯20度」、右上の経度を「西経90度」、緯度を「北緯20度」に設定-Bg10a30:."$TITLE":
経/緯線の描画間隔を「10度」、ラベルの出力間隔を「30度」、タイトルを $TITLE の値に設定-X1.5 -Y1.5
左、下からのオフセット値を「1.5cm」、「1.5cm」に設定
- プロットデータの作成
echo $LON $LAT |
経度、緯度の情報を出力して次のコマンドにパイプ
psxy
線等のプロット-JE
地図投影法を「正距方位図法」に設定-R
描画対象範囲を設定(値なし)-S+18c
+記号を中心から上下左右「18cm」の大きさで設定-Wthin,red
描画記号の太さを「細」に、色を「赤」に設定-O
既存ファイル(-K
で作成された画像ファイル)に追記するよう設定>> $FNAME_1
追記する出力ファイルを指定(正距方位図法-2用は>> $FILE_2
)
ps2raster
PS ファイルを別の画像ファイルに変換- 第1引数は、変換する PostScript ファイル
-Tg
PNG 形式に変換する設定-Qt
アンチエイリアスをテキストに対して設定-Qg
アンチエイリアスをグラフィックスに対して設定-E$DPI
解像度を$DPI
の値に設定
2. bash スクリプトの実行
$ ./gmt_aep.sh
3. 画像の確認
psxy
コマンドの -Sc
オプションでは半径を「センチ/インチ/ドット」でしか指定できないため、正距方位図法の中心を円の中心として半径 X km の円を描画しようとする場合は少々考える必要がありそうです。
以上。
Comments