張新長,高金頂,何顯錦
(1.中山大學 地理科學與規劃學院,廣東 廣州 510275;2. 廣東省城市化與地理環境空間模擬重點實驗室,廣東 廣州 510275)
地形圖數據規整及變化要素自適應更新方法
張新長1,2,高金頂1,何顯錦1
(1.中山大學 地理科學與規劃學院,廣東 廣州 510275;2. 廣東省城市化與地理環境空間模擬重點實驗室,廣東 廣州 510275)

地形圖數據作為一種重要的空間數據,其更新一般包括數據規整和更新入庫2個過程。提出了一套地形圖數據規整及自適應更新方法。該方法在AutoCAD 環境下對地形圖數據進行規整,包括地物編碼、拓撲檢查編輯、數據轉換等;在數據規整的基礎上,進行要素的變化檢測,提取出變化的要素,再對變化要素進行更新入庫。實驗表明,該方法能系統、高效地實現地形圖數據的更新。
地形圖;數據規整;變化檢測;增量更新
空間數據更新是維護空間數據庫現勢性的主要手段[1],是當前GIS的前沿研究課題。目前,我國大多數城市的地形圖測量數據以AutoCAD格式存儲,而在進行空間數據存儲、空間分析等方面CAD格式數據相對于GIS數據存在很大的不足。為充分利用現有的數據資源,一般是將已有的AutoCAD數據轉換為相應的GIS數據[2]。目前,對AutoCAD數據向GIS數據轉化的研究較多[3,4],但由于AutoCAD數據在生產方式和數據標準方面存在較大差異,造成數據本身存在不規范性,使得這些方法的轉換結果并不理想[5]。本文主要研究將AutoCAD數據進行規范整理并無損轉換為GIS數據的方法。
空間數據規整后,如何將這些數據快速更新到現勢數據庫,以維持數據庫的現勢性,是一個關鍵的技術問題。目前,常用的地形圖數據更新方法有2種:基于范圍的更新方法和基于要素的更新方法[6]。基于范圍的更新是將舊數據按相應的范圍挖空后填入新數據,然后進行要素接邊操作[7,8];基于要素的更新是對新舊數據進行變化檢測,只針對變化的要素進行更新[9-11]。基于范圍的更新方法需要較多的接邊操作,在接邊過程中會出現接邊錯位現象[12],并且整體替換加大了數據的存儲量,降低了數據的更新效率,因此,本文采用基于要素的更新方法。
1.1 地形圖數據規整關鍵技術流程
地形圖數據規整一般包括2個階段:將初始地形圖數據進行標準化處理; CAD 數據與 GIS 數據的轉換[13],本文提出了篩選特定的圖層并進行批量轉換的方法。
1.1.1 地形圖數據標準化
只有符合技術規程及相關作業標準的數據才能正確進行數據轉換,因此首先對地形圖數據進行標準化整理。AutoCAD 地形圖標準化步驟主要包括地物編碼賦值、編碼檢查、拓撲檢查與編輯、屬性編輯等,具體標準化流程如圖1 所示。

圖1 地形圖數據標準化流程圖
地形圖要素編碼即給圖形賦予唯一的編碼值[14],編碼是標準化的核心,賦值過程中若僅使用目視方法進行逐要素判斷需要花費較長時間。通過對實測地形圖的調查研究發現,不少數字地形圖由 CASS 軟件編輯而成,且一般存儲了 CASS 編碼和編碼意義。本文提出了批量轉換編碼的方法,可快速將CASS編碼轉換為對應的要素編碼,加快了轉換速度。
在編碼完成后可以對要素的拓撲信息進行相應的檢查與修正,主要檢查常見的拓撲錯誤,包括圖形的自相交、圖形的懸掛點、圖形的重疊等。本文提供了面要素的自動閉合、重疊要素的刪除等處理方法來解決相應的拓撲錯誤。
最后對要素進行相應的屬性編輯與賦值,采用圖形的擴展字典方法,將名稱和對應的值分別以成對的方式存儲在字典的Name屬性和Data值中,這樣既可快速進行存儲和調用,又增加了屬性值的可讀性。
1.1.2 地形圖數據轉換
在完成 AutoCAD 數據的標準化之后,要進行AutoCAD 數據與 GIS 數據的轉換,以建立GIS 空間數據庫,主要包括圖形轉換和屬性轉換。在分析了2種數據的基礎上,采用直接轉換的方式,將AutoCAD地形圖數據轉換為ArcGIS格式的標準GIS空間數據,具體步驟包括:
1)建立圖層間的映射關系,建立各個專題的點、線、面、注記等圖層,并依據入庫標準添加相應的屬性字段。
2)實現CAD數據到GIS數據間的圖形轉換。圖形轉換是轉換流程中最容易產生要素丟失的環節,這里提取相應的坐標,并對坐標進行組合,組合成相應的要素類型。常見的CAD實體圖形包括點、直線、圓、弧線、樣條曲線、多線段和文字[15]。針對以上各種類型,設置相應的提取方法。直線僅提取起點和終點;圓實體提取圓心的位置和半徑;而弧線不僅需要提取圓心和半徑,還需要提取對應的圓心角;樣條曲線提取起點和終點,并根據該曲線的復雜度選擇中間控制點的數量;多線段將其進行拆分成相應的簡單直線和圓弧后再進行提取操作;為了實現文字的朝向和大小,需提取其旋轉角度和字體高度。采用以上提取方式后,根據相應的還原方式,連接成對應的要素。
3)在圖形轉換后,要進行相應的屬性轉換和賦值,這里就從圖形的擴展字典中讀取并存儲到對應圖層的相應屬性字段中。
1.2 基于要素的更新方法
1.2.1 總體思路
基于要素的更新方法主要包括2個階段:第一階段是變化信息檢測,即通過新舊數據的對比,檢測出變化的要素,將變化的要素存放在臨時庫中;第二階段是更新數據的入庫,即根據臨時庫中變化要素的類型(新增或刪除),對數據庫中的數據進行相應的更新操作。總體更新流程如圖2所示。
1.2.2 變化信息檢測
變化信息檢測是基于要素更新的關鍵步驟,其目的是為了發現變化的要素信息[16]。目前的變化檢測研究大都是利用新舊數據間的匹配處理,檢測空間對象的變化信息[17],匹配處理采用雙向匹配方法,以獲取所有的變化類型。
傳統方法需逐一比較來進行判讀,需要較多的空間和屬性對比,為了快速找到對應的要素進行對比,本文采用了格網搜索定位的方法[16]。該方法可以快速實現定位,具體如下:

