袁源琳,張新長(zhǎng),黃健鋒,郭泰圣
(中山大學(xué)地理科學(xué)與規(guī)劃學(xué)院,廣東廣州510275)
AutoCAD具有強(qiáng)大的繪圖功能,在測(cè)繪地理信息部門的制圖系統(tǒng)中,大多是利用AutoCAD作為軟件的開發(fā)平臺(tái)。目前,我國(guó)大多數(shù)城市的地形圖數(shù)據(jù)以AutoCAD的數(shù)據(jù)格式(*.dwg)存儲(chǔ)。為充分利用已有的數(shù)據(jù)資源,必須有一個(gè)切實(shí)可行的處理方法,將已有的AutoCAD數(shù)字地形圖數(shù)據(jù)轉(zhuǎn)換為適用的GIS數(shù)據(jù),以便更高效地建立城市基礎(chǔ)地理信息數(shù)據(jù)庫(kù)[1]。張葉[2]提出基于 Geoway 實(shí)現(xiàn) CAD 數(shù)據(jù)到GIS數(shù)據(jù)的轉(zhuǎn)換,鑒于AutoCAD地形圖數(shù)據(jù)不規(guī)范(如編碼不規(guī)范、地物拓?fù)潢P(guān)系錯(cuò)誤等),轉(zhuǎn)換結(jié)果不理想。由于生產(chǎn)模式和數(shù)據(jù)規(guī)范不斷完善[3],導(dǎo)致數(shù)據(jù)標(biāo)準(zhǔn)不一致,同時(shí)由于內(nèi)業(yè)制圖不嚴(yán)謹(jǐn),需要對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一整理與加工。本文研究如何將AutoCAD地形圖數(shù)據(jù)進(jìn)行規(guī)范整理并轉(zhuǎn)換到GIS空間數(shù)據(jù)庫(kù)中去。
由于現(xiàn)有數(shù)據(jù)往往是不同時(shí)期采集的,人工操作多,數(shù)據(jù)輸入操作不嚴(yán)謹(jǐn)[4],一般存在以下質(zhì)量問(wèn)題:①地物編碼問(wèn)題(包括缺編碼、非法編碼、編碼與符號(hào)線型不一致);②地形圖分層不規(guī)范,甚至含垃圾圖層;③編輯操作中地物要素分錯(cuò)層,或有不明地物;④拓?fù)溴e(cuò)誤(如面狀地物不封閉、線線非法交叉等);⑤地物描述問(wèn)題(包括圖層及地物顏色不規(guī)范、點(diǎn)狀地物符號(hào)錯(cuò)誤、塊名稱與編碼不一致等)。因此,AutoCAD地形圖規(guī)范整理內(nèi)容主要有地物編碼分類、分層,編碼屬性檢查,空間拓?fù)潢P(guān)系檢查等。
本文的地形圖數(shù)據(jù)規(guī)范要求參考《東莞市1∶500、1∶1000、1∶2000 矢量地形圖數(shù)據(jù)標(biāo)準(zhǔn)》,主要有圖層分層設(shè)色標(biāo)準(zhǔn)、不同類別地物屬性表、塊文件符號(hào)表、地形圖要素信息及編碼對(duì)照表等。其中,地形圖要素信息及編碼對(duì)照表是標(biāo)準(zhǔn)規(guī)范的核心,其內(nèi)容主要包括地物類型、CAD編碼、GIS編碼、CASS編碼、CAD圖層、GIS圖層、GIS圖層幾何類型、塊文件的參考名、線寬、線型、注記字高等相關(guān)信息,見表1。
表1 地形圖要素信息及編碼對(duì)照表(部分地物)
其中,每個(gè)地物的CAD編碼、GIS編碼、CAD圖層、GIS圖層、幾何類型都不可缺少,這些屬性關(guān)系到地物的分類以及在CAD和GIS庫(kù)中的分層。CAD中點(diǎn)狀地物由默認(rèn)點(diǎn)或塊參照表示,用塊參照表示的需要其參考名信息;線狀地物含有對(duì)應(yīng)的線型、線寬信息;面狀地物輪廓線一般也有線型信息;注記類地物含有字高信息。
AutoCAD2000以后的版本提供4種表述圖形屬性數(shù)據(jù)的方式:塊屬性數(shù)據(jù)、擴(kuò)展圖元數(shù)據(jù)、擴(kuò)展詞典和圖形詞典[5]。考慮到后期編程開發(fā)將數(shù)據(jù)導(dǎo)入GIS中更便捷,本文采用擴(kuò)展詞典進(jìn)行存儲(chǔ),將實(shí)體的屬性存儲(chǔ)在其對(duì)應(yīng)的擴(kuò)展記錄中,其存儲(chǔ)結(jié)構(gòu)如圖1所示。
圖形實(shí)體Entity創(chuàng)建擴(kuò)展字典;再在擴(kuò)展字典中創(chuàng)建自定義字典,命名為“DXTD”;然后在該自定義字典下新建擴(kuò)展記錄Xrecord,以圖形的字段名進(jìn)行命名,擴(kuò)展記錄的Data屬性存儲(chǔ)該字段的屬性值。要存儲(chǔ)信息包括實(shí)體的GIS編碼及其他屬性字段,如房屋類地物一般包括房屋面積、房屋樓層等信息。
圖1 AutoCAD中Entity的屬性存儲(chǔ)結(jié)構(gòu)
為了提高地形圖數(shù)據(jù)的轉(zhuǎn)換效率與質(zhì)量,需先對(duì)地形圖數(shù)據(jù)進(jìn)行規(guī)范整理,只有符合技術(shù)規(guī)程及相關(guān)作業(yè)標(biāo)準(zhǔn)的數(shù)據(jù)才能正確進(jìn)行入庫(kù)操作[6]。AutoCAD地形圖規(guī)整步驟主要包括地物編碼、編碼檢查、拓?fù)錂z查與編輯、屬性編輯等,其規(guī)整流程如圖2所示。
圖2 AutoCAD地形圖規(guī)整流程
(1)編碼賦值
對(duì)地形要素賦編碼是將要素的地理要素編碼賦予要素的屬性項(xiàng)中,以便唯一地標(biāo)識(shí)地理要素和進(jìn)行空間分析[7]。本文通過(guò)存儲(chǔ)地形要素的GIS編碼來(lái)進(jìn)行標(biāo)識(shí)。要素的手動(dòng)編碼賦值是一項(xiàng)工作量很大的工作,因此宜采用程序進(jìn)行自動(dòng)賦值。
通過(guò)對(duì)實(shí)測(cè)地形圖的調(diào)查研究發(fā)現(xiàn),不少數(shù)字地形圖由CASS軟件編輯而成。由CASS軟件編輯的圖形一般存儲(chǔ)有CASS編碼及編碼意義,一部分圖形對(duì)應(yīng)的CAD代碼值存儲(chǔ)在該圖形的厚度屬性中。因此,將所有待規(guī)整的圖形分為兩類:含編碼圖形和無(wú)編碼圖形。針對(duì)這兩類圖形,本文分別設(shè)計(jì)了相應(yīng)的地物編碼自動(dòng)轉(zhuǎn)換方法。
含CASS編碼的圖形,讀取CASS編碼,通過(guò)地形圖要素信息及編碼對(duì)照表查找到對(duì)應(yīng)的GIS編碼,完成編碼轉(zhuǎn)換與存儲(chǔ);含厚度值的圖形,讀取厚度值(即CAD編碼),通過(guò)地形圖要素信息及編碼對(duì)照表查找到對(duì)應(yīng)的GIS編碼,完成編碼轉(zhuǎn)換與存儲(chǔ)。
無(wú)編碼的圖形通過(guò)目視判讀及圖形篩選賦值的方式完成地物編碼賦值。智能篩選是通過(guò)圖形類型、圖層、線型、線寬、注記內(nèi)容等條件將同一類的地物篩選出來(lái),進(jìn)行多圖形集體賦值。對(duì)于地物類型數(shù)量較少的地物采用直接目視判讀的方法,通過(guò)手動(dòng)選擇圖形進(jìn)行賦值。
(2)編碼檢查與圖形查錯(cuò)
完成地物編碼流程后,需要對(duì)編碼進(jìn)行檢查,直到修改無(wú)誤為止。檢查的內(nèi)容包括:①實(shí)體是否缺編碼;②實(shí)體存儲(chǔ)編碼是否規(guī)范合法(在地物編碼表中);③編碼對(duì)應(yīng)的幾何類型與實(shí)體類型是否沖突,如若某個(gè)DBText類型的實(shí)體被賦予了點(diǎn)、線、面類型的編碼則會(huì)產(chǎn)生沖突;④BlockReference類型的實(shí)體其塊名稱和編碼是否一致;⑤面要素是否閉合(這是以編碼查圖形,如果編碼對(duì)應(yīng)的是面狀要素,需進(jìn)行構(gòu)面);⑥圖形類型是否支持轉(zhuǎn)換,因?yàn)楹罄m(xù)的轉(zhuǎn)換暫時(shí)只支持BlockReference、DBPoint、Polyline、Polyline2d、Arc、Spline、Line、Circle、DBtext等基本圖形,因此不符合類型的實(shí)體需修改。
(3)拓?fù)錂z查與編輯
張葉[6]、謝祖明[8]是基于 Geoway 軟件進(jìn)行拓?fù)錂z查;王蔚[9]、邵華[10]等是將拓?fù)錂z查放在入庫(kù)后。由于GIS軟件對(duì)于圖形的編輯功能不如Auto-CAD,因此本文在AutoCAD環(huán)境下基于ArcGIS Engine對(duì)圖形建立拓?fù)湟?guī)則,然后將涉及拓?fù)溴e(cuò)誤的圖形在AutoCAD中列出來(lái),利用AutoCAD的編輯功能修改拓?fù)溴e(cuò)誤。拓?fù)洳殄e(cuò)包括面重疊、線重疊、線相交、線自相交檢查。
在完成AutoCAD數(shù)據(jù)的規(guī)整之后,即要進(jìn)行AutoCAD數(shù)據(jù)與GIS數(shù)據(jù)的轉(zhuǎn)換,以建立GIS空間數(shù)據(jù)庫(kù)。進(jìn)行CAD數(shù)據(jù)與GIS數(shù)據(jù)的轉(zhuǎn)換,不僅要了解兩種數(shù)據(jù)文件的轉(zhuǎn)換,還要了解兩者數(shù)據(jù)概念與內(nèi)容的轉(zhuǎn)換。在剖析了二者數(shù)據(jù)模型的基礎(chǔ)上,采用直接轉(zhuǎn)換的方式,將AutoCAD地形圖數(shù)據(jù)轉(zhuǎn)換為ArcGIS(*.mdb格式)的標(biāo)準(zhǔn)GIS空間數(shù)據(jù),其轉(zhuǎn)換流程如圖3所示,步驟如下:
1)建立規(guī)范的GIS空間數(shù)據(jù)庫(kù),根據(jù)GIS數(shù)據(jù)庫(kù)中的分層要求,建立各個(gè)專題的點(diǎn)、線、面、注記圖層,并根據(jù)圖層的屬性要求添加相應(yīng)的屬性字段。
2)將標(biāo)準(zhǔn)AutoCAD地形圖中的所有實(shí)體依據(jù)存儲(chǔ)的編碼按照GIS分層要求進(jìn)行分類,然后按類別對(duì)實(shí)體逐類進(jìn)行轉(zhuǎn)換,并存儲(chǔ)到對(duì)應(yīng)的GIS圖層中,直至全部類別實(shí)體轉(zhuǎn)換完成。在轉(zhuǎn)換過(guò)程中,根據(jù)該類實(shí)體所要轉(zhuǎn)為GIS中的不同幾何類型圖層,選用相應(yīng)的點(diǎn)、線、面、注記轉(zhuǎn)換模型進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換內(nèi)容包括地物實(shí)體的圖形信息及屬性信息。
(1)圖形轉(zhuǎn)換
CAD中常見的用于描述地物的實(shí)體類型有Block Reference、DBPoint、Polyline、Polyline2d、Arc、Spline、Line、Circle、DBtext等,地物一般以專題內(nèi)容進(jìn)行分層;而在GIS中是按照幾何類型進(jìn)行分層的,一般有 Point、Line、Polygon、Annotation 幾種類型的圖層。在CAD圖形中,Block Reference、DBPoint等類型的圖形實(shí)體在GIS中用Point類型來(lái)表示,需要根據(jù)圖形的編碼信息通過(guò)點(diǎn)轉(zhuǎn)換模型轉(zhuǎn)到相應(yīng)的點(diǎn)圖層中;DBText類型的圖形實(shí)體在GIS中用Annotation類型來(lái)表示,需要根據(jù)圖形的編碼信息通過(guò)注記轉(zhuǎn)換模型轉(zhuǎn)到相應(yīng)的注記圖層中;Polyline、Polyline2d、Arc、Spline、Line、Circle 等類型的圖形實(shí)體在CAD中既可以表示線也可以表示面,應(yīng)根據(jù)其編碼進(jìn)行判斷,表示線實(shí)體的通過(guò)線轉(zhuǎn)換模型轉(zhuǎn)到對(duì)應(yīng)的線圖層中,表示面實(shí)體的通過(guò)面轉(zhuǎn)換模型轉(zhuǎn)到對(duì)應(yīng)的面圖層中。
點(diǎn)轉(zhuǎn)換模型較為簡(jiǎn)單,對(duì)于 Block Reference、DBPoint類型的實(shí)體,通過(guò)讀取坐標(biāo)信息,在GIS中基于X、Y坐標(biāo)信息進(jìn)行構(gòu)點(diǎn),然后通過(guò)Geomery進(jìn)行轉(zhuǎn)換。
圖3 CAD數(shù)據(jù)轉(zhuǎn)換為GIS數(shù)據(jù)流程圖
線轉(zhuǎn)換模型涉及的圖形類型較多,其基本原理是讀取圖形的各個(gè)節(jié)點(diǎn)信息,然后以點(diǎn)構(gòu)線。有的類型較簡(jiǎn)單(如Line),通過(guò)讀取起點(diǎn)和終點(diǎn)坐標(biāo)即可直接構(gòu)線;有的類型相對(duì)復(fù)雜(如Arc),需要通過(guò)讀取起點(diǎn)和終點(diǎn)坐標(biāo)、Arc的起始角度及總角度、弧長(zhǎng)等信息構(gòu)弧上的點(diǎn),然后進(jìn)行構(gòu)線。
面轉(zhuǎn)換模型主要涉及Polyline、Polyline2d、Circle 3種類型的實(shí)體,其基本原理是通過(guò)讀取圖形的節(jié)點(diǎn)等相關(guān)信息,進(jìn)行構(gòu)線及構(gòu)面。如對(duì)于Circle類型,通過(guò)讀取圓心的坐標(biāo)及半徑信息,在GIS中通過(guò)圓進(jìn)行構(gòu)面。
注記轉(zhuǎn)換模型主要涉及DBtext類型實(shí)體,其基本原理是通過(guò)讀取文字的坐標(biāo)及內(nèi)容,在GIS庫(kù)中的Annotation圖層中進(jìn)行重繪。
(2)屬性轉(zhuǎn)換
在規(guī)整中,圖形的屬性信息存儲(chǔ)在其擴(kuò)展字典下自定義字典的擴(kuò)展屬性中,在轉(zhuǎn)換過(guò)程中,先通過(guò)CAD讀取存儲(chǔ)在實(shí)體中的屬性信息,然后通過(guò)屬性字段進(jìn)行匹配,最后將屬性值寫入到GIS中Feature對(duì)象的對(duì)應(yīng)屬性中。
為驗(yàn)證本文的研究思路和方法,在Windows環(huán)境下,以Microsoft Visual Studio 2008為開發(fā)工具,基于 C# 和 AutoCAD 2008、ArcGIS Engine 9.3 平臺(tái)開發(fā)了AutoCAD地形圖數(shù)據(jù)規(guī)整入庫(kù)系統(tǒng)。不僅實(shí)現(xiàn)了對(duì)初始AutoCAD地形圖的規(guī)范整理,即地形圖要素分類編碼、拓?fù)錂z查與修正、屬性編輯等功能,同時(shí)實(shí)現(xiàn)了AutoCAD數(shù)據(jù)與GIS數(shù)據(jù)之間的異構(gòu)同化。
本文以1∶1000地形圖實(shí)測(cè)數(shù)據(jù)進(jìn)行測(cè)試,數(shù)據(jù)包括 Polyline2d(4)、Line(405)、Arc(2)、Polyline(1765)、DBPoint(7)、Circle(1)、DBtext(754)、BlockReference(964)等共計(jì)3992個(gè)圖形要素,并通過(guò)系統(tǒng)對(duì)該數(shù)據(jù)進(jìn)行規(guī)整,然后轉(zhuǎn)入GIS數(shù)據(jù)庫(kù)中。初始的AutoCAD數(shù)據(jù)與GIS數(shù)據(jù)符號(hào)化之后的對(duì)比如圖4所示。
本文提出了AutoCAD地形圖數(shù)據(jù)的規(guī)整要求與步驟,設(shè)計(jì)了一套規(guī)整方法,在地物編碼方面,提供了一些自動(dòng)化編碼賦值工具,并在AutoCAD環(huán)境下實(shí)現(xiàn)了拓?fù)錂z查;在剖析了AutoCAD地形圖模型與GIS數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上,設(shè)計(jì)了Auto-CAD數(shù)據(jù)模型直接無(wú)縫轉(zhuǎn)換為GIS數(shù)據(jù)模型的方法;最后通過(guò)自主開發(fā)的AutoCAD地形圖規(guī)整入庫(kù)系統(tǒng),以1∶1000地形圖數(shù)據(jù)進(jìn)行實(shí)例了驗(yàn)證。試驗(yàn)證明,通過(guò)本系統(tǒng)能夠有效地對(duì)CAD地形圖進(jìn)行規(guī)范整理,并轉(zhuǎn)入GIS空間數(shù)據(jù)庫(kù)。系統(tǒng)已經(jīng)在東莞市城鄉(xiāng)規(guī)劃局投入使用,本研究具有較高的推廣應(yīng)用價(jià)值。
圖4 實(shí)例轉(zhuǎn)換對(duì)比圖
雖然本文提出的AutoCAD地形圖規(guī)整入庫(kù)方法有較好的應(yīng)用效果,但由于AutoCAD數(shù)據(jù)圖形復(fù)雜,地形圖數(shù)據(jù)錯(cuò)誤種類多樣,一些新的質(zhì)量控制工具有待增加;鑒于轉(zhuǎn)換模型中考慮的CAD圖形類型有限,為不在轉(zhuǎn)換模型中將圖形類型遺漏,還需要進(jìn)一步優(yōu)化;轉(zhuǎn)換模型目前仍借助ArcGIS Engine,將轉(zhuǎn)換模型封裝成獨(dú)立模塊是下一步的工作任務(wù)。
[1]陳能,施蓓琦.AutoCAD地形圖數(shù)據(jù)轉(zhuǎn)換為GIS空間數(shù)據(jù)的技術(shù)研究與應(yīng)用[J].測(cè)繪通報(bào),2005(8):11-14,34.
[2]張葉,孫毅中,陳年松.CAD城市基礎(chǔ)數(shù)據(jù)到GIS數(shù)據(jù)轉(zhuǎn)換的有關(guān)問(wèn)題探討[J].測(cè)繪與空間地理信息,2007,30(1):94-97.
[3]趙建輝,薛萍.1∶10 000基礎(chǔ)地理信息數(shù)據(jù)庫(kù)建庫(kù)數(shù)據(jù)加工整理模式的探討[J].測(cè)繪標(biāo)準(zhǔn)化,2011(5):42-43.
[4]丁建勛,程效軍,石如文,等.淺談珠海市基礎(chǔ)空間數(shù)據(jù)檢查與建庫(kù)預(yù)處理[J].地理空間信息,2005(2):30-32,35.
[5]劉德兒,閭國(guó)年,蘭小機(jī),等.城市基礎(chǔ)地理數(shù)據(jù)庫(kù)更新機(jī)制研究[J].大地測(cè)量與地球動(dòng)力學(xué),2010(1):155-159.
[6]劉志輝,肖海威,梁子震.淺析城市信息化地形圖的入庫(kù)數(shù)據(jù)質(zhì)量檢查[J].城市勘探,2012(5):53-56.
[7]施一軍.數(shù)字地形圖向GIS數(shù)據(jù)轉(zhuǎn)換處理方法的探討[J].江蘇測(cè)繪,2000,23(4):44-46.
[8]謝祖明.基于CAD數(shù)據(jù)生產(chǎn)ArcGIS制圖數(shù)據(jù)的研究與應(yīng)用[J].測(cè)繪與空間地理信息,2012,35(8):121-123,126.
[9]王蔚,陳明銳.AutoCAD數(shù)據(jù)向GIS空間數(shù)據(jù)轉(zhuǎn)換機(jī)制的研究[J].熱帶農(nóng)業(yè)科學(xué),2010,30(11):48-52.
[10]邵華,王建力,楊圓鑒.基于 ArcInfo的CAD數(shù)據(jù)到GIS數(shù)據(jù)轉(zhuǎn)換初探[J].科學(xué)技術(shù)與工程,2009,9(10):2778-2780,2785.
[11]周勇前.GIS與CAD數(shù)據(jù)交換[J].武測(cè)科技,1996(3):16-18.