孔祥雪,王萬(wàn)寧
(遼寧省地震局,遼寧 沈陽(yáng) 110034)
GMT,全稱Generic Mapping Tools,一般翻譯成“通用制圖工具”。其是擁有80多種命令行工具的開(kāi)源繪圖軟件,支持30多種地圖投影,自帶模塊包括海岸線、河流、國(guó)界等數(shù)據(jù)信息,用于繪制不同類型的專題地圖[1-2]。GMT是純命令行的輸入方式,所有的繪圖操作都是通過(guò)命令行代碼執(zhí)行的。命令行相對(duì)于圖形界面的優(yōu)勢(shì)在于內(nèi)存占用更低;精確控制圖形的顯示,例如線條寬度、圓的大小;方便寫成腳本,具有可批量處理、可重復(fù)、可自動(dòng)化的特點(diǎn)。GMT將繪圖及數(shù)據(jù)處理功能劃分到不同的模塊,各個(gè)模塊之間相互獨(dú)立且代碼量少,易于更新和維護(hù);繪圖步驟之間以及涉及的數(shù)據(jù)類型獨(dú)立性強(qiáng),因而應(yīng)用領(lǐng)域較廣;可在腳本語(yǔ)句中調(diào)用一系列程序,進(jìn)而繪制更為復(fù)雜的圖片。GMT輸出的圖件格式為矢量圖片格式,具有可以任意放大縮小而不失真的特點(diǎn)。GMT充分利用這種特性,可以生成高質(zhì)量的矢量圖件,并可以很容易地轉(zhuǎn)換為其他圖片格式?;谏鲜鰞?yōu)點(diǎn),GMT在地球科學(xué)領(lǐng)域得到了廣泛的應(yīng)用[3-4]。
目前GMT還提供了與MATLAB兼容的程序接口,可以在MATLAB中直接調(diào)用GMT命令;而GMT命令生成的結(jié)果,如格網(wǎng)數(shù)據(jù)(GRD)、表格數(shù)據(jù) (TABLE)、顏色表 (CPT)、文本文件(TXT)、圖片(PSFILE)等,都可以作為MATLAB變量調(diào)用運(yùn)算;此外,MATLAB中的矩陣變量可以直接作為GMT的輸入數(shù)據(jù)[5]。上述特性將MATLAB數(shù)學(xué)運(yùn)算與GMT成果繪制的功能優(yōu)勢(shì)有效地融合在一起,進(jìn)一步促進(jìn)了GMT在地球科學(xué)研究中的應(yīng)用。
目前,遼寧省地形圖通常使用MapInfo和ArcGIS等軟件進(jìn)行繪制。其中,MapInfo的含義是“Mapping+Information(地圖+信息)”即:地圖對(duì)象+屬性數(shù)據(jù)。MapInfo是一種操作簡(jiǎn)便的桌面地圖信息系統(tǒng),它具有圖形的輸入與編輯、圖形的查詢與顯示、數(shù)據(jù)庫(kù)操作、空間分析和圖形的輸出等基本功能,通過(guò)菜單條命令或工具條按鈕進(jìn)行操作,提供地圖窗口、瀏覽窗口、統(tǒng)計(jì)窗口以及幫助輸出設(shè)計(jì)的布局窗口等查看表窗口,并將結(jié)果方便地輸出到打印機(jī)或繪圖儀。總體來(lái)說(shuō),MapInfo軟件更加側(cè)重于地圖信息的屬性查詢,在地圖繪制功能方面相對(duì)較弱。ArcGIS for Desktop是對(duì)地理信息進(jìn)行編輯、創(chuàng)建以及分析的一種GIS軟件,提供了一系列的工具用于數(shù)據(jù)采集和管理、可視化、空間建模分析以及高級(jí)制圖。ArcGIS不僅支持單用戶和多用戶的編輯,還可以進(jìn)行復(fù)雜的自動(dòng)化工作流程,同時(shí)便捷地實(shí)現(xiàn)柵格圖像數(shù)字化輸入、地圖的編輯與制圖輸出、數(shù)據(jù)的編輯與管理,以及空間分析等功能,是專題圖繪制的較好選擇[6]。雖然MapInfo和ArcGIS軟件操作簡(jiǎn)單,使用方便,但是在地形繪制和等值線繪制方面存在一定的局限性。以遼寧省地形圖繪制為例,遼寧省基本地貌可概括為“六山一水三分田”,地勢(shì)大致呈現(xiàn)自北向南、由東西兩側(cè)向中部?jī)A斜的趨勢(shì),山地丘陵分列遼東、遼西兩側(cè),遼河平原位于中部,呈馬蹄形指向遼西渤海沿岸狹長(zhǎng)的海濱平原[7],境內(nèi)山脈分別位于東西兩側(cè)??紤]到遼寧省內(nèi)平原與山地丘陵地區(qū)比例均衡,且境內(nèi)山地丘陵海拔相對(duì)較低,與平原地區(qū)海拔差較小,利用MapInfo和ArcGIS軟件等現(xiàn)有手段繪制的二維地形圖存在山體陰影效果不明顯的現(xiàn)象,且難以實(shí)現(xiàn)三維地形圖的繪制。為了更好地展現(xiàn)遼寧省地形地貌特征,本文擬采用GMT軟件實(shí)現(xiàn)遼寧省二維及三維地形圖的繪制。
GMT作為一種繪圖工具,同時(shí)作為一種數(shù)據(jù)處理工具,模塊涉及多種輸入和輸出數(shù)據(jù),但概括來(lái)講,GMT軟件的輸入輸出數(shù)據(jù)類型可劃分為以下幾類。
第一類為表數(shù)據(jù),英文稱為table data,也稱為列數(shù)據(jù)或者多列數(shù)據(jù),常用于表示點(diǎn)和線。表數(shù)據(jù)中有N個(gè)記錄,每個(gè)記錄都有M個(gè)字段。表數(shù)據(jù)可以有三種形式:ASCII表、二進(jìn)制表和netCDF表。最常用的表數(shù)據(jù)形式是ASCII表,可以使用編輯器直接編輯。ASCII表中有N行M列,每行代表一個(gè)記錄,每列代表一個(gè)字段。一個(gè)記錄內(nèi)的字段之間可以用空格、制表符、逗號(hào)或分號(hào)分隔。
第二類為網(wǎng)格文件,GMT可以繪制2D網(wǎng)格數(shù)據(jù)。通常,2D網(wǎng)格文件的X方向代表經(jīng)度、Y方向代表緯度,Z值可以表示高程、重力值、溫度、速度等。也可以將XYZ格式的1D表數(shù)據(jù)網(wǎng)格化得到2D網(wǎng)格數(shù)據(jù)。GMT可以使用的2D網(wǎng)格數(shù)據(jù)有三種格式:netCDF格式、Sun光柵文件和自定義的二進(jìn)制數(shù)據(jù)格式。其中最常見(jiàn)也較為推薦的網(wǎng)格數(shù)據(jù)格式是netCDF格式,一般以.nc或.grd作為文件后綴。
第三類為CPT文件,CPT全稱是color palette table,也稱為調(diào)色板或色標(biāo)文件。CPT文件可以在grdimage、psxy、psxyz等命令中使用。一般情況下,不同的數(shù)據(jù)范圍顏色要求也不盡相同,所以可以使用makecpt或grd2cpt命令對(duì)已有的CPT(例如GMT內(nèi)置的CPT)文件進(jìn)行自定義編輯。當(dāng)然,也可以根據(jù)不同程序中的顏色配比需求手寫CPT文件,或者使用awk、perl之類的文本處理工具自動(dòng)生成CPT文件。
第四類為PS文件,GMT生成的圖片為PS文件格式,全稱是PostScript。PostScript是一種用于描述矢量圖形的頁(yè)面描述語(yǔ)言。PS是矢量圖形格式,即用點(diǎn)、線段或多邊形等數(shù)學(xué)方程的幾何元素來(lái)表示圖像。因而可以任意旋轉(zhuǎn)與縮放而不會(huì)出現(xiàn)圖像失真的情況。GMT提供了psconvert命令,可以很方便地將PS文件以任意精度轉(zhuǎn)換為jpeg、eps、png、pdf等圖片格式,以滿足不同情形下的需求。
GMT繪圖命令較為復(fù)雜,從該軟件網(wǎng)站可以獲取較為詳盡的使用手冊(cè)和模塊手冊(cè)介紹,本文以遼寧省及周邊作為繪圖區(qū)域,利用手冊(cè)總結(jié)出二維和三維地形圖的繪制方法。
利用GMT繪制2D地形圖的步驟概括如下:
(1)繪制地形底圖,加載1′×1′格網(wǎng)分辨率的earth_relief_01m.grd全球地形模型文件。
gmt grdcut earth_relief_01m.grd-R$R-G%grd%
gmt grdgradient%grd%-Ne0.7-A50-G%grd%
grdcut命令指從大區(qū)域地形中裁剪出自定義范圍的數(shù)據(jù)(本例中經(jīng)度為118°~126°E,緯度38°~44°N),該操作可降低后續(xù)梯度計(jì)算的復(fù)雜度,提高繪圖效率。grdgradient命令為制作梯度信息的網(wǎng)格文件,得到某一個(gè)方向的方向?qū)?shù)。
(2)生成并編輯調(diào)試CPT文件。
gmt grd2cpt%grd%-Cglobe-S-10000/10000/200-Z-D>%cpt%
grd2cpt命令為制作顏色表文件。-C選項(xiàng)指定生產(chǎn)的cpt文件類型,-S選項(xiàng)設(shè)置顏色表最小值和最大值和間隔,-Z選項(xiàng)生產(chǎn)連續(xù)顏色的CPT文件。
(3)繪制2D地形圖。
gmt grdimage%grd%-R-J-I%grd%-C%cpt%-Q-O-K >>$PS
grdimage命令為在地圖上繪制網(wǎng)格數(shù)據(jù)文件,-I選項(xiàng)接grdgradient計(jì)算得到的梯度文件,-C選項(xiàng)接顏色表文件。
(4)加載行政區(qū)邊界等信息。
gmt psxy%CN-border-La% -J-R$R-W0.5p-O-K >>$PS
gmt psxy%prov%-J-R$R-W1.5p/red-O-K >>$PS
gmt psxy%city%-J$J-R$R-Sc0.08c-Gblack-K-O>>$PS
gmt psxy%city%-J$J-R$R-Sc0.15c-W0.2p,black-K-O >>$PS
gmt pstext%city%-J$J-R$R-Dj0.15c/0.15c-P-K-O >>$PS
psxy為繪制線段,符號(hào)命令%CN-border-La%,%prov%,%city%分別為國(guó)界、省界、市政府所在地,-W選項(xiàng)設(shè)置線段或符號(hào)輪廓的畫筆屬性,-G選項(xiàng)設(shè)置符號(hào)或多邊形的填充色,-S選項(xiàng)表示要繪制符號(hào)類型。pstext在圖上寫文本,-D選項(xiàng)表示文本在指定坐標(biāo)的基礎(chǔ)上相對(duì)x軸和y軸的偏移。pstext命令中加載的市政府所在地標(biāo)注信息,其數(shù)據(jù)格式是經(jīng)度、緯度、字符大小、旋轉(zhuǎn)角度、字體、文本。
(5)編輯圖像的標(biāo)題、圖例等信息。
gmt psscale-DjCB+w18c/0.3c+o0/-1.7c+h-R-J-C%cpt%-BWSEN-Bxa100f50-G0/400-O-K>>$PS
psscale命令為繪制色標(biāo),-D選項(xiàng)表示色標(biāo)在圖中的位置,+w18c/0.3c表示色標(biāo)長(zhǎng)18厘米,寬0.3厘米,-C選項(xiàng)接顏色表文件,-B選項(xiàng)表示色標(biāo)間隔,-G選項(xiàng)表示截?cái)喾秶鸀?~400 m。
(6)將繪制的地形圖輸出為可移植網(wǎng)絡(luò)圖形格式(PNG)文件。
gmt psconvert$PS-A-Tg-P-Z
-A選項(xiàng)表示對(duì)PS文件進(jìn)行裁剪,僅保留其中有繪圖的部分。-T選項(xiàng)指定要轉(zhuǎn)換的圖片格式。-Z選項(xiàng)轉(zhuǎn)換完成后刪除輸入的PS文件。
基于上述步驟,利用GMT軟件繪制的遼寧省2D地形圖如圖1(左)所示。
作為對(duì)比,利用ArcGIS軟件繪制2D地形圖的步驟如下:
(1)使用ArcToolbox→Spatial Analyst工具→表面分析→山體陰影工具,輸入dem圖層,生成新的柵格數(shù)據(jù)圖層;
(2)將柵格數(shù)據(jù)圖層透明度設(shè)置為35%;
(3)將柵格數(shù)據(jù)圖層移至dem圖層上方,選擇dem圖層中符號(hào)系統(tǒng)選項(xiàng)中適合的色帶。
根據(jù)上述步驟,利用ArcGIS軟件繪制的遼寧省2D地形圖如圖1(右)所示。
圖1 基于GMT(左)和ArcGIS(右)繪制的遼寧省2D地形圖Fig.1 The 2D topographic map of Liaoning Province by using GMT (left) and ArcGIS (right) respectively
通過(guò)根據(jù)上述命令制作的地形圖,可以大致上了解遼寧地形地貌,但從圖1(左)中可以看出在地勢(shì)比較平緩的中部地區(qū)顏色的區(qū)分差別不大,東西兩側(cè)山體陰影效果不是十分顯著。通過(guò)左右兩幅圖對(duì)比,利用ArcGIS繪制的地形圖山體陰影效果相對(duì)較弱,僅僅在顏色上面區(qū)分高程較為明顯。
業(yè)務(wù)部門在使用ArcGIS軟件繪制專題圖時(shí)通常只繪制二維圖形,在三維展示模塊具有一定的局限性。因此GMT的靈活、開(kāi)源等優(yōu)勢(shì)更加得到凸顯,下面將進(jìn)一步討論GMT的三維成圖效果,并與圖1進(jìn)行對(duì)比。
利用GMT繪制3D地形圖的步驟概括如下:
(1)網(wǎng)格化數(shù)據(jù),生成grd文件。
surface%dat%-Gtmp.grd-R118/126/38/44-I2m
surface命令是數(shù)據(jù)網(wǎng)格化的一種方法。%dat%選項(xiàng)為網(wǎng)格數(shù)據(jù),-G選項(xiàng)為網(wǎng)格化后的數(shù)據(jù)文件名,-R選項(xiàng)為網(wǎng)格化經(jīng)緯度范圍,-I選項(xiàng)為指定x方向和y方向的增量。
(2)生成并編輯調(diào)試CPT文件。
grd2cpt tmp.grd-Cglobe-S-10000/10000/200-Z-V>%cpt%
grd2cpt命令制作顏色表文件。同二維地形圖。
(3)制作梯度信息的網(wǎng)格文件。
grdgradient tmp.grd-A270-Gtmp.grad grdhisteq tmp.grad-Gtmp.his-N grdmath tmp.his 0.4 x=tmp.int
grdgradient命令是制作梯度信息的網(wǎng)格文件,得到某一個(gè)方向的方向?qū)?shù),輸入文件為tmp.grd,-A選項(xiàng)設(shè)置方向?qū)?shù)的方向?yàn)?70°,輸出的文件為tmp.grad。grdhisteq命令表示網(wǎng)格文件柱狀圖均化。grdmath命令是對(duì)grd文件進(jìn)行數(shù)字計(jì)算。
(4)繪制3D地形圖。
grdview-K-O-S-P tmp.grd-JM10-JZ2.5-Ba1/a1/800:"Altitude(m)":SEwnZ-Qs-N-1/235-Itmp.int-X2-C%cpt%-R-E150/45-Y13>>$psf
grdcontour tmp.grd-J-P-O-K-E230/30-RC100-A1000+p+g255+s5-Wa3/0-X-1-Y-11.5>>$psf
grdview-O-K-S-P tmp.grd-J-JZ2.5i-Ba1/a1/800SeWnz-Qs-N-100-Itmp.int-C%cpt%-RE230/30>>$psf
grdview命令為基于二維網(wǎng)格數(shù)據(jù)文件繪制三維灰度或彩色圖像。-B選項(xiàng)設(shè)置地圖的邊框注記以及刻度間隔,-Qs選項(xiàng)表示采用表面繪制,-I選項(xiàng)表示給出一個(gè)含有照明強(qiáng)度的文件名,-E選項(xiàng)設(shè)置觀察點(diǎn)的方位角和高度角。
grdcontour命令為繪制等值線。-C選項(xiàng)表示指定等值線繪制方式,-A選項(xiàng)表示標(biāo)注標(biāo)簽信息,-W選項(xiàng)表示指定畫筆屬性。
(5)編輯圖例等信息。
psscale-E-D15/5/7/0.3-C%cpt%-Ba1000g 500/:"(m)":-O-P-V>>$psf
(6)將繪制的地形圖輸出為可移植網(wǎng)絡(luò)圖形格式(JPEG)文件。
ps2raster-A-Tj$psf
通過(guò)上述步驟,繪制遼寧省3D地形圖,如圖2所示。
圖2 遼寧省3D地形圖Fig.2 3D topographic map of Liaoning Province
圖2上圖為俯視的遼寧省三維地形圖,下圖為含有等高線的三維地形圖。圖2相比于圖1來(lái)說(shuō),在展現(xiàn)山體陰影方面有了很大的提高,同時(shí)在中部地區(qū)的平地也可以看出地形的凹凸起伏。相比二維地形圖,三維地形圖在地形地貌的表達(dá)上具有較大的優(yōu)勢(shì)。
通過(guò)上述例子可以看出,GMT可以繪制出精美直觀的二維和三維的地形圖,并且在此基礎(chǔ)上可添加行政邊界和政府所在地等信息,結(jié)果表明GMT在繪制地形圖上具有操作方便、圖形美觀等優(yōu)勢(shì)。此外,GMT軟件同樣實(shí)現(xiàn)了地形圖由平面到立體,由抽象到直觀,打破了二維平面展示和二維可視的限制,更好的展現(xiàn)了遼寧省地形,為后續(xù)基于地形圖繪制地震應(yīng)急專題圖等方面提供積極性的參考。