分類: 實用工具

GMT:繪製地圖的工具集(The Generic Mapping Tools)

GMT (The Generic Mapping Tools) 是一個開放原始碼的繪製地圖工具集,源自於 1987 年哥倫比亞大學拉蒙特-多爾蒂地球觀測站(Lamont-Doherty Earth Observatory)的兩位學生 Paul Wessel 與 Walter H. F. Smith,而後由美國國家科學基金會贊助,發展至今,全球已經約有一萬名使用者。



GMT 仿照 UNIX 的設計哲學,將各種複雜的功能切割成數十個小工具,使每個小工具皆可以輕易且獨立地維護或是配合其他 UNIX 上的工具使用,以增加使用上的彈性,而其主要輸出的圖檔格式為 PS (PostScript) 檔,因此使用 GMT 所畫出來的圖形品質都很不錯,目前 GMT 已經可以在各種平台上運行,像 Windows、Linux、Mac OS 等。

使用 GMT 畫出來的圖看起來似乎很漂亮,但基本上 GMT 是一個以指令導向來設計的工具集,不論在哪一種平台之下,任何操作還是要透過指令來下達,在了解各種指令之前,還必須先對 UNIX 的基本概念有初步的認識,這對一般使用者來說實在是個不小的負擔。如果想降低學習 GMT 的難度,可以選用 iGMT 或是 Win4GMT (Windows) 這兩套 GUI,不過我個人覺得真的要畫出漂亮的圖形,那些艱澀的指令還是不可或缺的。至於 GMT 的文件可能因為華人的使用人數不多,網路上幾乎沒有什麼中文的教學,還是官方的英文教學文件最完整而且最詳細,想學的話還是要去看英文的。

在使用 GMT 畫圖時,可以使用自己的資料或是 GMT 套件中所附贈的資料來畫圖,在 GMT 套件中有附贈五種解析度的全球海岸線、河川以及國家邊界資料,使用者可以依據自己的需求來挑選適合的解析度使用,而海拔高度的資料則可以在 NGDCUCAR 的網站免費下載下載使用。

以下是這四張圖所用的指令稿,GMT 有數十個工具,能畫的圖不只這些,在 GMT 的官方網站還有更多的範例,而且每個範例都有指令稿可以下載,對初學者來說非常有幫助。

Example 1
第一張圖:

makecpt -Cglobe -T-3000/3000/100 -Z > colors.cpt
grdimage etopo2.grd -Ba2g2 -R110/125/20/35 -P -Yc -Xc -JM15c -Ccolors.cpt -K > taiwan1.ps
psscale -Ba1000f100::/:"m": -Ccolors.cpt -D7.5c/-2c/15c/.35ch -O >> taiwan1.ps

Example 2
第二張圖:

pscoast -R70/135/15/55 -Jm0.1i -B10 -I1/1p,130/130/255 -I2/0.5p,130/130/255 -N1/0.5p,yellow,-  -W0.25p,white  -G10/150/10  -S50/50/215  -P  > taiwan2.ps

Example 3
第三張圖:

latitude=25
longitude=115
altitude=660.0
tilt=0
azimuth=0
twist=0
Width=0.0
Height=0.0

PROJ=-JG${longitude}/${latitude}/${altitude}/${azimuth}/${tilt}/${twist}/${Width}/${Height}/4i

pscoast -Rg $PROJ -X1i -B5g5/5g5 -Na -Glightbrown -Slightblue -W0.25p -Dl -N1/1p,red -N2,0.5p -P -K -Y5i > taiwan3.ps

latitude=26
longitude=124
tilt=55
azimuth=210
twist=45
Width=30.0
Height=30.0

PROJ=-JG${longitude}/${latitude}/${altitude}/${azimuth}/${tilt}/${twist}/${Width}/${Height}/5i

pscoast -R $PROJ -B5g5/5g5 -Glightbrown -Slightblue -W0.25p -Ia/blue -Di -Na -O -X1i -Y-4i >> taiwan3.ps

Example 4
第四張圖:

makecpt -Cglobe -T-3000/3000/100 -Z > colors.cpt
grdcut etopo2.grd -Gtaiwan.grd -R100/125/20/35 -fg
grdgradient taiwan.grd -A30 -Ggrad.grd
grdhisteq grad.grd -Ggradhisteq.grd -N
grdmath gradhisteq.grd 0.5 x = intensity.grd
grdview taiwan.grd -R100/125/20/35 -Ba5 -JM6i -Jz0.0002 -Qi100 -Ccolors.cpt -P -Iintensity.grd > taiwan4.ps

如果在 Ubuntu Linux 中要安裝 GMT 的話,可以直接使用 apt-get 來安裝:

sudo apt-get install gmt gmt-coast-low gmt-examples gmt-doc-pdf gmt-tutorial gmt-tutorial-pdf

其中 gmt 是最主要的套件,gmt-coast-low 是低解析度的海岸線資料,而其餘的就是一些範例資料與文件。如果想知道還有哪些 GMT 相關套件可以使用,就用 apt-cache 來查詢:

apt-cache search gmt
G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Share
Published by
G. T. Wang

Recent Posts

光陽 KYMCO GP 125 機車接電發動、更換電瓶記錄

本篇記錄我的光陽 KYMCO ...

2 年 ago

[開箱] YubiKey 5C NFC 實體金鑰

本篇是 YubiKey 5C ...

3 年 ago

[DIY] 自製竹火把

本篇記錄我拿竹子加上過期的苦茶...

3 年 ago