圖2 基于要素的更新流程圖
1)分別對新舊數據增加特征點坐標屬性字段(Center_X、Center_Y)以及屬性匯總字段(TotalStr)。
2)遍歷要素進行新增字段的計算,這里的特征點坐標代表要素所在的位置,點要素直接取其坐標,線要素取其中點,面要素取其質心。屬性匯總信息是將屬性字段的字段值進行拼接,每個字段值之間用特殊符號分割,如式(1)。

3)將檢測范圍(Xmin,Ymin,Xmax,Ymax)劃分為m×n個格網,根據需要格網的寬(Gwidth)和高(Ghight)可以自己設定,劃分公式為:

4)對新舊數據按特征點坐標進行排序,并按特征點坐標將要素匹配到相應的格網。格網編號與特征點坐標匹配方法按式(3)計算,其中INT()為向下取整。將格網內要素的特征點坐標、幾何信息、屬性匯總信息,按照排序結果依次累加到相應的網格中,如式(4)。線要素和面要素的幾何信息為要素的弧段長度,點要素不需累加幾何信息。

式中,gridcenx()、gridceny()分別表示網格中要素特征點X坐標及Y坐標的和; gridlen()表示網格中要素的弧段長度和;gridstr()表示網格中要素屬性值字符串拼接;gridcount()為行號網格中要素個數;k為格網中要素的數量。
5)對新舊數據中編號相同網格的特征點X坐標、Y坐標、弧段長度、屬性值拼接字符串進行對比。
按式(5)計算網格中幾何特征的變化率。

式中,changecenx()為格網中要素特征點X坐標和的變化率;changeceny()為格網中要素特征點Y坐標和的變化率;changelen()為格網中弧段長度的變化率;N()與O()分別代表新舊數據。當新舊數據中對應網格中以上3個指標發生變化時,說明該網格中的要素存在變化,需對網格內的要素進行逐一變化檢測。
1.2.3 變化數據檢測入庫
在找到對應要素后,以新舊要素的緩沖區重疊度(Index)來判斷要素是否變化。

式中,Ai為新數據中的要素;Bi為舊數據中與該要素相對應的舊要素;Buffer(Ai)表示新要素Ai生成的緩沖區;Buffer(Bi)表示舊要素Bi生成的緩沖區;Area[Buffer(Ai)∩Buffer(Bi)]表示Ai與Bi相交的幾何面積;Area[Buffer(Ai)∪ Buffer(Bi)]表示Ai與Bi相并的幾何面積。在理想情況下,如果新數據中的要素和舊數據中相比沒有發生變化,Index等于1,其他情況下即發生了變化。但由于數據精度等原因,這里一般設定閾值Q,在閾值外數據即為變化要素。在變化檢測完成后,即可將變化要素入庫。這里將變化要素分為新增要素和刪除要素,根據相應的ID值進行插入和刪除操作,同時將刪除要素插入到對應的歷史數據庫中,方便進行歷史回溯查看。
為了驗證提出的數據規整和增量更新方法,本文在Windows環境下,以CAD和Visual Studio 2010為開發工具,集成ArcGIS Engine開發包研制了數據規整與更新原型系統,實現了從數據規整到基于要素的地形圖數據更新入庫的流程,以1∶2 000地形圖數據進行實驗。
首先對CAD格式的地形圖數據(如圖3所示)進行編碼、拓撲檢查處理操作,將其轉化為標準數據,然后將該數據批量轉換為GIS數據,轉換結果如圖4。對比轉換后的結果數據,數據無缺失,證明該數據規整程序具有可行性。

