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