張西軍 ,陳樂然,石勇
(1.沈陽市勘察測繪研究院,遼寧 沈陽 110004; 2.重慶市勘測院,重慶 400020)
隨著數字城市地理空間框架的推廣建設,目前很多城市建立了地理框架數據庫,數據庫的主要數據源為大比例尺數字線劃圖,如何及時將更新的線劃圖數據更新到地理框架數據庫中,是框架運維工作人員必須考慮的問題。相對于數字線劃圖數據庫的批量式更新來說,增量式更新僅提供給用戶變化的要素而不是整個新數據集[1],近年來逐步成為國際GIS 學術界和應用部門的研究與應用課題。現階段的研究一般集中在增量更新信息的分類、表達、提取、發布與集成方面[2~4],而增量更新制圖方面的研究則很少。文獻[5]提出基于時空數據庫增量更新方法,以地理事件、空間實體變化類型及時空數據庫動態操作算子間關系為基礎,通過地理空間變化事件確定變化的地物要素,實現時空數據庫的自動化或半自動化更新。
本文深入研究了時空數據庫間的空間位置關系,輔以對應的地物類型,動態、自動的確定出更新線劃圖要素與前期版本線劃圖數據庫之間的映射關系,通過設置位置閾值進行位置對比,充分考慮到要素幾何圖形的匹配相關性,對于位置相關性高并且與屬性相匹配的地物進行刪除,剩下的要素即為需要更新的要素。本文編寫了更新要素檢查提取的程序模塊,有效解決了更新要素檢查提取困難的問題,提高了更新要素檢查提取的準確性。
不同格式、不同軟件生成的線劃圖數據,由于數據生產方法不同,由此造成相同線劃圖要素相差很大。本文考慮到同單位生產的數據使用相同的軟件,線劃圖的空間參考、數據的精度、屬性信息的種類及格式、語義表達方式、要素地物的組織格式基本相同,所以不需要對線劃圖進行預處理和數據整合,只需要將兩個時間段的線劃圖數據分別進行合并入庫,建立時空數據庫。
時空數據庫的圖層分類、要素代碼完全相同。檢測更新要素主要遵從3 個原則:
(1)如果兩個地物的位置完全重合并且地物屬性相同,則為不需要更新要素;
(2)兩個地物屬性相同但位置不完全重合,如果歷史地物邊界包含更新地物,則為不需要更新要素。
(3)剩余要素均為需要更新要素。
不需要更新要素判斷情況如表1所示,在屬性相同的前提下,以下位置關系為不需要更新的情況。

表1 不需要更新要素判斷方法
對于要素重合的情況比較好理解,要素完全重合并且屬性相同,說明該地物并沒有變化,目標要素不需要進行更新;對于要素包含的情況,目標地物包含在原地物中,并且目標地物邊界與原地物邊界重合,該種情況主要存在于目標地物在后來圖幅變化之后被打斷,或者原地物被切割造成的,根據作業習慣,很少有目標地物相較于原地物增量變化的情況,這在后面處理中得到了證實。并且以上兩種判斷方法便于統一算法,有利于建模處理。
在建立時空數據庫的基礎上,建立同名地物檢測的工作流程,該流程的關鍵在于提高要素搜索的效率和搜索的準確率,由此本文研究出要素檢測的關鍵技術包括:小區域要素選擇技術、地物分類分區檢測技術、不需要更新地物判斷剔除技術等。
線劃圖數據庫中各層要素數量龐大,例如沈陽市線劃圖數據庫房屋層要素達到500 余萬條,如果全圖層檢測更新要素,會耗費大量的內存和運算量,利用小區域要素選擇技術,按照更新數據庫的要素范圍,設定搜索步長,按照正方形區域進行搜索,可以有效減少要素檢測的時間。利用ArcGIS Engine 提供的ISpatialFilter 接口進行選擇:

