張發順,郭邦梅,孟志軍,梁 勇
(1.山東農業大學信息科學與工程學院,山東泰安271018;2.國家農業信息化工程技術研究中心,北京100097;3.中國測繪科學研究院,北京100039)
目前我國每年因突發公共事件造成的損失驚人。以“5.12”汶川8級大地震為例,大地震給四川及周邊地區帶來的經濟損失高達5000億元。面對如此巨大的損失,我們除了加大地震預報方面的研究工作以外,同時也要建立應急平臺,提高突發公共事件的應急水平,只有這樣才能最大限度地減少損失。
公共安全應急平臺是公共安全應急體系的重要組成部分,具有很好的提取分析、預測模擬、預警發布、預案優化、決策處置等系統功能,能為各級政府的高效應急提供強大支持[1]。
地理信息系統作為城市公共安全應急指揮軟件系統中的基礎支撐信息平臺,其基礎數據建設的缺與全、雜與專、簡與繁等方面的尺度必須把握恰當,否則可能造成需要的數據沒有建設或建設深度不夠、非關鍵性的數據建設過度,從而導致地理信息綜合指揮系統、乃至整個公共安全應急指揮系統無法發揮實戰效果或根本無法滿足專業使用需求。因此,迫切需要選擇優質合適的空間數據源用于數據庫。
在眾多數據源中,幾乎90%以上的數據都來自AutoCAD,但從空間地理信息系統的角度來看,CAD數據缺乏較強的對空間數據信息的描述和分析功能。而地理信息系統(GIS)卻在空間信息分析方面發揮著巨大的作用,能對已存在的空間數據進行建模、分析和管理。所以,為充分利用已有的數據資源,就必須有一個切實可行的處理方法,將已有的AutoCAD數字地形圖轉換為適用的Arc-GIS數據,以便更高效地建立基礎地理信息數據庫,進一步建立公共安全應急平臺。從而提高ArcGIS的整體開發的效率,降低成本。基于以上原因,本文主要討論將CAD空間數據更好地轉換到ArcGIS的方法。
國內外很多學者在AutoCAD到ArcGIS的數據轉換方面做了很多研究,但是由于AutoCAD軟件在數據存儲、圖元定義、管理風格等方面不同于ArcGIS軟件,所以他們間的格式轉換依然存在很多問題。
1)要素丟失
有些AutoCAD數據元素ArcGIS不能接受,或者轉換前后數據的對應關系沒有處理好,有的內容沒有轉換過來,轉換后就造成要素丟失。
2)要素變形
AutoCAD軟件中的圖形數據結構定義與ArcGIS軟件中的不一致(如CAD中的圓、弧等,在ArcGIS中可能變成多邊形、線)。
3)數據冗余
AutoCAD中數據分類分層不合適(如母線和符號沒區分好,符號也當作母線轉換過來),或一條線段上的點太多、太密,造成數據冗余。
4)屬性信息不足
AutoCAD數據屬性信息不完整,造成轉換后信息不足。
5)接邊不精確
AutoCAD圖形數據以圖幅的形式存在,而在ArcGIS中需要將這些圖幅整合為一幅圖,在整合的過程中就存在接邊不精確的問題,如道路、河流、房屋邊界等[2]。
ArcGIS與AutoCAD的共同特點是都有空間坐標,都能把目標和參考系統聯系起來,都能描述圖形數據的拓撲關系,也都能處理非圖形屬性數據。它們的主要區別是:AutoCAD處理的對象多為規則幾何圖形及其組合,它的圖形功能尤其是三維圖形功能極強,屬性庫功能則相對要弱,一般采用的是幾何坐標系;而ArcGIS處理的多為自然目標,有分維特征(海岸線、地形等高線等),因而圖形處理的難度較大。ArcGIS的屬性庫內容結構復雜,功能強大,圖形屬性的相互作用十分頻繁,且多具有專業特征。
從表1的分析數據可以看出AutoCAD數據格式地形圖要素的表現形式有多種,而且其面狀地物(如建筑物、水系)也不一定完全閉合,線狀地物(如道路、陡坎等)碰到軟地物(如高程點、漢字注記)有斷開;獨立符號、漢字注記表示不是很清晰,不能滿足GIS要求,因此大部分的空間數據仍需要重新編輯,有的需程序處理,有的需人工干預。

