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