圖3 規整轉換前CAD數據

圖4 規整轉換后GIS數據
在數據規整后即可進行數據的更新操作。圖5為更新前數據,通過對新舊數據進行變化檢測,發現新數據中的居民地面要素發生了變化(如圖6所示),圖中對變化要素以粉紅色進行標注,可以準確檢測出細小的變化,并進行相應替換。

圖5 更新前GIS數據

圖6 更新后GIS數據
實驗結果顯示,該系統可以快速、無損地將地形圖CAD數據轉換為GIS數據,且滿足數據標準的要求。在基于要素的更新過程中,本文提出的自適應更新方法可高效準確地完成測量數據的更新操作。
本文結合修補測地形圖數據進行了數據規整和增量更新的實踐,設計了CAD數據規整的技術流程,實現了CAD數據向GIS數據的無損轉換;提出了基于快速定位的變化檢測方法,實現變化數據的快速更新入庫,保證了地形圖數據庫的現勢性。實驗結果表明,提出的地形圖數據規整及自適應更新方法能系統、高效地實現地形圖數據的更新。
本文提出的技術路線具有較好的應用效果,但由于CAD數據圖形賦值,在數據轉換時仍要進行多次檢查編輯操作,且有些不常見拓撲錯誤需要人工篩選編輯。鑒于此,一些新的拓撲修正方法和質量控制研究將是下一步的工作任務。同時基于要素的更新方法在檢測到對應網格內有變化要素存在時,仍要對網格中要素進行逐要素對比查看,在變化要素較多時更新效率會下降,因此快速定位變化要素的方法仍需進一步研究。
[1] Briat M, Monnot J, Kressmann T. Incremental Update of Cartographic Data in a Versioned Environment[C].22nd ICA Conference Proceedings, A Coru?a, 2005
[2] 陳能,施蓓琦.AutoCAD地形圖數據轉換為GIS空間數據的技術研究與應用[J].測繪通報,2005(8):11-14
[3] 王波,張亮,孫霞. CAD向GIS數據的轉換入庫[J].地理空間信息, 2011,9(3):24-26
[4] 袁源琳,張新長,黃健鋒,等.AutoCAD地形圖數據規整入庫的研究與應用[J].測繪通報, 2013(5):84-88
[5] 張葉,孫毅中,陳年松.CAD城市基礎數據到GIS 轉換的有關問題探討[J].測繪與空間地理信息, 2007,30(1):94-97
[6] 付仲良,吳建華.多比例尺空間數據庫更新技術研究[J].武漢大學學報:信息科學版,2007,32(12):1 115-1 118
[7] 梁史進,張新長,郭泰圣.基于圖幅的地形圖數據自適應更新實現[J].地理信息世界,2014,21(6):77-81
[8] 陳年松.基于圖幅的城市基礎地理信息更新研究[C].江蘇省測繪學會2009年學術年會,南京,2009
[9] 羅國瑋,張新長,齊立新.顧及地理要素變化過程的數據增量更新方法[J].中山大學學報:自然科學版,2014(4):131-135 [10] 張新長,郭泰圣,唐鐵.一種自適應的矢量數據增量更新方法研究[J].測繪學報,2012,41(4):613-619
[11] 楊文杰,張新長,羅國瑋,等.基于要素的地形圖數據更新方法研究[J].地理信息世界,2014,21(6):12-16
[12] 孫英杰.基于變化信息文件的增量更新方法研究[D].長沙:中南大學,2008
[13] 王蔚,陳明銳.AutoCAD 數據向GIS空間數據轉換機制的研究[J].熱帶農業科學,2010,30(11):48-52
[14] 施一軍.數字地形圖向GIS數據轉換處理方法的探討[J].江蘇測繪,2000,23(4):44-46
[15] 楊娜娜,張新長,黃健鋒.CAD規劃成果數據GIS建庫的技術與研究[J].測繪通報,2015(6): 44-48
[16] 羅國瑋,張新長,齊立新,等.矢量數據變化對象的快速定位與最優組合匹配方法[J].測繪學報,2014,43(12):1 285-1 292
[17] 吳建華,付仲良.數據更新中要素變化檢測與匹配方法[J].計算機應用,2008,28(6):1 612-1 615
P208
B
1672-4623(2016)03-0001-04
10.3969/j.issn.1672-4623.2016.03.001
張新長,教授,博士生導師,主要研究方向為數字城市理論與方法。
2015-12-09。
項目來源:國家自然科學基金重點項目資助項目(41431178);高等學校博士點專項科研基金資助項目(20120171110030)。