地物分類分區檢測技術,是在該搜索區域內,將更新數據庫某圖層的所有地物要素,根據屬性進行分類,然后按照屬性分類要素與歷史數據庫的該類要素進行搜索,可以有效地提高搜索效率。
不需要更新地物判斷剔除技術的主要思想是:如果更新數據庫某要素的所有節點坐標都可以在歷史數據庫同類要素中某個要素的距離在一定閾值范圍內,則可以認為該要素在歷史數據庫中也存在,不需要對它進行更新。如果該要素與所有搜索范圍內的同類要素都超出閾值,則認為該要素需要更新,予以保留。判斷點與線段之間的距離主要有經典算法:求取垂足,然后計算點到垂足距離;面積算法主要是先判斷投影點是否在線段上,投影點在線段延長線上時,最短距離長度為點到端點的線段長度,當投影點在線段上時,先使用海倫公式計算三角形面積,再計算出三角形的高,即為最短距離;矢量算法計算點向量在線段向量上的投影,該方法數學原理復雜,但是便于編程,并且效率很高,該算法:

在時空數據庫中,更新數據庫通過最新的線劃圖合并后生成的,歷史數據庫是上一期更新完成的框架數據庫,更新要素檢測提取流程的目的是剔除位置沒有變化的要素,剩下的即為需要更新入庫的要素。更新數據庫按照搜索區域以及要素屬性逐一提取要素的坐標串,然后從歷史數據庫的對應區域中按照相應屬性逐要素提取線段的坐標串,利用不需要更新地物判斷剔除技術判斷更新數據庫要素與歷史數據庫中要素位置是否重合或位置相關,如果位置重合或相關,刪除更新數據庫中該要素,并判斷下一條記錄;如果遍歷完歷史數據庫中要素仍需要更新,則可以判斷更新數據庫中該要素需要更新。具體更新要素檢測提取流程為:
(1)選擇數據庫需要更新的區域,根據地物的復雜程度選擇搜索步長,對該區域進行網格化處理;
(2)在第i(i=0)個搜素區域內,選擇更新數據庫的k(k=0)圖層,將圖層內要素按照屬性進行分類提取坐標串,存放到數組listuik中;
(3)同(2)步方法在該區域內提取歷史數據庫對應圖層對應要素的線段坐標串,存放到數組listhik中;
(4)從listuik中提取一個要素listuik[m](m =0)的坐標串,與歷史數據庫對應listhik中的不同要素坐標串進行位置比較,如果listuik[m]的所有坐標都與某線段串listhik[n]的某段線段距離在閾值范圍內,說明listuik[m]在歷史數據庫已經存在,刪除該要素;判斷listuik的下一條記錄,最后剩下的即為更新數據庫與歷史數據庫中不能重合的要素,即需要更新的要素;
(5)繼續判斷該圖層中其他屬性的要素,判斷方法同(4)步;
(6)k 圖層判斷完成后,繼續判斷更新數據庫下一圖層,判斷方法同(2)、(3)、(4)、(5)步;
(7)該區域判斷完成后,按照步長判斷下一區域更新數據庫的所有圖層、所有要素的與歷史數據庫要素之間位置關系,方法同(2)~(7)步;
(8)所有區域判斷完成后,更新數據庫中剩下的要素即為需要更新的數據。
數字沈陽地理空間框架項目于2012年3月開始建設,2013年底完成竣工驗收,期間根據航空影像數據對道路及重點建筑進行了更新。根據《數字沈陽地理空間框架項目管理辦法》,每年對矢量數據進行更新。2014年矢量數據更新工作自3月份啟動以來,累計完成了2 500 km21∶ 5 000線劃圖數據的增量更新和近5 000 km21∶ 500線劃圖數據的增量更新工作。在數據更新中,基于ArcGIS Engine 10.1 開發了“框架數據更新管理程序V1.0”,實現了更新要素的自動獲取以及從基礎數據庫向框架數據庫自動轉換,并實現了點、線、面要素的實體化構造技術,有效減輕了工作量,提高了矢量數據的更新質量。
由于框架數據庫的矢量數據主要來源于2012年7月份的線劃圖,因此本文選取了2012年7月份的線劃圖數據作為歷史數據庫,選取2014年3月份的線劃圖數據作為更新數據庫,首先對其進行了預處理,主要工作包括:
(1)利用“框架數據更新管理程序V1.0”將分幅線劃圖數據合并成Geodatabase GDB 數據庫;
(2)對Geodatabase GDB 數據進行數據檢查,刪除重合要素、冗余要素以及屬性錯誤的要素;
(3)構造地理實體,主要工作為面狀要素進行接邊處理,將同屬性、具有空間關系的現狀要素合并,同時對點線面要素進行了屬性配賦。
對沈陽市2012年7月份的歷史數據庫與2014年3月份的線劃圖數據庫進行更新要素檢查對比,為了軟件便于自動匹配對應圖層,在線劃圖數據庫的圖層前面加“new”字符,更新要素檢查程序基于ArcGIS Engine 10.1 軟件開發,界面如圖1所示:

