辛 蕊,趙瑞斌
(天津城市建設(shè)學(xué)院 a. 土木工程系;b. 天津市軟土特性與工程環(huán)境重點(diǎn)實(shí)驗(yàn)室,天津 300384)
隨著地理信息系統(tǒng) GIS(geographic information systems)在我國(guó)各個(gè)領(lǐng)域日益廣泛的應(yīng)用,大量 GIS數(shù)據(jù)資源應(yīng)運(yùn)而生.但由于數(shù)據(jù)存儲(chǔ)格式和結(jié)構(gòu)的差異,使得數(shù)據(jù)的綜合利用存在諸多不便.鑒于中國(guó)地質(zhì)行業(yè)要求 MapGIS格式文件為資料匯交的標(biāo)準(zhǔn)格式,筆者從實(shí)用的角度出發(fā),提出 ArcGIS,MapInfo向MapGIS數(shù)據(jù)轉(zhuǎn)換的方法.
MapGIS是中地公司開發(fā)的工具型地理信息系統(tǒng)軟件,它的特點(diǎn)是:輸入、編輯、拓?fù)湟惑w化.同時(shí),在制圖功能方面(包括各種專題圖例符號(hào)的制作)較其他軟件方便、靈活,但它對(duì)空間數(shù)據(jù)庫(kù)的支持性能不太理想.
MapGIS的數(shù)據(jù)交換格式是 ASCII碼的明碼文件,其文件結(jié)構(gòu)由文件頭和數(shù)據(jù)區(qū)兩部分組成.文件頭記錄的是文件的版本和類型信息,數(shù)據(jù)區(qū)記錄的是實(shí)體的幾何信息.明碼文件按要素類型分為點(diǎn)(*.wt)、線(*.wl)、區(qū)(*.wp)3 種文件[1].
ArcGIS是美國(guó)環(huán)境系統(tǒng)研究所(ESRI)開發(fā)的旗艦產(chǎn)品,它對(duì)空間數(shù)據(jù)庫(kù)的支持很強(qiáng),但是地圖編輯功能較弱.
與 MapGIS不同,ArcGIS的數(shù)據(jù)格式與表示特征的類型無(wú)關(guān),針對(duì)全國(guó)地形圖等常用資源,主要有shape,coverages兩種格式:shape是一種矢量數(shù)據(jù)格式,本身支持點(diǎn)、線、區(qū)域的幾何特征,不處理拓?fù)鋽?shù)據(jù)結(jié)構(gòu)文件頭[2],通常由一個(gè)主文件、索引文件和dbase文件組成;coverages也是一種矢量數(shù)據(jù)格式,幾何和空間拓?fù)潢P(guān)系存儲(chǔ)在二進(jìn)制文件中,與之相關(guān)的屬性數(shù)據(jù)則被存放在 Info表或 RDBMS中,coverages是對(duì)要素類組織后的集合,每個(gè)要素類都是一些點(diǎn)、線、面或文本的集合,一個(gè)或多個(gè) coverages要素被用于構(gòu)造地理要素[3].
MapInfo是美國(guó) MapInfo公司推出的適用于不同平臺(tái)的GIS系統(tǒng),對(duì)空間數(shù)據(jù)管理采用無(wú)拓?fù)涫噶拷Y(jié)構(gòu).它的主要優(yōu)勢(shì)是:在空間數(shù)據(jù)庫(kù)管理和分析方面簡(jiǎn)單、易學(xué)、實(shí)用,但 GIS空間分析能力較弱,且制圖功能欠佳,對(duì)制作復(fù)雜的圖件尤其存在明顯不足,如點(diǎn)、線不能隨比例尺縮放,打印控制不夠精確等[4].
在 MapInfo中每張地圖被稱為一個(gè)表.每個(gè)表由圖形(空間對(duì)象)和數(shù)據(jù)(屬性)構(gòu)成,它們分別被存放到 tab(屬性數(shù)據(jù)的表結(jié)構(gòu)文件),dat(屬性數(shù)據(jù)文件),map(空間數(shù)據(jù)文件)和 id(交叉索引文件)四個(gè)文件中.另外,MapInfo還給出了用于格式交換的數(shù)據(jù)結(jié)構(gòu),即mif文件與mid文件.其中,mif文件保存了該 MapInfo表的表結(jié)構(gòu)及表中所有空間對(duì)象的空間信息:每個(gè)點(diǎn)對(duì)象的點(diǎn)位坐標(biāo)、符號(hào)樣式;每個(gè)線對(duì)象的節(jié)點(diǎn)個(gè)數(shù)、節(jié)點(diǎn)坐標(biāo)、線樣式;每個(gè)區(qū)域?qū)ο蟀淖訁^(qū)域個(gè)數(shù),每個(gè)子區(qū)域的節(jié)點(diǎn)數(shù)、節(jié)點(diǎn)坐標(biāo)、填充模式.而mid文件則按記錄順序保存了每個(gè)空間對(duì)象的所有屬性信息.這兩個(gè)文件都為文本性質(zhì)的文件,用戶可以通過(guò)相應(yīng)的讀寫方法實(shí)現(xiàn)對(duì)文件內(nèi)容的讀寫.
常見(jiàn)的 ArcGIS文件主要有 coverages(*.adf)和shape(*.shp)兩種,由于 coverages文件以二進(jìn)制形式存儲(chǔ),需要將其先轉(zhuǎn)化為shape文件.
2.1.1 coverages文件轉(zhuǎn)化為shape文件
首先要?jiǎng)?chuàng)建一個(gè)空的shape文件.在ArcGIS的ArcCatalog模塊目錄樹中,單擊需要在其中創(chuàng)建shape文件的文件夾,在右鍵菜單中選擇 New-Shapefile,打開Creat New Shapefile對(duì)話框,在Name和Feature Type中分別填入文件名及地理要素類型,在Spatial Reference中選擇空間參考坐標(biāo)類型.創(chuàng)建shape文件后,就可以在其屬性對(duì)話框的Field選項(xiàng)板中定義其屬性.在添加屬性項(xiàng)之后,必須啟動(dòng)ArcMap的編輯功能才能定義這些屬性項(xiàng)的數(shù)值[5].
然后運(yùn)行 ArcCatalog,打開 Arctoolbox工具欄中Data Manager Tool-General目錄下的Append對(duì)話框,選擇一個(gè)或多個(gè)要放在同一圖層的文件作為輸入數(shù)據(jù),并選擇上一步中創(chuàng)建的空 shape文件作為目標(biāo)數(shù)據(jù),在 Schema Type框的下拉菜單中選擇NO_TEST,點(diǎn)擊 OK,如圖1所示,即完成了 coverages文件到shape文件的轉(zhuǎn)換.
圖1 coverages文件向shape文件轉(zhuǎn)換界面
2.1.2 shape 文件轉(zhuǎn)換為 wt,wl,wp 文件
在 MapGIS的主菜單中選擇“圖形處理”,然后點(diǎn)擊“文件轉(zhuǎn)換”,在打開窗口的菜單欄中選擇“輸入-裝入 shape文件”,打開需要轉(zhuǎn)換的文件,然后依據(jù)文件的點(diǎn)、線、面屬性,在“文件”中將其保存為相應(yīng)的MapGIS格式文件.
MapInfo文件主要有 tab和 mif兩種,由于 mif文件的存儲(chǔ)模式更適合數(shù)據(jù)交換,所以對(duì)于 tab文件,要先將其轉(zhuǎn)化為mif文件.
2.2.1 tab文件轉(zhuǎn)化為mif文件
首先在MapInfo的主菜單中選擇File-Open Table,并打開需要轉(zhuǎn)化的文件,再在 Table-Export中選擇導(dǎo)出文件(*.mif)的保存路徑,保存即可,如圖2所示.
圖2 tab文件向mif文件轉(zhuǎn)換界面
2.2.2 mif文件轉(zhuǎn)化為 wl,wp,wt文件
該轉(zhuǎn)換步驟基本與 shape文件轉(zhuǎn)換為 wt,wl,wp文件的步驟一致,不同的是在“輸入”菜單中選擇“裝入MapInfo數(shù)據(jù)”,這樣就完成了MapInfo文件的轉(zhuǎn)化.
采用上述方法,將 ArcGIS和 MapInfo轉(zhuǎn)換成的文件在同一MapGIS工程中打開,發(fā)現(xiàn)MapInfo轉(zhuǎn)換成的MapGIS文件質(zhì)量更高一些.通過(guò)對(duì)比三個(gè)軟件的數(shù)據(jù)格式,發(fā)現(xiàn)mif文件的存儲(chǔ)模式和MapGIS的點(diǎn)、線、區(qū)文件模式十分接近.tab文件的索引模式與shape文件比較接近,又因 MapInfo中的通用轉(zhuǎn)換器能做到 shape等多種文件與 tab,mif文件之間的轉(zhuǎn)化,如圖3所示,故可利用 MapInfo文件作為中間文件進(jìn)行轉(zhuǎn)換.
圖3 通用轉(zhuǎn)換器轉(zhuǎn)換界面
對(duì)于同一 shape文件,分別采用以下四種方式進(jìn)行轉(zhuǎn)換:①直接轉(zhuǎn)為 MapGIS文件;②先轉(zhuǎn)為 mif文件,再轉(zhuǎn)為 MapGIS文件;③先轉(zhuǎn)為 tab文件,再轉(zhuǎn)為mif文件,最后轉(zhuǎn)為 MapGIS文件;④先轉(zhuǎn)為 mif文件,后轉(zhuǎn)為 tab文件,再轉(zhuǎn)為 mif文件,最后轉(zhuǎn)為MapGIS文件.通過(guò)多次操作發(fā)現(xiàn):采用方法①得到的文件屬性數(shù)據(jù)缺失嚴(yán)重;采用方法②、③、④得到的數(shù)據(jù)與原數(shù)據(jù)基本吻合,但所有元素均表現(xiàn)為黑色,如表1所示.另外,相對(duì)于方法③、④,通過(guò)方法②得到的文件,部分圖形符號(hào)不能正確顯示,需在MapGIS中做出相應(yīng)的調(diào)整;采用方法③時(shí)偶爾會(huì)出現(xiàn)轉(zhuǎn)換失敗的現(xiàn)象,而使用方法④的成功率較高.
表1 數(shù)據(jù)轉(zhuǎn)換方式結(jié)果比較
綜合分析以上轉(zhuǎn)換方式,建議 shape文件向MapGIS文件轉(zhuǎn)換的方法為:對(duì)于區(qū)文件,直接利用MapGIS文件轉(zhuǎn)換模塊輸入轉(zhuǎn)換為區(qū)文件(*.wp);對(duì)于點(diǎn)文件和線文件,先利用 MapInfo的通用轉(zhuǎn)換器將shape文件轉(zhuǎn)換成mif文件,然后將mif文件轉(zhuǎn)換成tab文件,再將tab文件轉(zhuǎn)換成mif文件,最后利用MapGIS文件轉(zhuǎn)換模塊將mif文件轉(zhuǎn)換為MapGIS標(biāo)準(zhǔn)數(shù)據(jù)格式.
在空間數(shù)據(jù)處理過(guò)程中,容易在投影變換、數(shù)據(jù)抽象、建立拓?fù)潢P(guān)系、數(shù)據(jù)集成處理、數(shù)據(jù)的可視化表達(dá)等方面產(chǎn)生誤差[6].通過(guò)實(shí)際操作,發(fā)現(xiàn)在上述方法的轉(zhuǎn)換過(guò)程中,數(shù)據(jù)抽象、投影變換和數(shù)據(jù)的可視化誤差最為明顯,進(jìn)而提出相應(yīng)的解決方法.
3.2.1 數(shù)據(jù)抽象
在數(shù)據(jù)轉(zhuǎn)換過(guò)程中,比例尺及圖形參數(shù)比例會(huì)發(fā)生一定變化,此時(shí),數(shù)據(jù)所表達(dá)的空間特征位置也會(huì)相應(yīng)產(chǎn)生誤差.
修正這些比例參數(shù)的方法是:在MapGIS輸入編輯模塊里,選擇工作臺(tái)右鍵菜單中的“修改地圖參數(shù)”,選擇需要設(shè)置的文件,在彈出的“設(shè)置地圖參數(shù)”對(duì)話框中修改比例參數(shù)即可.
3.2.2 投影變換
地圖投影是開口的三維地球橢球面到二維場(chǎng)平面的拓?fù)渥儞Q.在不同投影形式下,地理特征的位置、面積和方向的表現(xiàn)會(huì)有差異.由于三個(gè)軟件的坐標(biāo)系統(tǒng)不同,轉(zhuǎn)入MapGIS后的圖件不具備任何坐標(biāo)概念,如果想與已有的 MapGIS圖件套合到一起,必須進(jìn)行投影變換[7].
投影轉(zhuǎn)換有兩種方法:一是在投影變換模塊中應(yīng)用成批文件投影變換,在“結(jié)果投影參數(shù)” 欄中填入目的投影坐標(biāo)參數(shù)(此參數(shù)在“設(shè)置地圖參數(shù)-坐標(biāo)系-坐標(biāo)系設(shè)置”的對(duì)話框中獲得),然后進(jìn)行轉(zhuǎn)換即可;二是用投影變換模塊生成標(biāo)準(zhǔn)圖框,用參數(shù)校正功能進(jìn)行誤差校正.第一種方法更為直接,但如果沒(méi)有標(biāo)準(zhǔn)圖件提供坐標(biāo)參數(shù),只能選擇后者進(jìn)行投影變換.
3.2.3 數(shù)據(jù)的可視化表達(dá)
在轉(zhuǎn)換過(guò)程中,由于各個(gè)軟件之間的符號(hào)庫(kù)和字庫(kù)不匹配,會(huì)造成點(diǎn)文件的子圖和字庫(kù)顯示殘缺,使得數(shù)據(jù)在可視化表達(dá)上產(chǎn)生誤差.
若不能顯示注釋,則在“點(diǎn)編輯”菜單下選擇“根據(jù)屬性標(biāo)注釋”,標(biāo)注域名選擇 MapInfo表中的相應(yīng)屬性字段,然后在彈出的對(duì)話框中設(shè)置點(diǎn)參數(shù)即可;若不顯示子圖或符號(hào)不匹配,則在“點(diǎn)編輯”菜單下選擇“修改點(diǎn)參數(shù)”,然后選擇并修改相應(yīng)點(diǎn).
通過(guò)對(duì)MapGIS,ArcGIS,MapInfo三種軟件的優(yōu)缺點(diǎn)及其數(shù)據(jù)格式的存儲(chǔ)原理的分析表明:MapInfo的文件與 MapGIS文件存儲(chǔ)模式更為接近,對(duì)于ArcGIS的面文件可直接通過(guò) shape文件轉(zhuǎn)換為MapGIS文件,而對(duì)于點(diǎn)文件和線文件,應(yīng)以MapInfo為中間軟件進(jìn)行轉(zhuǎn)換.
實(shí)際轉(zhuǎn)換效果說(shuō)明,無(wú)論是國(guó)外還是國(guó)產(chǎn)GIS軟件,雖然擁有各自的轉(zhuǎn)換接口,但其數(shù)據(jù)轉(zhuǎn)換功能卻不盡完善,有待進(jìn)一步改進(jìn).同時(shí),由于軟件在運(yùn)行中具有隨機(jī)性和不確定性,致使部分?jǐn)?shù)據(jù)在轉(zhuǎn)換前后的差異不可避免,若能運(yùn)用 VC++和 LISP開發(fā)合理的輸出模塊,簡(jiǎn)化轉(zhuǎn)換程序,將會(huì)更好地提升數(shù)據(jù)轉(zhuǎn)換效率與精確度.
[1] 陳 勇,劉 輝,史瑞芝,等. 數(shù)字圖數(shù)據(jù)到MapGIS數(shù)據(jù)的格式轉(zhuǎn)換[J]. 測(cè)繪學(xué)院學(xué)報(bào),2004,21(2):154-156.
[2] 潘永地. 剖析 ARCGIS SHAPE文件及寫入代碼[J].貴州氣象,2006,30(6):36-37.
[3] 王剛武. GIS空間數(shù)據(jù)轉(zhuǎn)換方法探討[J]. 廣東土地科學(xué),2004,3(1):36-37.
[4] 鄧躍明,翟婭娟,劉治枝. 基于 MapInfo的專題地圖制作[J]. 測(cè)繪通報(bào),2001(7):17-18.
[5] 吳秀芹,張洪巖,李瑞改,等. ArcGIS9地理信息系統(tǒng)應(yīng)用與實(shí)踐[M]. 北京:清華大學(xué)出版社,2008.
[6] 鄔 倫,劉 瑜. 地理信息系統(tǒng)——原理、方法和應(yīng)用[M]. 北京:科學(xué)出版社,2001.
[7] 張玉杰,張繼武,張 棟,等. MapGIS與 MapInfo的數(shù)據(jù)文件轉(zhuǎn)換[J]. 黃金,2008,29(11):32-33.