Generic Mapping Tools 題目:在Ubuntu系統中使用GMT
報告者:0317020鄧宇彤

前言

GMT 的全名是 Generic Mapping Tools,它是一套多功能的製圖工具,可用於科學繪圖,大部分想得到的圖表種類,都可以利用 GMT 內附的指令來完成。
GMT的強大之處在於地理資料的處理與地圖的繪製,使用者可以藉由一個個指令完成高解析度的地圖
如果你有製作地圖的需求,不管是全球地圖還是自家附近的街道圖,都可以考慮使用 GMT

Linux 下安装GMT

1.打開終端機,輸入以下訊息
sudo apt-get install gmt gmt-dcw gmt-gshhg

如果是其他發行版的用戶可以到https://pkgs.org/ 查詢自己的Linux發行版軟件中是否包含GMT以及GMT的具體版本



2.有時GMT如果不是最新版本,在畫圖上會出現”指令不相符”的問題,這時候輸入以下訊息
sudo apt-get update



就能更新GMT

3.此外,使用GMT需要另外下載ghostscript以及ghostview,才能叫出畫好的地圖並瀏覽

輸入以下訊息
sudo apt-get install ghostscript



以及 sudo apt-get install gv



如此一來就完成安裝了!!

操作GMT

GMT中最簡單的繪圖指令,就是pscoast,它可以用來繪製海岸線地圖,這個指令特別的地方在於它不用給額外的輸入檔,因為GMT的標準安裝內已經附有海岸線、國界、河流的基本資料,pscoast就是從資料庫裡讀取資料,搭配給予的參數畫出地圖
地圖繪製好後,可以利用GMT本身的參數來決定地圖樣式

使用之前

pscoast是用如下語法操作:
$ pscoast –(指令)[參數 參數 參數]
所有以負號(-)開頭的文字都代表指令,而不是負號開頭的文字,就代表參數

指令參考如下:



GMT使用範例 繪製北海(North sea)

1.找出地圖所要繪製的區域(Region)

要繪製地圖之前,首先要找出想繪製的地區,可以使用google map找出經緯度



範例的北海區域為西經17.08到東經20.29;北緯49.84到62.85
將找到的範圍輸入指令中


-R後面的參數分別代表西邊界/東邊界/南邊界/北邊界,此外如果座標是西經或南緯,則要寫作負數

2.套用投影法

除了找出區域外,繪製一張地圖還需要設定投影法,GMT中以-J設定投影法,在這裡我們使用麥卡托投影法


-J後面的m代表麥卡托投影,0.5c代表地圖寬度為0.5cm,若是想換成英吋只要把c換成i(inch)即可

3.繪圖樣式

除了最重要的區域以及投影法,GMT還會要求我們至少設定一種繪圖樣式,我們可以就 海岸線屬性、底色、解析度、地圖刻度、標題 等做設定

3.1海岸線屬性

線條粗細有三種屬性:粗細、顏色、樣式


o.1p代表1/72英吋,black代表黑色,如果沒設定樣式,GMT就會用預設的實心線條作圖

因為已經設定了區域、投影法以及一個額外的繪圖樣式,這時就可以執行pscoast,並將匯出的檔案命名為north_sea.ps
因為GMT產生的不是地圖,而是一串程式碼,我們必須把這些程式碼藉由 ">" 轉換之後,再用ghostview或者ghostscript開啟


現在我們用ghostview開啟

輸入$ gv north_sea.ps以開啟


出現的地圖只有最簡單的線條,接著要替它的海洋跟陸地加上顏色

3.2地圖顏色

使用的分別是 -G 以及 –S 作為參數



關於顏色的設定可以參考以下網址:
http://docs.gmt-china.org/color.html

3.3解析度

Pscoast控制輸入資料解析度的參數是 –D,接受的設定值有f、h、i、l、c,分別是完整、高、中等、低、粗糙




3.4地圖刻度

GMT使用 –B設定地圖的邊框


a2代表每隔兩度標示座標;f0.5代表每隔0.5度標示刻度;g1代表每隔一度畫一一條格線


這個 –B的功用是調整地圖四邊的配置,用WSEN代表東南西北,大寫表示加上邊框與數值,小寫表示只加上邊框不加數值,如果沒有字母就代 表不加邊框



另外,第二個 –B的後面可以加上 +t 藉此輸入地圖的標題

最終指令稿

範例的地圖,其最終指令稿如下:




參考
http://web.fg.tp.edu.tw/~earth/vision/study/satellite06/gmt.htm/
http://docs.gmt-china.org/index.html


範例作業