楊文杰,張新長,郭泰圣
(中山大學 地理科學與規(guī)劃學院,廣東 廣州 510275)
地籍數(shù)據(jù)是地籍管理信息系統(tǒng)的核心[1],宗地又是地籍數(shù)據(jù)中尤為重要的一部分,隨著經(jīng)濟的快速發(fā)展,宗地數(shù)據(jù)的變化速度也越來越快,為了保持宗地數(shù)據(jù)的現(xiàn)勢性,需要構(gòu)建一種恰當?shù)姆椒▉磉M行宗地數(shù)據(jù)的更新。近年來,國內(nèi)外學者對于數(shù)據(jù)的更新方法進行了一些研究。陳軍[2]等根據(jù)歸納出的拓撲聯(lián)動類型,提出了一種地籍數(shù)據(jù)庫的增量更新方法;張豐[3]等通過結(jié)合對象建模技術(shù)和時空演變過程表達思想,建立了一種以過程為核心的地籍數(shù)據(jù)庫更新模型;周曉光[4]等以地理事件、空間實體變化類型及時空數(shù)據(jù)庫動態(tài)算子間的關(guān)系為基礎(chǔ),提出了一種基于事件的增量更新方法;張新長[5]等針對GIS增量更新中存在的一致性維護與空間沖突問題,以一致性維護與空間沖突處理為切入點,提出一種自適應(yīng)的矢量數(shù)據(jù)增量更新方法。
本文基于宗地數(shù)據(jù)的版本-增量的更新研究,根據(jù)宗地在更新過程中出現(xiàn)的變化情況進行分析,不僅利用基態(tài)和修正數(shù)據(jù),而且還利用相對于不同更新版本之間的增量數(shù)據(jù),能夠很好地完成宗地數(shù)據(jù)的增量更新,維護宗地數(shù)據(jù)的現(xiàn)勢性。
基于版本-增量的數(shù)據(jù)增量更新模型采用版本表示地理現(xiàn)象的狀態(tài),用增量表示基于版本的時空現(xiàn)象變化。該模型可以認為是基態(tài)修正模型、基于事件的時空數(shù)據(jù)模型、時空復合模型的抽象,是三者的理論基礎(chǔ)[6]。版本-增量時空數(shù)據(jù)模型的空間幾何作為時空原子不可再分,只能以出現(xiàn)、消亡和更替等變化,其中更替又可以表示為一個地理要素的消亡和另一個地理要素出現(xiàn)的過程,因此版本-增量時空數(shù)據(jù)模型可以用出現(xiàn)和消亡兩個過程變化來表示。
圖1顯示了宗地變化在版本-增量數(shù)據(jù)庫中存儲的情況,分別包括宗地新建、宗地刪除、宗地合并、宗地分割等宗地變化情況[7]。版本-增量數(shù)據(jù)庫只會記錄這次變化相對于上次變化的增量數(shù)據(jù),如圖1所示。
(1) 更新機制
本文在版本-增量更新數(shù)據(jù)模型的基礎(chǔ)上進行了改進,不只是利用相對于基態(tài)的增量數(shù)據(jù),而且利用了相對于不同更新版本的增量數(shù)據(jù),以適應(yīng)地籍數(shù)據(jù)庫中宗地數(shù)據(jù)的更新操作和對于歷史更新數(shù)據(jù)的回溯操作。
圖2所示的是基于版本-增量機制的宗地數(shù)據(jù)更新改進模型,將T0時刻宗地數(shù)據(jù)的狀態(tài)作為基態(tài)存入數(shù)據(jù)庫中,在T1時刻新增加了一塊宗地,T1時刻相對于T0時刻基態(tài)的增量為Change(1-0),將Change(1-0)與基態(tài)數(shù)據(jù)進行疊加可得到T1時刻數(shù)據(jù)庫中的狀態(tài);在T2時刻刪除了一塊宗地,此時不僅要存儲T2時刻相對于T0時刻基態(tài)的增量數(shù)據(jù)Change(2-0),還要存儲T2時刻相對于T1時刻宗地的增量數(shù)據(jù)Change(2-1);同理,在T3時刻宗地狀態(tài)相對于基態(tài)的增量數(shù)據(jù)為Change(3-0),相對于T1時刻的增量數(shù)據(jù)為Change(3-1),相對于T2時刻的增量數(shù)據(jù)為Change(3-2);同理,T4時刻需要存儲的增量數(shù)據(jù)依次為Change(4-0)、Change(4-1)、Change(4-2)、Change(4-3)。因此,如果宗地在某個時間段內(nèi)發(fā)生了n次變化,則Tn時刻需要存儲在數(shù)據(jù)庫中的增量數(shù)據(jù)包括Change(n-0)、Change(n-1)、Change(n-2),…,Change(n-(n-1))。
圖1 版本-增量更新數(shù)據(jù)模型
這種增量更新能夠有效地完成地籍數(shù)據(jù)庫中宗地數(shù)據(jù)的增量更新,如圖1所示,如果用戶先調(diào)用了Change(1-0)數(shù)據(jù),使用戶的數(shù)據(jù)庫更新到T1時刻宗地的狀態(tài),即圖2中Amendment (1)的狀態(tài)。若此時宗地已經(jīng)更新了4次,最新的宗地狀態(tài)為T4時刻的狀態(tài),則用戶只需調(diào)用T4時刻相對于T1時刻的增量數(shù)據(jù)Change(4-1),與T1時刻的宗地狀態(tài)進行疊加更新,即可更新到T4時刻宗地的狀態(tài)。
(2) 物理存儲方式
在物理存儲方面,本文將宗地數(shù)據(jù)中的宗地要素封裝在具有唯一標識的對象中,利用要素表、幾何表和屬性表記錄宗地要素和宗地要素的空間變化,這樣無論宗地要素發(fā)生多少次變化,在表中只有一條記錄,能夠減少數(shù)據(jù)庫中的數(shù)據(jù)冗余,以圖2中T1—T3時刻的宗地變化情況為例(如表1、表2、表3所示)。
表1 更新模型要素表
表2 更新模型幾何表
表3 更新模型屬性表
T3時刻相對于T1時刻的增量數(shù)據(jù),只需要考慮T1—T3時刻之間(不包括T1,包括T3)發(fā)生變化的宗地要素即可,T3時刻相對于T1時刻的增量數(shù)據(jù)可以表示為
(1)
其中,Change(3-1)表示T3時刻相對于T1時刻的增量數(shù)據(jù);∑new表示在T1—T3時刻之間新建的宗地總和,如表1中的宗地F;∑delete表示T1—T3時刻刪除的宗地總和,如表1中的宗地A、B、D。
可以推出Tj時刻相對于Ti時刻的增量數(shù)據(jù)(j>i)
(2)
其中,Change(j-i)表示Tj時刻相對于Ti時刻的增量數(shù)據(jù);∑new表示在Ti—Tj時刻之間新建的宗地總和;∑delete表示Ti—Tj時刻刪除的宗地總和。
(3) 宗地變化對比查詢
地籍數(shù)據(jù)庫中宗地數(shù)據(jù)可能隨著時間的變化而不斷發(fā)生變化,一個區(qū)域范圍內(nèi)的數(shù)據(jù)有的部分經(jīng)過了多次更新,有的部分從未被更新,仍然是最初的基態(tài), 歷史數(shù)據(jù)回溯通過該時刻所屬的基態(tài)和修改信息來恢復該歷史時刻的全貌[8]。使用版本-增量更新模型要進行較多的操作,使用本文提出的基于版本-增量的更新改進模型只需直接利用數(shù)據(jù)庫中的記錄即可。如圖1中要進行T3時刻和T2時刻宗地狀態(tài)對比,如果只利用相對于基態(tài)的增量變化,則還需要進行比較分析才可以得到T3時刻和T2時刻的宗地狀態(tài),當如圖2所示進行增量的存儲后,只需使用圖2中的Change(3-2)數(shù)據(jù),就可以得到T3時刻相對于T2時刻的宗地增量情況,宗地變化對比表如表4所示。
圖2 基于版本-增量的增量更新改進模型
本文的更新過程為:首先判斷是不是第一次更新,或者說是基礎(chǔ)數(shù)據(jù)是否為數(shù)據(jù)庫中的基態(tài)數(shù)據(jù)(T0時刻的宗地狀態(tài)),如果是第一次更新,則用基態(tài)數(shù)據(jù)和相對于基態(tài)數(shù)據(jù)的增量數(shù)據(jù)Change(i-0)進行疊加,進行第一次更新,更新后的數(shù)據(jù)則表示地籍要素變化后宗地的狀態(tài),表示為
Amendment(1)={Original,Change(i-0)}
(3)
其中,Amendment(1)表示更新后的宗地數(shù)據(jù);Original表示基態(tài)數(shù)據(jù);Change(i-0)表示宗地第i次變化后相對于基態(tài)數(shù)據(jù)的增量。
表4 宗地變化對比表
如果宗地發(fā)生了第m次變化(m>i),如果需要更新到m次變化后的宗地狀態(tài),則需要用更新后的數(shù)據(jù)Amendment(1)和m次更新后的數(shù)據(jù)相對于i次更新后數(shù)據(jù)的增量數(shù)據(jù)Change(m-i)相疊加,則得到m次更新后的宗地數(shù)據(jù),可表示為
Amendment(2)={Amendment(1),Change(m-i)}
(4)
其中,Amendment(2)表示第二次增量更新后的數(shù)據(jù);Amendment(1)表示上式中第一次更新后的數(shù)據(jù);Change(m-i)表示第m次變化相對于第i次變化的增量。
據(jù)式(3)、式(4)可得到一個適用性的公式為
Amendment(t)=
其中,Amendment(t)表示第t次增量更新后的數(shù)據(jù);Original表示版本數(shù)據(jù);Change(i-0)表示第i次變化相對于宗地數(shù)據(jù)版本數(shù)據(jù)庫的增量數(shù)據(jù);Change(m-i)表示第m次變化相對于第i次變化的增量數(shù)據(jù)(m>i);Amendment(t-1)表示第t-1次更新后的數(shù)據(jù),具體更新流程如圖3所示。
圖3 更新流程
圖3右側(cè)具體更新過程的實現(xiàn)主要是根據(jù)不同變化類型進行不同的操作,可將宗地變化分為宗地新建、宗地刪除、宗地合并、宗地分割、公共邊界調(diào)整五種類型,然后根據(jù)不同的變化類型進行不同的更新操作。
為驗證本文所提出的更新模型與方法,本文在Windows環(huán)境下,以Visual Studio 2008為開發(fā)工具,集成ArcGIS Engine開發(fā)包研制了更新原型系統(tǒng),實現(xiàn)了宗地數(shù)據(jù)的增量更新,更新數(shù)據(jù)的對比查詢等功能,以1∶1 000矢量宗地地形圖數(shù)據(jù)進行了試驗(見圖4)。
圖4中的宗地數(shù)據(jù)進行了4次變化,其中T1時刻新建了兩塊宗地,T2時刻刪除了兩塊宗地,T3時刻將兩塊宗地合并成了一塊宗地,T4時刻分別將兩塊宗地進行了分割??梢钥吹礁倪M的版本-增量更新模型根據(jù)宗地的變化情況完成了地籍數(shù)據(jù)庫中宗地數(shù)據(jù)的增量更新工作。
圖4 更新前后的宗地數(shù)據(jù)對比
本文提出的增量更新方法由于利用了每次宗地要素變化時相對于其之前所有變化的增量數(shù)據(jù),因此能夠有效地進行地籍要素變化對比的查詢。
試驗結(jié)果顯示在宗地數(shù)據(jù)增量更新過程中,本文提出的基于版本-增量更新方法的改進能很有效地進行地籍數(shù)據(jù)庫中宗地數(shù)據(jù)的增量更新操作,具有一定的實用價值。
本文以版本-增量的更新方式為切入點,提出了在宗地數(shù)據(jù)中適用的、基于版本-增量的數(shù)據(jù)更新方法的改進方法。試驗表明該方法具有一定的實用價值,可以應(yīng)用在地籍數(shù)據(jù)庫中宗地數(shù)據(jù)的增量更新中。因此,可以得出以下結(jié)論:
1) 本文所提出的基于版本-增量的宗地數(shù)據(jù)更新改進算法綜合考慮了宗地要素間的關(guān)系和宗地要素在不同時期發(fā)生的變化情況,記錄增量數(shù)據(jù)在發(fā)生變化時相對于版本以及相對于其他變化的增量數(shù)據(jù),能很好地完成宗地數(shù)據(jù)的增量更新工作。
2) 基于版本-增量的宗地數(shù)據(jù)更新改進方法,利用了增量數(shù)據(jù)相對于其他變化的增量數(shù)據(jù),能有效地進行地籍要素的變化對比查詢。
但本文提出的增量更新方法也有不足之處:對于地籍數(shù)據(jù)庫中的點要素和線要素的增量更新還需要進一步的研究,這些也將是筆者后續(xù)的研究重點。
參考文獻:
[1] 陳紅艷,于曉峰,李曉燕,等. 城鎮(zhèn)地籍數(shù)據(jù)庫建設(shè)及發(fā)展趨向[J]. 測繪通報,2010(7):65-67.
[2] 陳軍,林艷,劉萬增,等. 面向更新的空間目標快照差分類與形式化描述[J]. 測繪學報,2012,41(1):108-114.
[3] 張豐,劉南,劉仁義,等. 面向?qū)ο蟮牡丶畷r空過程表達與數(shù)據(jù)更新模型研究[J]. 測繪學報,2010,39(3):303-309.
[4] 周曉光,陳軍,朱建軍,等. 基于事件的時空數(shù)據(jù)庫增量更新[J]. 中國圖象圖形學報,2006(10):1431-1438.
[5] 張新長,郭泰圣,唐鐵. 一種自適應(yīng)的矢量數(shù)據(jù)增量更新方法研究[J]. 測繪學報,2012,41(4):613-619.
[6] 尹章才,李霖. 基于快照-增量的時空索引機制研究[J]. 測繪學報,2005,34(3):257-261,282.
[7] 龔磊,張新長. 時空模型在宗地變更和歷史回溯中的研究[J]. 地理信息世界,2008(1):53-57.
[8] 熊湘琛,張新長,曹凱濱. 城市基礎(chǔ)地形數(shù)據(jù)增量更新研究[J]. 測繪通報,2009(3):24-26.