圖1 更新要素檢測提取程序
系統測試環境為Win7 32 位系統,英特爾酷睿i7處理器,4 G內存。檢測完沈陽市域范圍1∶ 500DLG數據,合計411 萬個點要素、917 萬個線要素,共用時間32 h,中間沒有出現錯誤中斷。經檢查,更新要素提取的準確率100%;遺漏的要素在1%以下,經檢核,遺漏的要素的主要原因是由于歷史數據庫數據組織結構與更新數據庫不一致造成的。
檢查需要更新的要素如圖2所示,最新線劃圖數據庫在歷史數據庫數據的基礎上,對小區內的植被以及建筑等進行了補測,通過程序檢查,補測的要素如圖3所示。

圖2 地形圖數據前后對比圖

圖3 檢查出的更新要素
更新要素程序通過區域索引算法,可以自定義檢查對比區域的網格大小,用戶根據地物復雜程度可以自由測試選擇,提高了檢查的速度。
框架數據庫是數字城市地理空間框架的基礎與核心,如何進行框架數據庫的更新是當前面臨的一個難題,地形圖更新要素的檢測及提取算法解決了更新要素提取的方法,代替了以往人工判讀方法,提高了工作效率與更新要素判讀的準確性,地形圖更新方法在此解決了一半的工作量。
更新要素檢測及提取算法從底層進行編程開發,通用性強,并且設置了用戶交互菜單,用戶可以根據實際需求設置搜索步長及地物要素重合精度,提高了 該算法的實用性及搜索準確率,對沈陽市1 000 多平方千米的1∶ 500線劃圖進行處理,只用了一天多時間便將全部更新要素提取出來,極大地減少了人力成本。
該算法從地物的形狀著手,判斷兩個地物之間坐標重合關系,并且考慮到地形圖更新過程中可能對原地物進行的合并、打斷等操作,不是簡單地根據長度、面積等進行判斷,這是該算法的主要創新點。
該算法只是解決了更新要素的檢測與提取,如何將檢測與提取的更新要素直接替換框架數據庫的要素,是接下來的一個重要工作,希望本文能夠對同行有一定的啟發作用。
[1]Cooper A K,Pered A.Incremental Updating and Versioning[C].The 20thInternational Cartographic Conference,Beijing,2001.
[2]陳軍,李志林,蔣捷.基礎地理數據庫的持續更新問題[C].中國地理信息系統協會第三次代表大會暨第七屆年會,北京,2003(3).
[3]林娜,王斌.空間數據庫增量式更新機制的研究[J].測繪科學,2008,33(3):198 ~200.
[4]尹章才,李霖.基于XML 的地圖表達機制研究[J].武漢大學學報·信息科學版,2007,32(2):135 ~138.
[5]胡云崗,陳軍,李志林等.地圖數據縮編更新的模式分類與選擇[J].地理與地理信息科學,2007(7):22 ~24.
[6]張韻,李清泉,曹曉航等.一種道路網信息幾何差異檢測算法[J].測繪學報,2008,37(4):521 ~526.
[7]胡明昊,楊文杰,任明武等.一種基于視覺的道路檢測算法[J].計算機工程與設計,2005,26(7):1074 ~1076.
[8]鐘家強,王潤生.一種基于線特征的道路網變化檢測算法[J].遙感學報,2007,11(1):27 ~33.
[9]李潤生,曹聞.基于距離角度擬合的地圖匹配算法[J].測繪科學,2012,37(4):132 ~135.