表1 AutoCAD數據與ArcGIS數據對地物的表達方式的比較
在完成 CAD圖形數據的檢查、修改之后,即要進行AutoCAD與ArcGIS的數據轉換,以建立GIS數據庫。
一般來說,不同數據格式之間的數據轉換方法有兩種:直接轉換和間接轉換。通常意義上的直接轉換是指兩個系統不同數據格式之間的直接轉換,不借助其他工具。這種方式的效率較高,但首先必須得知道相互轉換的兩個系統內部的數據結構,因此難度較大。而間接轉換則是指不同數據格式的數據集之間的轉換,通過中間數據格式進行,如AutoCAD的DXF、ArcView的Shape、MapInfo的MIF格式等。通過交換格式可以實現不同軟件之間的數據轉換,但是由于缺乏對空間對象統一的描述,不同數據格式描述空間對象時采用的數據模型不同,因而轉換后不能完全準確地表達原數據的信息,經常性地造成一些信息丟失,而且用戶必須詳細地掌握交換格式的細節及應用系統數據格式的細節時,才能進行轉換程序的設計工作,對用戶的編程能力及工作量要求都很高,不利于無縫GIS快速獲取多源數據。在CAD與GIS的數據轉換時,其轉化方式也是這兩種,但在此界定直接轉換與間接轉換的標準是指CAD與GIS二者之間是否通過特制程序接口進行相互轉換、讀寫[3]。
本文主要采用兩種轉換方案,即商用軟件工具轉換方案和自行編程轉換方案。軟件工具轉換,是通過某一制圖系統軟件的轉入、轉出的功能菜單選項來實現。自行編程轉換是使用計算機程序語言(如VB,VC,C#等)自行編輯程序,并通過運行程序來實現。
首先對地形圖在AutoCAD中進行整理后,運用現有的商用軟件ArcGIS的工具進行轉換。圖1為在AutoCAD中的地形圖,經過轉換后得到圖2。圖3為面圖層,圖4為線圖層。可以看出整體效果較好,經過整理后轉換得到的并沒有要素的丟失,但是仍然存在很多問題:首先,在轉換后的線圖層中除了提取線狀物外,面狀物的邊緣也當成線提取到線圖層中(如圖4)。其次,雖然軟件提取出了屬性數據,但是沒有將屬性自動匹配并放入ArcGIS屬性表中,還需要人工進行匹配工作,這樣就增加了工作量。

用商業軟件工具轉換方案時,需要大量的手工處理,如在CAD中進行圖形檢查,需要人工重新分層及提取有用圖層,進一步對CAD數據進行整理。而這些也可以通過編程實現,雖然通過編程不能全部將有用信息提取出來或進行非常好的無縫轉換,但是可以將一些繁瑣的工作通過編程使計算機自動實現。
本方案的主要原理是:通過C#語言編程建一個數據庫,通過此庫可對CAD圖進行數據提取,分層及剔除冗余數據進而提取出有用信息并對其進行整理,使其符合GIS的數據組織要求。從而可將數據更好地無縫轉換到GIS中。圖5為程序流程圖。
圖6為利用編程提取出的線圖層,從圖6可以看出,自行編程可以解決利用軟件工具轉換中出現的面的邊緣提取到線圖層中的問題,可以很好地將線要素提取出來,剔除了面要素的邊緣,很好的解決了數據冗余問題。

其次,在編程的過程中利用設置緩沖區,實現屬性數據與地物的匹配問題(如圖7)。從而,大大地減少了工作量,將可以批處理的工作全都由計算機處理,當然這種匹配不能完全地實現所有的匹配工作,仍需人工檢查,部分屬性還需人工處理。

圖7 匹配的要素屬性表
在公共應急平臺中,多數空間數據來自Auto-CAD,CAD到ArcGIS數據轉換方法有直接轉換法和間接轉換法,間接轉換法效果優于直接轉換法,且間接轉換法還有很大的研究前景與改進潛力。
本文還提出了利用間接法轉換的兩種方案,從實例可以看出,利用商用軟件工具轉換方案在CAD改進數據、修改數據方面工作量巨大。故利用編程實現方案更能提高工作效率,改進轉換技術,可根據應急平臺的空間數據需要提取有用的空間數據,方式較靈活且大大地減少了作業人員的工作量,具有良好的應用前景。
[1] 徐志勝,馮 凱,徐 亮,等.基于GIS的城市公共安全應急決策支持系統的研究[J].安全與環境學報,2004,4(6):82-85.
[2] 周小成,焦道振.基于GeodataBase的CAD數據到GIS的解決方案[J].測繪與空間地理信息,2005,28(1):29-32.
[3] 張雪松,張友安,鄧 敏.AutoCAD環境中組織GIS數據的方法[J].測繪通報,2003(11):45-48.