羅國(guó)瑋,張新長(zhǎng),齊立新
(1.中山大學(xué)地理科學(xué)與規(guī)劃學(xué)院∥廣東省城市化與地理環(huán)境空間模擬重點(diǎn)實(shí)驗(yàn)室,廣東 廣州510275;2.廣西師范學(xué)院,廣西 南寧530001)
數(shù)據(jù)更新是保持空間數(shù)據(jù)現(xiàn)勢(shì)性的主要方法,為節(jié)省數(shù)據(jù)采集和更新的時(shí)間,目前大多矢量數(shù)據(jù)更新采用增量更新方法,只更新發(fā)生變化了的數(shù)據(jù)。文獻(xiàn)[1]提出了基于拓?fù)渎?lián)動(dòng)的更新方法,該方法比較適合地籍?dāng)?shù)據(jù)庫(kù)的增量更新。文獻(xiàn)[2]提出了一種自適應(yīng)的矢量數(shù)據(jù)增量更新方法,通過(guò)范圍內(nèi)要素的替換,并進(jìn)行接邊操作,實(shí)現(xiàn)增量更新;文獻(xiàn)[3]提出基態(tài)修正的GIS 數(shù)據(jù)庫(kù)增量更新方法,設(shè)計(jì)了增量信息的存儲(chǔ)模型,但這些方法沒(méi)有對(duì)地理要素的變化信息進(jìn)行記錄存儲(chǔ)。另外還有基于事件及面向時(shí)空過(guò)程的更新方法[4-6],對(duì)觸發(fā)地物發(fā)生變化的事件進(jìn)行了記錄存儲(chǔ),但這類(lèi)方法面向業(yè)務(wù)主體構(gòu)建,且對(duì)地理事件信息的完整性要求高。目前對(duì)矢量空間數(shù)據(jù)庫(kù)增量更新技術(shù)的研究包括增量信息的存儲(chǔ)模型、增量信息發(fā)現(xiàn)和歷史數(shù)據(jù)的組織問(wèn)題,以及版本生成與時(shí)空信息檢索等[2],但很少有對(duì)變化信息的表達(dá)及存儲(chǔ)模型進(jìn)行研究。
數(shù)據(jù)更新操作改變了空間數(shù)據(jù)庫(kù)的內(nèi)容,增量更新只對(duì)變化了的空間信息進(jìn)行操作[7],更新后的地理要素與更新前相比會(huì)發(fā)生變化,這些要素的變化過(guò)程對(duì)了解地物的生命周期及發(fā)展趨勢(shì)有重要的意義[8]。目前的矢量數(shù)據(jù)增量更新方法大多只是將被替換數(shù)據(jù)存入歷史庫(kù),并沒(méi)有記錄由于更新導(dǎo)致的地理要素變化信息,多次更新導(dǎo)致要素發(fā)生變化后,很難識(shí)別新舊數(shù)據(jù)之間的要素關(guān)聯(lián)關(guān)系。本文提出了在矢量數(shù)據(jù)增量更新中加入變化過(guò)程庫(kù)對(duì)地理要素的變化過(guò)程進(jìn)行存儲(chǔ),設(shè)計(jì)了通用的地理要素的變化信息存儲(chǔ)模型,并對(duì)地理要素變化過(guò)程庫(kù)的應(yīng)用做了示例說(shuō)明。
本文研究的增量更新方法是針對(duì)同級(jí)比例尺的矢量空間數(shù)據(jù)。目前,常用的空間數(shù)據(jù)增量更新有基于范圍的更新方法和基于要素的更新方法[9]?;诜秶母路椒ㄊ菍⑴f數(shù)據(jù)按相應(yīng)的范圍挖空后將新數(shù)據(jù)填入,然后進(jìn)行要素接邊操作?;谝氐母率菍?duì)新舊數(shù)據(jù)的要素進(jìn)行變化檢測(cè),只更新變化了的要素。為便于在數(shù)據(jù)更新的同時(shí)能記錄地物的變化過(guò)程,本文采用基于要素的更新方法。更新流程如圖1所示。更新工作主要在臨時(shí)庫(kù)中進(jìn)行,首先要對(duì)新舊數(shù)據(jù)做要素匹配及變化檢測(cè),當(dāng)檢測(cè)到變化信息后,再對(duì)舊數(shù)據(jù)進(jìn)行添加、刪除及修改操作,進(jìn)行相應(yīng)的沖突檢測(cè)后,將要素的變化信息存入變化過(guò)程庫(kù),被修改和刪除的舊要素存入歷史庫(kù)。
圖1 矢量數(shù)據(jù)更新流程Fig.1 The process vector data update
變化信息檢測(cè)的目的是為了發(fā)現(xiàn)增量信息,將新數(shù)據(jù)與舊數(shù)據(jù)進(jìn)行要素匹配。對(duì)于不同類(lèi)型要素的變化檢測(cè)采用不同的方法進(jìn)行,點(diǎn)狀要素采用歐式距離及屬性信息[10]進(jìn)行匹配,線狀要素的匹配與變化檢測(cè)[11]從幾何上采用緩沖區(qū)分析、交叉面、hausdorff距離[12]、概率統(tǒng)計(jì)[13-14]等方法結(jié)合屬性信息進(jìn)行,面狀要素的匹配與變化檢測(cè)可以通過(guò)重心距離、重疊面積結(jié)合屬性信息進(jìn)行。本文以面要素為例,采用空間關(guān)聯(lián)度結(jié)合屬性語(yǔ)義關(guān)聯(lián)度進(jìn)行要素變化檢測(cè)。設(shè)Ai(i=0,1,2…m)為新要素,Bj(j=0,1,2…n)為舊要素。先以新要素Ai生成緩沖區(qū),獲取與Ai緩沖區(qū)相交的候選要素Bj,空間關(guān)聯(lián)度P(Ai,Bj) 通過(guò)計(jì)算Ai、Bj要素緩沖區(qū)的交集與并集的面積比得到,計(jì)算方法如公式(1)所示。
(1)
E(Ai,Bj)=S(Ai,Bj)ω1+P(Ai,Bj)ω2
(2)
新舊要素的關(guān)聯(lián)度計(jì)算方法如公式(2)所示。E(Ai,Bj)為新舊要素的關(guān)聯(lián)度,S(Ai,Bj)為新舊要素的屬性信息語(yǔ)義關(guān)聯(lián)度,由新舊要素的屬性字段內(nèi)容對(duì)比得到[15],P(Ai,Bj)為新舊要素空間關(guān)聯(lián)度,ω1,ω2分別為空間關(guān)聯(lián)度及語(yǔ)義關(guān)聯(lián)度的權(quán)重,且ω1+ω2=1,實(shí)驗(yàn)發(fā)現(xiàn)當(dāng)取ω1=ω2=0.5時(shí),檢測(cè)的效果比較理想。如E(Ai,Bj)高于給定閾值,說(shuō)明新舊要素之間存在關(guān)聯(lián)關(guān)系,新要素為舊要素變化而來(lái);否則,說(shuō)明新舊要素間不存在關(guān)聯(lián),新要素是在舊要素消失后產(chǎn)生。
通過(guò)變化檢測(cè)得到地理要素的變化類(lèi)型有新增(新舊要素0∶1)、刪除(新舊要素1∶0)、合并(新舊要素n∶1)、分裂(新舊要素1∶n)、聚合(新舊要素m∶n)、幾何形狀與位置變化(新舊要素1∶1)、屬性變化(新舊要素1∶1)幾種。
基于要素的矢量數(shù)據(jù)更新是在數(shù)據(jù)庫(kù)中將新要素替換舊要素,更新信息的表達(dá)式為:
Updateinfo={OID,Spatialinfo,Attributeinfo,MeasuredTime,Updatetime}
其中OID為要素的唯一標(biāo)識(shí),OID可以是按相關(guān)標(biāo)準(zhǔn)編碼,也可以是系統(tǒng)自動(dòng)生成的Objectid或GUID。Spatialinfo是空間信息,Attributeinfo為屬性信息,MeasuredTime是測(cè)量時(shí)間,Updatetime是更新時(shí)間。由于測(cè)量時(shí)間與更新時(shí)間存在時(shí)間差,測(cè)量時(shí)間作為更接近于地物的實(shí)際變化時(shí)間。
更新操作對(duì)于新增和刪除要素,直接在數(shù)據(jù)庫(kù)中插入和刪除信息,對(duì)于空間信息與屬性信息發(fā)生改變的要素,先將舊要素刪除,再插入新要素。更新過(guò)程中需要將變化信息存入變化過(guò)程庫(kù),同時(shí)將刪除的要素存入歷史庫(kù)。
數(shù)據(jù)更新引起矢量數(shù)據(jù)的變化信息需要存儲(chǔ)到變化過(guò)程庫(kù),變化信息的表達(dá)式為:
ChangeInfo={ChangeID,Old(O1、O2…Om),ChangeType,New(O1、O2…On),ChangeTime}
ChangeID為變化信息編號(hào), Old(O1、O2…Om)為變化前舊要素的集合,New(O1、O2…On)為變化后新要素的集合。ChangeType為變化類(lèi)型,變化過(guò)程庫(kù)中記錄的要素變化類(lèi)型如表1所示, ChangeTime為變化時(shí)間。
表1 要素變化類(lèi)型Table 1 Changes of type
為方便數(shù)據(jù)表存儲(chǔ),變化過(guò)程數(shù)據(jù)表設(shè)計(jì)為:
ChangeIDOldOIDChangeTypeNewOIDChangeTime
OldOID為舊要素的標(biāo)識(shí)(與更新時(shí)存入歷史庫(kù)的要素標(biāo)識(shí)一致),NewOID為新要素的標(biāo)識(shí)。由于數(shù)據(jù)更新會(huì)引起空間信息和屬性信息的變化,因此,一組新舊要素可以同時(shí)產(chǎn)生多條變化信息記錄。
因要素發(fā)生合并、分裂、聚合等變化時(shí),新要素ID會(huì)發(fā)生變化,變化信息表可以起到現(xiàn)狀數(shù)據(jù)與歷史數(shù)據(jù)、不同階段歷史數(shù)據(jù)之間的要素關(guān)聯(lián)作用。
為了解要素的變化過(guò)程,不僅需要了解要素發(fā)生了哪些變化,還需要了解要素變化了多少,如地物長(zhǎng)度變化的大小,面積變化的大小,哪些屬性發(fā)生了變化等。地物長(zhǎng)度及面積的變化可以通過(guò)與歷史庫(kù)中的要素長(zhǎng)度及面積字段的對(duì)比方便的獲取,但對(duì)于屬性信息的變化,由于各圖層屬性字段個(gè)數(shù)不一致,通過(guò)與歷史庫(kù)要素信息進(jìn)行比較需要遍歷所有字段,開(kāi)銷(xiāo)較大,而且屬性信息變化表達(dá)不夠直觀。本文設(shè)計(jì)了屬性信息變化存儲(chǔ)方式:
Attributeinfo={ChangeID,Changefields(field1,field2,…,fieldn), Ovalues(value1,values2,…,valuen), Nvalues(value1,values2,…,valuen)}
其中,Changefields (field1,field2,…,fieldn)為變化屬性字段的集合,Ovalues(value1,values2,…,valuen)為要素變化前屬性字段值的集合,Nvalues(value1,values2,…,valuen)為變化后要素屬性字段值的集合。為方便數(shù)據(jù)表存儲(chǔ),屬性信息變化數(shù)據(jù)表設(shè)計(jì)為:
IDChangeIDChangefieldOldvalueNewvalue
其中ChangeID與變化過(guò)程數(shù)據(jù)表中的ChangeID關(guān)聯(lián),Changefield為發(fā)生變化的屬性字段名,Oldvalue為變化前屬性字段的值,Newvalue為變化后屬性字段的值。
更新過(guò)程中被刪除和修改的數(shù)據(jù)將存入歷史庫(kù),為方便歷史數(shù)據(jù)的檢索,歷史數(shù)據(jù)庫(kù)的構(gòu)建參考了時(shí)空數(shù)據(jù)模型,歷史信息表達(dá)式為:
HistoryInfo={OID,Spatialinfo,Attributeinfo,StartTime,EndTime,UpdateTime}
其中Spatialinfo為空間信息,Attributeinfo為屬性信息,StartTime,EndTime代表該歷史數(shù)據(jù)存在的開(kāi)始時(shí)間和結(jié)束時(shí)間,UpdateTime為被更新時(shí)間。
變化過(guò)程庫(kù)、現(xiàn)勢(shì)庫(kù)、歷史庫(kù)的關(guān)系如圖2所示。
圖2 變化過(guò)程庫(kù)、現(xiàn)勢(shì)庫(kù)、歷史庫(kù)之間的關(guān)系Fig.2 The relationship between change process database, current database and history database
通過(guò)變化過(guò)程庫(kù)的查詢,可以了解地理要素在一段時(shí)期內(nèi)的變化情況,包括地理要素發(fā)生了哪些變化,變化前后地理要素的對(duì)應(yīng)關(guān)系。如要了解現(xiàn)狀庫(kù)中某地理要素的變化情況,可對(duì)通過(guò)要素編號(hào)OID對(duì)變化過(guò)程表進(jìn)行查詢,能夠查詢到要素的變化類(lèi)型,由哪一個(gè)要素變化而來(lái),通過(guò)遞歸查詢,將上一個(gè)狀態(tài)的要素編號(hào)(OLDOID)作為新要素變化(NewOID)進(jìn)行查詢,可以得到地理要素的全部變化信息。查詢算法偽代碼如下:
SelectFeatureInfo(string FeatureID)// FeatureID為地理要素的ID號(hào)
{
Featureclass tb= Searchchangeinfo(FeatureID)//查詢變化信息庫(kù)中NewOID= FeatureID的要素信息
IF (tb !=null)//判斷查詢結(jié)果是否為空
{
for (i=0; i { Saveinfo(tb.row);//將變化信息存入查詢結(jié)果隊(duì)列 SelectFeatureInfo(tb[OldID]);//遞歸調(diào)用,將下一狀態(tài)的OldID作為上一狀態(tài)的NewID傳入函數(shù) } } Else Outputinfo();//完成查詢后輸出結(jié)果。 } 下面以一面要素A的變化過(guò)程為例說(shuō)明。在2008年10月至2010年9月兩年時(shí)間內(nèi),面要素A發(fā)生了面積擴(kuò)大、名稱改名、與其它要素合并3次變化。 序號(hào)變化類(lèi)型變化時(shí)間變化語(yǔ)義描述1面積擴(kuò)大20081009A面積擴(kuò)大2屬性變化20090105A名稱改變3合并20100908A與B合并形成素C 弧段長(zhǎng)度是線要素比較關(guān)心的信息,如道路、水系在一段時(shí)期內(nèi)的長(zhǎng)度變化。由于變化過(guò)程庫(kù)記錄了變化前后的要素對(duì)應(yīng)關(guān)系,因此很容易對(duì)單個(gè)要素或多個(gè)要素的長(zhǎng)度變化進(jìn)行計(jì)算。 單個(gè)線要素長(zhǎng)度變化為新要素與舊要素的長(zhǎng)度差。 多個(gè)線要素的長(zhǎng)度變化計(jì)算公式(3)所示,m為要素變化前的數(shù)目,n為要素變化后的數(shù)目。 (3) L能夠反映線狀地物在一段時(shí)間內(nèi)的總體變化趨勢(shì),當(dāng)L>0,說(shuō)明總體變化趨勢(shì)為延長(zhǎng),L<0,說(shuō)明線總體變化趨勢(shì)為縮短。 面積變化是面要素比較更新的變化因素,如居民地、植被覆蓋面在一段時(shí)期內(nèi)的面積變化大小。通過(guò)變化過(guò)程庫(kù)中的新舊地理要素對(duì)應(yīng)關(guān)系,可以方便的對(duì)單個(gè)或多個(gè)面要素的面積變化進(jìn)行計(jì)算。 單個(gè)面要素面積變化為新要素與舊要素的面積差。多個(gè)面要素的面積變化計(jì)算公式(4)所示,m為變化前要素的數(shù)目,n為變化后要素的數(shù)目。 (4) 如在T1到T2時(shí)間內(nèi)(T1 當(dāng)ΔS>0,說(shuō)明面要素的總體變化趨勢(shì)為擴(kuò)張,ΔS<0,說(shuō)明面要素的總體發(fā)展變化為縮小。 本文采用Visual Studio 2010結(jié)合ArcGis Engine 10開(kāi)發(fā)了一套矢量數(shù)據(jù)增量更新系統(tǒng),以某市地形圖更新為例來(lái)說(shuō)明系統(tǒng)的應(yīng)用效果。當(dāng)采用1∶2 000地形圖數(shù)據(jù)進(jìn)行了應(yīng)用試驗(yàn)時(shí),在居民地的更新過(guò)程中,系統(tǒng)對(duì)新圖層中495個(gè)要素與舊圖層的進(jìn)行了正反向變化信息檢測(cè),發(fā)現(xiàn)新增要素6個(gè),消失要素4個(gè),分裂要素2個(gè),合并要素1個(gè),擴(kuò)大3個(gè),縮小2個(gè),屬性變化16個(gè)。要素的變化信息及新舊要素的對(duì)應(yīng)關(guān)系都保存到了變化過(guò)程庫(kù)里的變化過(guò)程表,如表2所示。 表2 變化過(guò)程記錄表Table 2 Change process records 如圖3所示,在地形圖增量更新試驗(yàn)中,以新要素替換了發(fā)生變化的舊要素,并對(duì)地物的變化信息進(jìn)行了存儲(chǔ)。如圖4所示,通過(guò)對(duì)變化信息庫(kù)進(jìn)行遞歸查詢,直觀準(zhǔn)確的了解到編號(hào)為5230的要素在2011年5到2013年3月這段時(shí)期內(nèi)經(jīng)歷了新增、縮小、分裂3次變化。 圖3 數(shù)據(jù)更新實(shí)驗(yàn)Fig.3 An experiment Vector data updating 試驗(yàn)案例顯示,對(duì)比以往的矢量數(shù)據(jù)更新方法[2,7],本文提出的方法對(duì)更新要素的變化信息進(jìn)行了識(shí)別與存儲(chǔ),有利于歷史數(shù)據(jù)的回溯及地物生命周期的跟蹤,還能為地物的變化趨預(yù)測(cè)提供參考。 本文采用基于要素的矢量數(shù)據(jù)更新方式,通過(guò)對(duì)要素的變化信息進(jìn)行檢測(cè),只更新變化了的要素,實(shí)現(xiàn)了真正意義上的增量更新;為顧及地理要素的變化過(guò)程,在增量更新的設(shè)計(jì)中加入了變化過(guò)程庫(kù),通過(guò)變化過(guò)程庫(kù)對(duì)更新前后地理要素的變化信息進(jìn)行了記錄,能夠建立新舊要素及歷史要素之間的對(duì)應(yīng)關(guān)系,減輕了歷史數(shù)據(jù)回溯計(jì)算量,方便空間數(shù)據(jù)的管理與維護(hù)。 本文設(shè)計(jì)的更新方法目前只能用于同級(jí)比例尺的矢量數(shù)據(jù)更新,在接下來(lái)的工作中將研究多尺度的顧及要素變化過(guò)程的增量更新方法。進(jìn)一步研究包括:多尺度矢量數(shù)據(jù)的變化信息匹配;多尺度要素變化信息的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)。 [1] 陳軍,周曉光. 基于拓?fù)渎?lián)動(dòng)的增量更新方法研究[J].測(cè)繪學(xué)報(bào),2008,37(3):322-329. [2] 張新長(zhǎng),郭泰圣,唐鐵. 一種自適應(yīng)的矢量數(shù)據(jù)增量更新方法研究[J]. 測(cè)繪學(xué)報(bào),2012,41(4):613-619. [3] 林艷,劉萬(wàn)增,韓剛. 基態(tài)修正的GIS 數(shù)據(jù)庫(kù)增量更新建模[J]. 測(cè)繪科學(xué),2012,37(4):199-201. [4] 張豐,劉南,劉仁義,等. 面向?qū)ο蟮牡丶畷r(shí)空過(guò)程表達(dá)與數(shù)據(jù)更新模型研究[J]. 測(cè)繪學(xué)報(bào),2010,39(3):303-309. [5] 薛存金,周成虎,蘇奮振. 等. 面向過(guò)程的時(shí)空數(shù)據(jù)模型研究[J].測(cè)繪學(xué)報(bào),2010,39(1):95-101. [6] 周曉光,陳軍,朱建軍,等. 基于事件的時(shí)空數(shù)據(jù)庫(kù)增量更新[J]. 中國(guó)圖象圖形學(xué)報(bào),2006,11(10):1431-1438. [7] 應(yīng)申,李霖,劉萬(wàn)增,等. 版本數(shù)據(jù)庫(kù)中基于目標(biāo)匹配的變化信息提取與數(shù)據(jù)更新[J]. 武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2009,34(6):752-755. [8] 朱華吉. 基于多級(jí)模式的地形數(shù)據(jù)庫(kù)變化信息發(fā)布方法[J]. 遼寧工程技術(shù)大學(xué)學(xué)報(bào),2006, 25(1):32-35. [9] 傅仲良,吳建華. 多比例尺空間數(shù)據(jù)庫(kù)更新技術(shù)研究[J]. 武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2007,32(12):1115-1118. [10] COBB M A, CHUNG M J, FOLEY III H, et al. A rule-based approach for the conflation of attributed vector data[J]. GeoInformatica, 1998, 2(1): 7-35. [11] KIELER B, HUANG W, HAUNERT J H, et al. Matching river datasets of different scales[M]//Advances in GIScience. Springer Berlin Heidelberg, 2009: 135-154. [12] DEN M, LI Z L, CHEN X Y. Extended Hausdorff distance for spatial objects in GIS[J]. International Journal of Geographical Information Science, 2007, 21(4): 459-475. [13] WALTER V, FRITSCH D. Matching spatial data sets: a statistical approach[J]. International Journal of Geographical Information Science, 1999, 13(5): 445-473. [14] 童小華, 鄧愫愫, 史文中. 基于概率的地圖實(shí)體匹配方法[J].測(cè)繪學(xué)報(bào), 2007,36(2): 210-217. [15] 王育紅,牛亞輝,林艷. 顧及語(yǔ)義差異的基礎(chǔ)地理信息客戶數(shù)據(jù)庫(kù)更新實(shí)施模型[J]. 地理與地理信息科學(xué),2011,27(1):1-6.2.2 線要素長(zhǎng)度變化信息
2.3 面要素面積變化信息
3 試驗(yàn)案例
4 結(jié) 論