齊菊梅, 侯清波, 裴麗娜
(黃河勘測規(guī)劃設(shè)計研究院有限公司,河南 鄭州 450003)
在工程勘察設(shè)計行業(yè),勘察專業(yè)的上下游專業(yè)所使用的圖件大部分是AutoCAD格式的矢量化地形圖。隨著數(shù)字化采集技術(shù)的普及,在工程勘察現(xiàn)場需要利用便攜移動設(shè)備的GPS定位功能,來實現(xiàn)定位與地形圖的實時關(guān)聯(lián),在采集空間信息的同時錄入相關(guān)的屬性信息。CAD不能建立完整的地理坐標系統(tǒng)和完成地理坐標的投影變換,也不具備地理意義上的查詢和分析功能;GIS中的所有數(shù)據(jù)都具有嚴格的地理參照,數(shù)據(jù)通過坐標系統(tǒng)與地球表面的特定位置發(fā)生聯(lián)系,利用GIS格式的空間數(shù)據(jù)架構(gòu)實現(xiàn)空間數(shù)據(jù)和屬性數(shù)據(jù)的有機聯(lián)系。隨著CAD與GIS數(shù)據(jù)共享需求的日益增加,部分GIS軟件提供了對CAD文件的直接加載功能;基于FME數(shù)據(jù)轉(zhuǎn)換平臺可實現(xiàn)多種空間數(shù)據(jù)格式的轉(zhuǎn)換問題[1];申勝利、李華分析了AutoCAD圖元與ArcGIS圖元的異同,通過建立點對照表、線對照表、注記對照表實現(xiàn)CAD、DXF數(shù)據(jù)與ArcGIS數(shù)據(jù)相互轉(zhuǎn)換的方法[2];陳年松利用FME通過建立語義映射實現(xiàn)CAD數(shù)據(jù)與GIS數(shù)據(jù)的語義轉(zhuǎn)換[3]。但由于缺乏對空間對象的統(tǒng)一描述,不同數(shù)據(jù)格式描述空間對象時采用的數(shù)據(jù)模型不同,空間數(shù)據(jù)轉(zhuǎn)換后不能完全準確地表達原數(shù)據(jù)的信息,經(jīng)常性地造成一些信息丟失和錯漏,并且數(shù)據(jù)處理流程繁瑣,轉(zhuǎn)換效率比較低,不能滿足實際生產(chǎn)中的需要。由此結(jié)合工程勘察數(shù)字采集系統(tǒng)的研發(fā)實踐,提出基于二元要素類映射池的空間數(shù)據(jù)轉(zhuǎn)換解決方案,該方法實現(xiàn)了空間數(shù)據(jù)的平順無損轉(zhuǎn)換,數(shù)據(jù)轉(zhuǎn)換效果和效率都能滿足生產(chǎn)需要,效果良好。
CAD是按圖層組織空間圖形數(shù)據(jù),由多種繪圖實體組成,其實體采用三維坐標描述,只具備幾何位置、形狀、大小及描述元素的一些基本性質(zhì)(如層名、顏色、線型等),圖形編輯功能很強,所處理的基本圖形元素有點、線、注記等。而“塊”是一種特殊的圖形元素,一般由多個基本圖形元素構(gòu)成。CAD中的符號為圖形的一個部分,不同的符號可能具有不同的性質(zhì)。AutoCAD的圖形數(shù)據(jù)輸出基于一個界面,其圖形元素之間沒有拓撲關(guān)系,因而CAD不具備地理分析功能。
GIS的操作對象是空間數(shù)據(jù),它具體描述地理實體的空間特征和屬性特征[4]??臻g特征是指地理實體的空間位置、拓撲關(guān)系和幾何特征;屬性特征表示地理實體的名稱、類型和數(shù)量等。根據(jù)地理實體的空間圖形表示形式,可將空間數(shù)據(jù)抽象為點、線、面三類元素,它們的數(shù)據(jù)表達可以采用矢量和柵格兩種組織形式。GIS空間數(shù)據(jù)主要采用空間分區(qū)、專題分層的數(shù)據(jù)組織方法,一般可分為圖形、屬性、注記、符號數(shù)據(jù),其中圖形數(shù)據(jù)指地理實體的空間位置和形狀,可用幾何對象來描述,包括點、折線、圓、圓弧、橢圓、橢圓弧、Bezier曲線、樣條曲線等。
CAD與GIS數(shù)據(jù)在底層數(shù)據(jù)組織、結(jié)構(gòu)等方面具有很大的不同,只有解決了CAD與GIS數(shù)據(jù)的便捷轉(zhuǎn)換問題,才能實現(xiàn)外業(yè)勘察數(shù)據(jù)采集與內(nèi)業(yè)資料整理的一致性和共享性。
要保證空間數(shù)據(jù)格式轉(zhuǎn)換的質(zhì)量,首先要確定基本圖形要素之間的映射關(guān)系,提出二元要素類映射池技術(shù)(圖1),用以解決CAD與GIS格式數(shù)據(jù)互相轉(zhuǎn)換的問題。
圖1 二元要素類映射池技術(shù)Fig.1 Mapping pool technology for binary factor classes
二元要素類映射池是存儲CAD要素與GIS要素對照關(guān)系的數(shù)據(jù)庫文件[5]。
CAD圖層中的線要素進入到GIS后轉(zhuǎn)換為GIS線圖層。數(shù)據(jù)格式轉(zhuǎn)換時,逐個讀取CAD文件的圖層,依據(jù)CAD圖層、GIS圖層命名規(guī)則,設(shè)定兩者之間的名稱對照;依據(jù)CAD、GIS中的線型定義,設(shè)定兩者之間對應的線型對照關(guān)系。
CAD文件中的塊要素進入到GIS后轉(zhuǎn)換為點圖層。數(shù)據(jù)格式轉(zhuǎn)換時,逐個讀取CAD文件中的塊,將塊名稱提取出來,依據(jù)塊定義的內(nèi)容和GIS中的符號系統(tǒng),設(shè)定兩者之間的符號對照關(guān)系。
將經(jīng)過圖層比對產(chǎn)生的相應的線、點等空間數(shù)據(jù)要素的對照關(guān)系存放到相應的數(shù)據(jù)庫文件中,在格式轉(zhuǎn)換時,從數(shù)據(jù)庫中調(diào)用相應的映射關(guān)系,達到格式轉(zhuǎn)換的目的。
根據(jù)遇到的CAD圖的類型不同,每一類圖形的格式轉(zhuǎn)換都會建立相應的映射關(guān)系,將新增加的映射關(guān)系增量存放到數(shù)據(jù)庫文件中,實現(xiàn)對應元素智能增量化記憶。隨著轉(zhuǎn)換應用的廣泛增多,映射池內(nèi)映射關(guān)系愈豐富,數(shù)據(jù)的轉(zhuǎn)換會更加智能便捷。
二元要素類映射池包括點要素映射池、線要素映射池、面要素映射池、注記要素類映射池、顏色映射池等內(nèi)容,見表1-表4。
表1 點要素映射池Table 1 Mapping pool of point element
表2 線要素映射池Table 2 Mapping pool of line element
表3 顏色映射池Table 3 Mapping pool for colors
表4 圖層映射池Table 4 Layer mapping pool
采用二元要素類映射池技術(shù)進行空間數(shù)據(jù)轉(zhuǎn)換主要包括:打開源匯數(shù)據(jù)、解析源數(shù)據(jù)、建立維護轉(zhuǎn)換映射池、轉(zhuǎn)換數(shù)據(jù)(圖形數(shù)據(jù)的轉(zhuǎn)換、屬性數(shù)據(jù)的轉(zhuǎn)換、圖層顏色轉(zhuǎn)換、文字和注記的轉(zhuǎn)換等內(nèi)容),見圖2。轉(zhuǎn)換步驟如下:
圖2 空間數(shù)據(jù)轉(zhuǎn)換流程Fig.2 Conversion process of spatial data
(1) 設(shè)置源匯數(shù)據(jù)格式。開始轉(zhuǎn)換之前要指定待轉(zhuǎn)換的源文件,明確其格式、版本等內(nèi)容,還要明確要轉(zhuǎn)成的目標數(shù)據(jù)格式。
(2) 解析源數(shù)據(jù)。對數(shù)據(jù)描述的事物對象實例進行要素分類,如CAD數(shù)據(jù),對每一個圖層以及每一個圖層內(nèi)的點、線、面、塊要素解析,包括顏色、圖層等信息等。
對于每一類的點要素,圖層不同,塊名不同,代表的意義就不同,要單獨列出,明確其實際意義;對于每一類的線要素,圖層不同,線型不同,顏色不同,代表的物理意義不相同,需要單獨列出明確其實際意義;對于每一類面要素,圖層不同,底色花紋邊界不同,代表的物理意義不同,遍歷列出明確其實際意義。
(3) 建立二元要素類映射池。根據(jù)解析的要素類成果,在映射池中進行逐一注冊,對每個注冊項編輯其完整的映射關(guān)系,也就是源數(shù)據(jù)和目標數(shù)據(jù)之間的接口,如圖3所示,其中:“Type_CAD”指的是CAD格式的數(shù)據(jù)類型,有塊(Block)和圖層(Layer)兩種類型,CAD中的一種塊對應ArcGIS中的一個圖層,CAD中的一個圖層對應ArcGIS中的一個圖層;“Name_CAD”指的是CAD格式數(shù)據(jù)的塊名或圖層名稱;“LayerType_ArcGIS”指的是ArcGIS格式數(shù)據(jù)的圖層類型,“LayerName_ArcGIS”指的是ArcGIS格式數(shù)據(jù)的圖層名稱;“SymbolCode”指的是ArcGIS符號樣式編號;“SymbolColor”指的是ArcGIS符號顏色;“SymbolSize”指的是ArcGIS符號大小或線寬;“SymbolAngle”指的是ArcGIS符號旋轉(zhuǎn)角度;“SymbolOutline”指的是ArcGIS符號邊框顏色;“Category”指的是ArcGIS符號所屬范圍分類。
圖3 空間數(shù)據(jù)轉(zhuǎn)換接口Fig.3 Conversion interface of spatial data
利用圖3中的關(guān)系,把CAD中的塊或塊參考與ArcGIS中點、點符號庫進行映射;CAD中的線型與ArcGIS中的線型庫進行映射;CAD中的填充圖案和線的組合與ArcGIS中的面進行映射。并對其在目標格式中的數(shù)據(jù)格式以及符號化進行取舍和設(shè)定。
(4) 實施數(shù)據(jù)格式轉(zhuǎn)換。對源數(shù)據(jù)的每一個圖層、每一個要素進行遍歷,到映射池中查詢其映射規(guī)則,向目標數(shù)據(jù)文件中寫入其相應的數(shù)據(jù)和屬性,從而完成數(shù)據(jù)無損轉(zhuǎn)換。
(5) 映射池維護。映射池中的映射規(guī)則數(shù)據(jù)增量保存,即自動維護擴充,不需要人機交互維護,下次轉(zhuǎn)換再遇上同樣的數(shù)據(jù)即可直接使用,不必重復往映射池中設(shè)定映射關(guān)系,既節(jié)省了時間,又提高了效率。程序?qū)崿F(xiàn)流程如圖4所示,首先獲取dxf文件中的所有圖層和塊,遍歷這些圖層和塊,根據(jù)圖層或塊的名稱和類型,利用sql語句去映射池中執(zhí)行查詢比對,查出數(shù)據(jù),說明是已存在的映射關(guān)系,則遍歷下一個圖層或塊,若查不出數(shù)據(jù),則說明是不存在的映射關(guān)系,將當前對象的映射關(guān)系添加進映射池,然后再遍歷下一個圖層或塊,如此循環(huán)直至遍歷完所有的圖層和塊。
圖4 自動維護擴充流程Fig.4 Extension process of automatic maintenance
工程勘察數(shù)字采集信息系統(tǒng)是綜合利用GIS、GPS、RS、數(shù)據(jù)庫、計算機等技術(shù)研發(fā)的一套適用于工程勘察數(shù)據(jù)的數(shù)字化采集、管理及應用的系統(tǒng)。
二元要素類映射池技術(shù)作為該系統(tǒng)的關(guān)鍵技術(shù)之一,順利實現(xiàn)了CAD與GIS的空間數(shù)據(jù)轉(zhuǎn)換,見圖5。轉(zhuǎn)換后的數(shù)據(jù)在工程勘察數(shù)字采集信息系統(tǒng)環(huán)境下圖層、線型、顏色顯示完好,且運轉(zhuǎn)流暢。圖6為某工程地圖CAD與GIS轉(zhuǎn)換前后的對比效果,左側(cè)為原地圖數(shù)據(jù)在AutoCAD中的顯示效果,右側(cè)為轉(zhuǎn)換為GIS數(shù)據(jù)后在工程勘察數(shù)字采集信息系統(tǒng)中的顯示效果。
圖5 二元要素類映射池Fig.5 Mapping pool for binary factor classes
圖6 某工程地圖CAD與GIS轉(zhuǎn)換前后的對比效果Fig.6 Contrast effect between CAD and GIS in a project map
二元要素類映射池技術(shù)針對不同的要素類建立從源到匯的具備智能記憶功能的GIS與CAD空間數(shù)據(jù)轉(zhuǎn)換的映射池,提出了完善的分層比對接口處理方法,實現(xiàn)了不同格式的圖形和空間數(shù)據(jù)的雙向?qū)?。該技術(shù)已在生產(chǎn)實踐中成功應用,實現(xiàn)了GIS空間數(shù)據(jù)與上、下游專業(yè)間CAD格式空間數(shù)據(jù)的便捷轉(zhuǎn)換。
二元要素類映射池具有智能記憶、增量式擴充等功能,隨著應用的增加,映射池會自我完善,要素類逐漸增加,處理方案豐富多樣,積累的越豐富應用效果也越好。相比其他轉(zhuǎn)換方法,操作簡便,且有較強的人機交互功能。
對于收集到的其它格式的數(shù)據(jù),如MapGIS、SuperMap、Mapinfo、MicroStation等格式的數(shù)據(jù),映射池都可以依據(jù)此思路自動進行模塊拓展,建立相應的映射池模塊,從而實現(xiàn)相關(guān)格式的數(shù)據(jù)轉(zhuǎn)換,且具有智能擴充的功能。