張西軍 ,陳樂然,石勇
(1.沈陽市勘察測繪研究院,遼寧 沈陽 110004; 2.重慶市勘測院,重慶 400020)
隨著數(shù)字城市地理空間框架的推廣建設(shè),目前很多城市建立了地理框架數(shù)據(jù)庫,數(shù)據(jù)庫的主要數(shù)據(jù)源為大比例尺數(shù)字線劃圖,如何及時將更新的線劃圖數(shù)據(jù)更新到地理框架數(shù)據(jù)庫中,是框架運維工作人員必須考慮的問題。相對于數(shù)字線劃圖數(shù)據(jù)庫的批量式更新來說,增量式更新僅提供給用戶變化的要素而不是整個新數(shù)據(jù)集[1],近年來逐步成為國際GIS 學(xué)術(shù)界和應(yīng)用部門的研究與應(yīng)用課題?,F(xiàn)階段的研究一般集中在增量更新信息的分類、表達、提取、發(fā)布與集成方面[2~4],而增量更新制圖方面的研究則很少。文獻[5]提出基于時空數(shù)據(jù)庫增量更新方法,以地理事件、空間實體變化類型及時空數(shù)據(jù)庫動態(tài)操作算子間關(guān)系為基礎(chǔ),通過地理空間變化事件確定變化的地物要素,實現(xiàn)時空數(shù)據(jù)庫的自動化或半自動化更新。
本文深入研究了時空數(shù)據(jù)庫間的空間位置關(guān)系,輔以對應(yīng)的地物類型,動態(tài)、自動的確定出更新線劃圖要素與前期版本線劃圖數(shù)據(jù)庫之間的映射關(guān)系,通過設(shè)置位置閾值進行位置對比,充分考慮到要素幾何圖形的匹配相關(guān)性,對于位置相關(guān)性高并且與屬性相匹配的地物進行刪除,剩下的要素即為需要更新的要素。本文編寫了更新要素檢查提取的程序模塊,有效解決了更新要素檢查提取困難的問題,提高了更新要素檢查提取的準確性。
不同格式、不同軟件生成的線劃圖數(shù)據(jù),由于數(shù)據(jù)生產(chǎn)方法不同,由此造成相同線劃圖要素相差很大。本文考慮到同單位生產(chǎn)的數(shù)據(jù)使用相同的軟件,線劃圖的空間參考、數(shù)據(jù)的精度、屬性信息的種類及格式、語義表達方式、要素地物的組織格式基本相同,所以不需要對線劃圖進行預(yù)處理和數(shù)據(jù)整合,只需要將兩個時間段的線劃圖數(shù)據(jù)分別進行合并入庫,建立時空數(shù)據(jù)庫。
時空數(shù)據(jù)庫的圖層分類、要素代碼完全相同。檢測更新要素主要遵從3 個原則:
(1)如果兩個地物的位置完全重合并且地物屬性相同,則為不需要更新要素;
(2)兩個地物屬性相同但位置不完全重合,如果歷史地物邊界包含更新地物,則為不需要更新要素。
(3)剩余要素均為需要更新要素。
不需要更新要素判斷情況如表1所示,在屬性相同的前提下,以下位置關(guān)系為不需要更新的情況。
表1 不需要更新要素判斷方法
對于要素重合的情況比較好理解,要素完全重合并且屬性相同,說明該地物并沒有變化,目標要素不需要進行更新;對于要素包含的情況,目標地物包含在原地物中,并且目標地物邊界與原地物邊界重合,該種情況主要存在于目標地物在后來圖幅變化之后被打斷,或者原地物被切割造成的,根據(jù)作業(yè)習(xí)慣,很少有目標地物相較于原地物增量變化的情況,這在后面處理中得到了證實。并且以上兩種判斷方法便于統(tǒng)一算法,有利于建模處理。
在建立時空數(shù)據(jù)庫的基礎(chǔ)上,建立同名地物檢測的工作流程,該流程的關(guān)鍵在于提高要素搜索的效率和搜索的準確率,由此本文研究出要素檢測的關(guān)鍵技術(shù)包括:小區(qū)域要素選擇技術(shù)、地物分類分區(qū)檢測技術(shù)、不需要更新地物判斷剔除技術(shù)等。
線劃圖數(shù)據(jù)庫中各層要素數(shù)量龐大,例如沈陽市線劃圖數(shù)據(jù)庫房屋層要素達到500 余萬條,如果全圖層檢測更新要素,會耗費大量的內(nèi)存和運算量,利用小區(qū)域要素選擇技術(shù),按照更新數(shù)據(jù)庫的要素范圍,設(shè)定搜索步長,按照正方形區(qū)域進行搜索,可以有效減少要素檢測的時間。利用ArcGIS Engine 提供的ISpatialFilter 接口進行選擇:
地物分類分區(qū)檢測技術(shù),是在該搜索區(qū)域內(nèi),將更新數(shù)據(jù)庫某圖層的所有地物要素,根據(jù)屬性進行分類,然后按照屬性分類要素與歷史數(shù)據(jù)庫的該類要素進行搜索,可以有效地提高搜索效率。
不需要更新地物判斷剔除技術(shù)的主要思想是:如果更新數(shù)據(jù)庫某要素的所有節(jié)點坐標都可以在歷史數(shù)據(jù)庫同類要素中某個要素的距離在一定閾值范圍內(nèi),則可以認為該要素在歷史數(shù)據(jù)庫中也存在,不需要對它進行更新。如果該要素與所有搜索范圍內(nèi)的同類要素都超出閾值,則認為該要素需要更新,予以保留。判斷點與線段之間的距離主要有經(jīng)典算法:求取垂足,然后計算點到垂足距離;面積算法主要是先判斷投影點是否在線段上,投影點在線段延長線上時,最短距離長度為點到端點的線段長度,當(dāng)投影點在線段上時,先使用海倫公式計算三角形面積,再計算出三角形的高,即為最短距離;矢量算法計算點向量在線段向量上的投影,該方法數(shù)學(xué)原理復(fù)雜,但是便于編程,并且效率很高,該算法:
在時空數(shù)據(jù)庫中,更新數(shù)據(jù)庫通過最新的線劃圖合并后生成的,歷史數(shù)據(jù)庫是上一期更新完成的框架數(shù)據(jù)庫,更新要素檢測提取流程的目的是剔除位置沒有變化的要素,剩下的即為需要更新入庫的要素。更新數(shù)據(jù)庫按照搜索區(qū)域以及要素屬性逐一提取要素的坐標串,然后從歷史數(shù)據(jù)庫的對應(yīng)區(qū)域中按照相應(yīng)屬性逐要素提取線段的坐標串,利用不需要更新地物判斷剔除技術(shù)判斷更新數(shù)據(jù)庫要素與歷史數(shù)據(jù)庫中要素位置是否重合或位置相關(guān),如果位置重合或相關(guān),刪除更新數(shù)據(jù)庫中該要素,并判斷下一條記錄;如果遍歷完歷史數(shù)據(jù)庫中要素仍需要更新,則可以判斷更新數(shù)據(jù)庫中該要素需要更新。具體更新要素檢測提取流程為:
(1)選擇數(shù)據(jù)庫需要更新的區(qū)域,根據(jù)地物的復(fù)雜程度選擇搜索步長,對該區(qū)域進行網(wǎng)格化處理;
(2)在第i(i=0)個搜素區(qū)域內(nèi),選擇更新數(shù)據(jù)庫的k(k=0)圖層,將圖層內(nèi)要素按照屬性進行分類提取坐標串,存放到數(shù)組listuik中;
(3)同(2)步方法在該區(qū)域內(nèi)提取歷史數(shù)據(jù)庫對應(yīng)圖層對應(yīng)要素的線段坐標串,存放到數(shù)組listhik中;
(4)從listuik中提取一個要素listuik[m](m =0)的坐標串,與歷史數(shù)據(jù)庫對應(yīng)listhik中的不同要素坐標串進行位置比較,如果listuik[m]的所有坐標都與某線段串listhik[n]的某段線段距離在閾值范圍內(nèi),說明listuik[m]在歷史數(shù)據(jù)庫已經(jīng)存在,刪除該要素;判斷l(xiāng)istuik的下一條記錄,最后剩下的即為更新數(shù)據(jù)庫與歷史數(shù)據(jù)庫中不能重合的要素,即需要更新的要素;
(5)繼續(xù)判斷該圖層中其他屬性的要素,判斷方法同(4)步;
(6)k 圖層判斷完成后,繼續(xù)判斷更新數(shù)據(jù)庫下一圖層,判斷方法同(2)、(3)、(4)、(5)步;
(7)該區(qū)域判斷完成后,按照步長判斷下一區(qū)域更新數(shù)據(jù)庫的所有圖層、所有要素的與歷史數(shù)據(jù)庫要素之間位置關(guān)系,方法同(2)~(7)步;
(8)所有區(qū)域判斷完成后,更新數(shù)據(jù)庫中剩下的要素即為需要更新的數(shù)據(jù)。
數(shù)字沈陽地理空間框架項目于2012年3月開始建設(shè),2013年底完成竣工驗收,期間根據(jù)航空影像數(shù)據(jù)對道路及重點建筑進行了更新。根據(jù)《數(shù)字沈陽地理空間框架項目管理辦法》,每年對矢量數(shù)據(jù)進行更新。2014年矢量數(shù)據(jù)更新工作自3月份啟動以來,累計完成了2 500 km21∶ 5 000線劃圖數(shù)據(jù)的增量更新和近5 000 km21∶ 500線劃圖數(shù)據(jù)的增量更新工作。在數(shù)據(jù)更新中,基于ArcGIS Engine 10.1 開發(fā)了“框架數(shù)據(jù)更新管理程序V1.0”,實現(xiàn)了更新要素的自動獲取以及從基礎(chǔ)數(shù)據(jù)庫向框架數(shù)據(jù)庫自動轉(zhuǎn)換,并實現(xiàn)了點、線、面要素的實體化構(gòu)造技術(shù),有效減輕了工作量,提高了矢量數(shù)據(jù)的更新質(zhì)量。
由于框架數(shù)據(jù)庫的矢量數(shù)據(jù)主要來源于2012年7月份的線劃圖,因此本文選取了2012年7月份的線劃圖數(shù)據(jù)作為歷史數(shù)據(jù)庫,選取2014年3月份的線劃圖數(shù)據(jù)作為更新數(shù)據(jù)庫,首先對其進行了預(yù)處理,主要工作包括:
(1)利用“框架數(shù)據(jù)更新管理程序V1.0”將分幅線劃圖數(shù)據(jù)合并成Geodatabase GDB 數(shù)據(jù)庫;
(2)對Geodatabase GDB 數(shù)據(jù)進行數(shù)據(jù)檢查,刪除重合要素、冗余要素以及屬性錯誤的要素;
(3)構(gòu)造地理實體,主要工作為面狀要素進行接邊處理,將同屬性、具有空間關(guān)系的現(xiàn)狀要素合并,同時對點線面要素進行了屬性配賦。
對沈陽市2012年7月份的歷史數(shù)據(jù)庫與2014年3月份的線劃圖數(shù)據(jù)庫進行更新要素檢查對比,為了軟件便于自動匹配對應(yīng)圖層,在線劃圖數(shù)據(jù)庫的圖層前面加“new”字符,更新要素檢查程序基于ArcGIS Engine 10.1 軟件開發(fā),界面如圖1所示:
圖1 更新要素檢測提取程序
系統(tǒng)測試環(huán)境為Win7 32 位系統(tǒng),英特爾酷睿i7處理器,4 G內(nèi)存。檢測完沈陽市域范圍1∶ 500DLG數(shù)據(jù),合計411 萬個點要素、917 萬個線要素,共用時間32 h,中間沒有出現(xiàn)錯誤中斷。經(jīng)檢查,更新要素提取的準確率100%;遺漏的要素在1%以下,經(jīng)檢核,遺漏的要素的主要原因是由于歷史數(shù)據(jù)庫數(shù)據(jù)組織結(jié)構(gòu)與更新數(shù)據(jù)庫不一致造成的。
檢查需要更新的要素如圖2所示,最新線劃圖數(shù)據(jù)庫在歷史數(shù)據(jù)庫數(shù)據(jù)的基礎(chǔ)上,對小區(qū)內(nèi)的植被以及建筑等進行了補測,通過程序檢查,補測的要素如圖3所示。
圖2 地形圖數(shù)據(jù)前后對比圖
圖3 檢查出的更新要素
更新要素程序通過區(qū)域索引算法,可以自定義檢查對比區(qū)域的網(wǎng)格大小,用戶根據(jù)地物復(fù)雜程度可以自由測試選擇,提高了檢查的速度。
框架數(shù)據(jù)庫是數(shù)字城市地理空間框架的基礎(chǔ)與核心,如何進行框架數(shù)據(jù)庫的更新是當(dāng)前面臨的一個難題,地形圖更新要素的檢測及提取算法解決了更新要素提取的方法,代替了以往人工判讀方法,提高了工作效率與更新要素判讀的準確性,地形圖更新方法在此解決了一半的工作量。
更新要素檢測及提取算法從底層進行編程開發(fā),通用性強,并且設(shè)置了用戶交互菜單,用戶可以根據(jù)實際需求設(shè)置搜索步長及地物要素重合精度,提高了 該算法的實用性及搜索準確率,對沈陽市1 000 多平方千米的1∶ 500線劃圖進行處理,只用了一天多時間便將全部更新要素提取出來,極大地減少了人力成本。
該算法從地物的形狀著手,判斷兩個地物之間坐標重合關(guān)系,并且考慮到地形圖更新過程中可能對原地物進行的合并、打斷等操作,不是簡單地根據(jù)長度、面積等進行判斷,這是該算法的主要創(chuàng)新點。
該算法只是解決了更新要素的檢測與提取,如何將檢測與提取的更新要素直接替換框架數(shù)據(jù)庫的要素,是接下來的一個重要工作,希望本文能夠?qū)ν杏幸欢ǖ膯l(fā)作用。
[1]Cooper A K,Pered A.Incremental Updating and Versioning[C].The 20thInternational Cartographic Conference,Beijing,2001.
[2]陳軍,李志林,蔣捷.基礎(chǔ)地理數(shù)據(jù)庫的持續(xù)更新問題[C].中國地理信息系統(tǒng)協(xié)會第三次代表大會暨第七屆年會,北京,2003(3).
[3]林娜,王斌.空間數(shù)據(jù)庫增量式更新機制的研究[J].測繪科學(xué),2008,33(3):198 ~200.
[4]尹章才,李霖.基于XML 的地圖表達機制研究[J].武漢大學(xué)學(xué)報·信息科學(xué)版,2007,32(2):135 ~138.
[5]胡云崗,陳軍,李志林等.地圖數(shù)據(jù)縮編更新的模式分類與選擇[J].地理與地理信息科學(xué),2007(7):22 ~24.
[6]張韻,李清泉,曹曉航等.一種道路網(wǎng)信息幾何差異檢測算法[J].測繪學(xué)報,2008,37(4):521 ~526.
[7]胡明昊,楊文杰,任明武等.一種基于視覺的道路檢測算法[J].計算機工程與設(shè)計,2005,26(7):1074 ~1076.
[8]鐘家強,王潤生.一種基于線特征的道路網(wǎng)變化檢測算法[J].遙感學(xué)報,2007,11(1):27 ~33.
[9]李潤生,曹聞.基于距離角度擬合的地圖匹配算法[J].測繪科學(xué),2012,37(4):132 ~135.