專利名稱:一種基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法
技術領域:
本發(fā)明涉及GIS (地理信息系統(tǒng))的時空數(shù)據(jù)存儲技術領域,尤其涉及一種 基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法。也適用于其他需要記 錄演變歷史的地理空間實體的存儲。
背景技術:
(1)時空數(shù)據(jù)模型
時空數(shù)據(jù)模型是建立具有時態(tài)特征的地理信息應用系統(tǒng)的及其重要的基 礎。 一個實際的時態(tài)GIS應用系統(tǒng),往往需要能夠同時處理屬性數(shù)據(jù)、空間數(shù) 據(jù)和時變狀態(tài)下的空間和屬性關系,以及時空變化的過程和趨勢。
基態(tài)修正模型(base state with amendment)與連續(xù)快照模型相對應,它 是為了避免連續(xù)快照模型將每張未發(fā)生變化部分的快照特征重復進行記錄,按 事先設定的時間間隔采樣,只儲存某個時間(時刻)的數(shù)據(jù)狀態(tài)(稱基態(tài),base state)和相對于基態(tài)的變化量(amendment)。
對基態(tài)的選擇理論上沒有特別的限制,但不同的基態(tài)選擇對查詢效率會產(chǎn) 生較大的影響。 一般從操作速度考慮,選擇檢索頻率最高的狀態(tài)作為基態(tài)。而 系統(tǒng)的當前狀態(tài)往往作為變更的最新結果。
典型的基態(tài)修正模型可以分為以下幾類
全歷史狀態(tài)修正將每個歷史狀態(tài)分別與基態(tài)進行比較以得到對基態(tài)的修 正,這是最基本的一種。當系統(tǒng)數(shù)據(jù)庫更新一次,所有歷史狀態(tài)也必須隨著同 時進行更新才能獲得各狀態(tài)與基態(tài)的差文件,如圖2所示。當歷史變化過程延 續(xù)遠久、時空狀態(tài)繁雜時,采用這種模式進行時空數(shù)據(jù)庫組織是十分困難的。
逐級狀態(tài)修正對全歷史狀態(tài)修正模式進行了改進,如圖3所示,其特點 是歷史上的任一狀態(tài)都是由前一次的修正后得到的。也就是說,可以從當前基 態(tài)一步一步地經(jīng)差文件向后回溯,再現(xiàn)任意指定歷史時刻(時間)的時空關系 和時空過程。這一方式改變了全歷史狀態(tài)修正歷史遠久的差文件計算量,但管 理差文件本身的任務仍然繁重;并且由于是逐漸回溯,進行歷史檢索的效率很 低。
直接K點狀態(tài)修正對逐級狀態(tài)修正方式進行了改進,如圖4所示,其方 法是在一些重要的歷史巨變(key point)或者時變特點的狀態(tài)時刻(時間)與當前基態(tài)直接進行類似全歷史狀態(tài)修正的差文件修正,加快了歷史回退的效率。 間接K點狀態(tài)修正根據(jù)逐級狀態(tài)修正的基本思路,對直接K點狀態(tài)修正 進行變換,如圖5所示,得到一個新的間接K點狀態(tài)修正方式。該方法與直接K 點狀態(tài)修正并無優(yōu)劣之分,關鍵取決于査詢的時態(tài)點的位置和與當前基態(tài)點、K 點以及歷史久遠的程度等多種因素。例如對于t。時刻的歷史時空關系的査詢 和恢復,直接K點狀態(tài)修正具有明顯的優(yōu)勢,因為只需經(jīng)一個差文件運算就能 得到結果;而對于ti時刻,間接K點狀態(tài)修正則明顯會更有利一些,但需要維 護更多的差文件。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術的不足,提供一種基于基態(tài)的動態(tài)修正擴展 模型的宗地時空數(shù)據(jù)存儲方法。
基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法包括如下步驟
1) 基于基態(tài)的動態(tài)修正擴展模型,創(chuàng)建現(xiàn)勢庫、過程庫和歷史庫;
2) 使用地理系統(tǒng)商業(yè)軟件的圖形操作工具變更現(xiàn)勢庫中的地理空間實體, 在過程庫中產(chǎn)生新的變更后地理空間實體數(shù)據(jù);
3) 變更過程中,記錄現(xiàn)勢庫中的地理空間實體數(shù)據(jù)和過程庫中的新的變更 后地理空間實體數(shù)據(jù)之間的關聯(lián)關系,創(chuàng)建時態(tài)核心關聯(lián)索引;
4) 根據(jù)步驟3)產(chǎn)生的時態(tài)核心關聯(lián)索引,將現(xiàn)勢庫中的被變更的地理空 間實體數(shù)據(jù)提交入歷史庫,將步驟2)產(chǎn)生的新的變更后地理空間實體數(shù)據(jù)提交 入現(xiàn)勢庫;
5) 當歷史庫中的數(shù)據(jù)記錄到超過最大有效查詢閾值時,根據(jù)最佳查詢值, 創(chuàng)建變粒度索引因子;
6) 根據(jù)步驟5)產(chǎn)生的變粒度索引因子,創(chuàng)建基態(tài)修正區(qū)段快速索引;
7) 根據(jù)步驟6)產(chǎn)生的基態(tài)修正區(qū)段快速索引,進行歷史回溯、歷史恢復 和區(qū)域歷史再現(xiàn)。
步驟l)中所述的現(xiàn)勢庫是針對當前狀態(tài)而創(chuàng)建的,用于存儲現(xiàn)勢時空數(shù)據(jù); 所述的歷史庫是針對歷史狀態(tài)而創(chuàng)建的,用于存儲歷史時空數(shù)據(jù);所述的過程 庫是針對過程演變的進行時態(tài)而創(chuàng)建的,用于記錄、表達變化過程;其創(chuàng)建方 法以人機交互的方式獲得用戶指定的現(xiàn)勢庫名稱,該名稱必須惟一;自動生 成與該現(xiàn)勢庫對應的歷史庫名稱和過程庫名稱;以地理信息系統(tǒng)空間數(shù)據(jù)庫引 擎為基礎,使用地理信息系統(tǒng)商業(yè)軟件提供的創(chuàng)建圖層集的方法,創(chuàng)建現(xiàn)勢庫、 歷史庫和過程庫;自動獲得現(xiàn)勢庫下圖層的名稱和屬性字段,同樣使用現(xiàn)勢庫圖層名構造歷史庫下圖層名稱和過程庫下圖層名稱;再使用地理信息系統(tǒng)商業(yè) 軟件提供的創(chuàng)建圖層方法在對應的庫下分別創(chuàng)建圖層。
步驟l)中所述的現(xiàn)勢庫、過程庫和歷史庫中所存儲的地理空間實體數(shù)據(jù)是 指宗地數(shù)據(jù)以及和宗地有關系的其他地理空間實體矢量數(shù)據(jù),地理空間實體矢
量數(shù)據(jù)的特征及結構是均為時空數(shù)據(jù),同時包含標識信息、空間幾何信息、
產(chǎn)生時間信息、消亡時間信息以及其他需要擴展的屬性信息;以一個地理空間 實體為最小單位,以面向?qū)ο笮蜁r空一體數(shù)據(jù)庫的方式記錄。
所述的使用地理系統(tǒng)軟件的圖形操作工具變更現(xiàn)勢庫中的地理空間實體數(shù)
據(jù),在過程庫中產(chǎn)生新的變更后地理空間實體數(shù)據(jù)步驟選中現(xiàn)勢庫中的、需
要被變更的地理空間實體數(shù)據(jù),使用地理信息系統(tǒng)商業(yè)軟件提供的新增、分割、
合并、移動、形狀改變、屬性修改或者刪除等變更工具對其進行修改;將產(chǎn)生 的、新的變更后地理空間實體數(shù)據(jù)用面向?qū)ο笮蜁r空一體數(shù)據(jù)庫的方式記錄在
過程庫中,同時保證現(xiàn)勢庫中被變更的地理空間實體數(shù)據(jù)不發(fā)生變化;用地理
信息系統(tǒng)軟件,將現(xiàn)勢庫中的、被變更的地理空間實體數(shù)據(jù),以及過程庫中的、 新的變更后地理空間實體數(shù)據(jù)同時繪制在顯示器上。
所述的變更過程中,記錄現(xiàn)勢庫中的地理空間實體數(shù)據(jù)和過程庫中的、新
的變更后地理空間實體數(shù)據(jù)之間的關聯(lián)關系,創(chuàng)建時態(tài)核心關聯(lián)索引步驟首 先判斷時態(tài)核心關聯(lián)索引表是否存在,不存在則使用商業(yè)數(shù)據(jù)庫引擎創(chuàng)建時態(tài)
核心關聯(lián)索引表;獲得當前時間確定為此次變更的變更時間,標記現(xiàn)勢庫中的
被變更的地理空間實體和過程庫中的新生成的地理空間實體,同時記錄它們之 間的關聯(lián),并以關系表的方式存儲于時態(tài)核心關聯(lián)索引表中。
所述的根據(jù)步驟3)產(chǎn)生的時態(tài)核心關聯(lián)索引,將現(xiàn)勢庫中的、被變更的地 理空間實體數(shù)據(jù)提交入歷史庫,將步驟2)產(chǎn)生的、新的變更后地理空間實體數(shù) 據(jù)提交入現(xiàn)勢庫的步驟將時態(tài)核心關聯(lián)索引對應的現(xiàn)勢庫中的、被變更的地
理空間實體移動到歷史庫存儲,將時態(tài)核心關聯(lián)索引對應的過程庫中的、新的 變更后地理空間實體移動到現(xiàn)勢庫存儲。
步驟5)中所述的最大有效查詢閾值和最佳查詢值是用戶輸入的經(jīng)驗值, 最大有效查詢閾值必須遠遠大于最佳査詢值,最大有效査詢閾值的默認值是
10000,最佳查詢值的默認值是400,它們均以文本的方式存儲。
所述的創(chuàng)建變粒度索引因子的步驟首先依據(jù)基態(tài)修正模型的分辨率刻度
值大小、基態(tài)修正的頻率、事務處理時間存儲制式的跨度以及數(shù)據(jù)庫的總體規(guī) 模等因素,確定最大有效査詢閾值和最佳查詢值,并以文本方式記錄,然后,根據(jù)用戶需要,從文本中讀取最大有效査詢閾值和最佳査詢值,并使用變粒度
索引因子值確定方法計算出最佳的單位區(qū)段起點和終點,稱為基本索引因子K。, 再以K。的倍數(shù)賦值給各基態(tài)修正區(qū)段,稱為變粒度索引因子Ki,由此獲得各基 態(tài)修正區(qū)段長度,并將該值存儲于對應的變粒度索引表中;其中,變粒度索引 因子值確定方法如下從日、月、季、年四個時間刻度中任意選擇一個,作為 標準時間刻度,計算出歷史庫中的變更記錄每發(fā)生一次變化用去的標準時間, 該標準時間與最佳査詢值的乘積確定為基本索引因子K。值,然后用戶以湊足整 年份為目的指定的基本索引因子K。倍數(shù),從而確定變粒度索引因子Ki值,顯然 的,倍數(shù)的最大值為最大查詢閾值與最佳査詢值的比值,變粒度索引因子值一 經(jīng)修改,就必須立即更新基態(tài)修正區(qū)段快速索引表中的數(shù)據(jù),即重新劃分基態(tài) 修正區(qū)段。
所述的根據(jù)步驟5)產(chǎn)生的變粒度索引因子,創(chuàng)建基態(tài)修正區(qū)段快速索引步 驟首先判斷基態(tài)修正區(qū)段快速索引表是否存在,如果不存在則創(chuàng)建一張基態(tài) 修正區(qū)段快速索引表;然后,讀取變粒度索引表中的變粒度因子存儲在數(shù)組中; 從數(shù)組中讀取第一個粒度因子&,并從歷史庫中讀取首次變更時間作為基態(tài)修 正區(qū)段的起始時間,通過第一個變粒度因子K,和起始時間計算出基態(tài)修正區(qū)段 的結束時間;再然后由起始時間和結束時間從歷史庫中獲得起始時間對應的第 一個地理空間實體的標識,以及結束時間對應的最后一個地理空間實體的標識; 然后生成基態(tài)修正區(qū)段快速索引的標識,將基態(tài)修正區(qū)段快速索引的標識,起 始時間,結束時間,起始時間對應的第一個地理空間實體的標識,結束時間對 應的最后一個地理空間實體的標識這五個值存儲到基態(tài)修正區(qū)段索引關系表 中。這樣,就完成了第一個基態(tài)修正區(qū)段的劃分,然后將結束時間作為第二個 基態(tài)修正區(qū)段的起始時間,從數(shù)組中讀取第二個變粒度因子K2重復上述過程。
所述的根據(jù)步驟6)產(chǎn)生的基態(tài)修正區(qū)段快速索引,進行歷史回溯、歷史恢 復和區(qū)域歷史再現(xiàn)步驟歷史回溯是指地理空間實體的變遷歷史,地理空間實 體從產(chǎn)生到消亡地全部歷史過程,它根據(jù)用戶指定的查詢時間獲得該時間所在 的歷史區(qū)段,根據(jù)歷史區(qū)段索引創(chuàng)建歷史庫中的表的視圖,通過時態(tài)核心關聯(lián) 索引表,提取前變更前后地理空間實體的信息,并循環(huán)使用,并且每進行一次 提取就在當前節(jié)點添加一個子節(jié)點,整個歷史回溯的結果就形成一棵倒序的回 溯樹;歷史恢復是指將變更過的地理空間實體退回到變更前的狀態(tài)的過程,它 以上述歷史回溯過程為基礎,獲得一棵倒序的回溯樹后,刪除該樹中指定歷史 節(jié)點的所有子節(jié)點,然后刪除現(xiàn)勢庫中的地理空間實體,再將相關聯(lián)的歷史庫中的地理空間實體移動到現(xiàn)勢庫的過程;區(qū)域歷史再現(xiàn)是指通過某時刻所屬的 基態(tài)和修正信息恢復區(qū)域某一時刻的全貌,當查詢時刻Ti處于L和T2之間,當 前狀態(tài)是更改時刻所屬基態(tài)時,恢復Ti歷史時刻全貌的過程為判斷Ti時刻所 屬基態(tài),找出Ti時刻到T2時刻之間因變更所產(chǎn)生的修正量,相對于基態(tài)進行回 退修正即可得到Ti歷史時刻的全貌,即在歷史庫中應用SQL語句"產(chǎn)生時間<Ti and消亡時間〉Ti"査詢地理空間實體,在現(xiàn)勢庫中應用SQL語句"產(chǎn)生時間〈 TV'査詢地理空間實體,同時調(diào)用上述兩條查詢語句得到地理空間實體集,這 些來源不同并且"存在時間"不同的地理空間實體共同組成了 Ti歷史時刻的全 貌,完成區(qū)域歷史再現(xiàn),最后使用地理信息系統(tǒng)顯示軟件將結果顯示到顯示器 上。
本發(fā)明的有益效果
本發(fā)明可以準確記錄宗地歷史演化的過程,可以有效管理空間數(shù)據(jù)的歷史 時態(tài),避免了宗地變更時數(shù)據(jù)記錄的復雜和繁瑣,提高了檢索的效率,保證了 快速回溯任意歷史時刻宗地數(shù)據(jù)信息的要求,保證了同一時刻的數(shù)據(jù)不產(chǎn)生二 義性的要求。
圖1是一種實現(xiàn)本發(fā)明的技術流程圖2是全歷史狀態(tài)修正模型圖3是逐級狀態(tài)修正模型圖4是直接K點狀態(tài)修正模型圖5是間接K點狀態(tài)修正模型圖6是基于基態(tài)的動態(tài)修正(DMBSA)模型圖7是時空數(shù)據(jù)庫中現(xiàn)勢庫、過程庫、歷史庫的邏輯關系圖8是基于基態(tài)的動態(tài)修正擴展模型,創(chuàng)建現(xiàn)勢庫、過程庫和歷史庫流程
圖9是現(xiàn)勢庫、過程庫、歷史庫中的地理空間實體數(shù)據(jù)與時態(tài)核心關聯(lián)表 相互關系圖10是事件驅(qū)動下的地理空間實體在現(xiàn)勢庫、過程庫、歷史庫三級遷移過 程圖11是變粒度存儲因子與時間區(qū)段關系圖; 圖12是基態(tài)修正區(qū)段快速索引的基本概念圖; 圖13是區(qū)段快速索引時空數(shù)據(jù)表相互關系圖;圖14是實施例"土地產(chǎn)權產(chǎn)籍管理信息系統(tǒng)"中創(chuàng)建的現(xiàn)勢庫、過程庫和
歷史庫實例圖15是宗地變更過程示例圖16是實施例"土地產(chǎn)權產(chǎn)籍管理信息系統(tǒng)"進行要素歷史回溯的界面截 圖,圖中籃框標識的宗地是當前宗地,歷史上進行了三次變更,對話框中的宗 地是1992年的宗地,紅圈標識部分可以很清晰的對比出宗地變化;
圖17是實施例"土地產(chǎn)權產(chǎn)籍管理信息系統(tǒng)"進行圖層歷史回溯的界面截 圖,對話框中的矩形范圍與背景中的矩形范圍一致,可以清晰的對比出宗地的 增加。
具體實施例方式
本發(fā)明所采用的時空數(shù)據(jù)模型稱為基于基態(tài)的動態(tài)修正擴展。其中的基于 基態(tài)的動態(tài)修正(dynamic multilevel base state with amendments, DMBSA) 是指當發(fā)生小范圍事件或少量事件時,都會產(chǎn)生一個和該時刻基態(tài)相比較的變 化修正量,該變化量被稱作基態(tài)距。無論記錄有多少基態(tài)距,當前狀態(tài)則始終 是當前基態(tài)。當發(fā)生大范圍事件或大量變更事件發(fā)生時,在適當時態(tài)位置設立 歷史基態(tài)點,便于該時刻以前的歷史時刻的歷史回溯、歷史査詢等操作。如果 在T2時刻附近記錄一個歷史狀態(tài),則歷史時刻T2的狀態(tài)只需通過該歷史狀態(tài)和 T2時刻到該狀態(tài)發(fā)生時刻之間的基態(tài)距獲得。根據(jù)事件變化的頻度和基態(tài)距的大 小適當?shù)卦跉v史變遷過程中記錄若干歷史狀態(tài)(即設立歷史基態(tài)),則不會造成 太多的數(shù)據(jù)冗余,但大大提高了歷史回顧的效率。
DMBSA模型如圖6所示,在L到Tn的歷史變遷過程中發(fā)生了很多歷史變更, 在時刻點之間記錄基態(tài)距。時刻T2發(fā)生巨大變化,故而在T2時刻設立了一個歷 史基態(tài)l。 Tn時刻的狀態(tài)始終都是當前基態(tài)。
將圖6與圖2、圖3、圖4、圖5進行比較,可以看出,在圖2、圖3、圖4、 圖5所表示的四種方式中,恢復歷史時刻T。的歷史狀態(tài),要從當前基態(tài)L時刻 逐步回溯,通過n個基態(tài)距恢復到時刻T。的狀態(tài)。而在圖6中,若要恢復歷史 時刻T。的歷史狀態(tài),則檢索T。時刻所屬基態(tài)(歷史基態(tài)1)和T。與T2之間的基 態(tài)距(基態(tài)距0和基態(tài)距1),通過歷史基態(tài)1和兩個基態(tài)距恢復T。時刻的歷史 狀態(tài)。對于變更頻繁、歷史恢復操作較多的系統(tǒng)來說采用DMBSA模型更能勝任 時態(tài)信息的管理。
此外,基態(tài)的動態(tài)修正擴展模型中的"擴展"指創(chuàng)建的過程庫。基態(tài)修正 模型關注的都只是給定時刻(時段)的數(shù)據(jù)狀態(tài),而不涉及由一種狀態(tài)轉變?yōu)榱硪环N狀態(tài)的過程。如果一個地理信息系統(tǒng)只設置現(xiàn)勢庫和歷史庫,那么就只 保存對象的空間位置和屬性的現(xiàn)狀(最后一次更新的數(shù)據(jù)狀態(tài))及變化前的各 時段歷史狀態(tài)。然而,合理的現(xiàn)實情況是數(shù)據(jù)的變化往往需要經(jīng)歷一個過程, 必須滿足一定的條件,經(jīng)過過程操作驗證后,才允許進入過程演變的下一個階 段。因此,針對過程演變的進行時態(tài)創(chuàng)建過程庫,用于記錄、表達變化過程。 過程庫跟蹤對象演變的所有階段,描述事件發(fā)生和演變的全過程。 一旦事件發(fā) 生的條件不滿足時,該事件將會沿著發(fā)生的時間軸回退,直到條件成立時停止 或返回到事件發(fā)生前的初始狀態(tài)。即在實際應用中往往存在一種"偽變化",也
就是處理過程中經(jīng)證實需要取消或修正的"變化"。圖7為過程庫與現(xiàn)勢庫和歷 史庫以及系統(tǒng)的關系。
基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法可以對宗地的變更 進行有效的存儲,保證宗地演變?nèi)^程的準確記錄,同時避免了宗地時空數(shù)據(jù) 的歷史回溯和歷史恢復檢索的繁瑣,具有較好的實用性和擴展性。
為實現(xiàn)上述發(fā)明目的,本發(fā)明采用下述的技術方案
它基于基態(tài)的動態(tài)修正擴展模型,創(chuàng)建現(xiàn)勢庫、過程庫和歷史庫,使用變 更工具變更地理空間實體,同時創(chuàng)建時態(tài)核心關聯(lián)索引記錄變更關系,再將變 更數(shù)據(jù)提交入庫;當歷史庫中數(shù)據(jù)超過最大有效查詢閾值時,根據(jù)最佳查詢值, 創(chuàng)建變粒度索引因子和基態(tài)修正區(qū)段快速索引;并根據(jù)此索引,進行歷史回溯、 歷史恢復和區(qū)域歷史再現(xiàn),最終完成宗地時空數(shù)據(jù)存儲。
基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法包括如下步驟
1) 基于基態(tài)的動態(tài)修正擴展模型,創(chuàng)建現(xiàn)勢庫、過程庫和歷史庫;
2) 使用地理系統(tǒng)商業(yè)軟件的圖形操作工具變更現(xiàn)勢庫中的地理空間實體, 在過程庫中產(chǎn)生新的變更后地理空間實體數(shù)據(jù);
3) 變更過程中,記錄現(xiàn)勢庫中的地理空間實體數(shù)據(jù)和過程庫中的新的變更 后地理空間實體數(shù)據(jù)之間的關聯(lián)關系,創(chuàng)建時態(tài)核心關聯(lián)索引;
4) 根據(jù)步驟3)產(chǎn)生的時態(tài)核心關聯(lián)索引,將現(xiàn)勢庫中的被變更的地理空 間實體數(shù)據(jù)提交入歷史庫,將步驟2)產(chǎn)生的新的變更后地理空間實體數(shù)據(jù)提交 入現(xiàn)勢庫;
5) 當歷史庫中的數(shù)據(jù)記錄到超過最大有效查詢閾值時,根據(jù)最佳査詢值, 創(chuàng)建變粒度索引因子;
6) 根據(jù)步驟5)產(chǎn)生的變粒度索引因子,創(chuàng)建基態(tài)修正區(qū)段快速索引;
7) 根據(jù)步驟6)產(chǎn)生的基態(tài)修正區(qū)段快速索引,進行歷史回溯、歷史恢復和區(qū)域歷史再現(xiàn)。
步驟l)中所述的現(xiàn)勢庫是針對當前狀態(tài)而創(chuàng)建的,用于存儲現(xiàn)勢時空數(shù)據(jù); 所述的歷史庫是針對歷史狀態(tài)而創(chuàng)建的,用于存儲歷史時空數(shù)據(jù);所述的過程 庫是針對過程演變的進行時態(tài)而創(chuàng)建的,用于記錄、表達變化過程;其創(chuàng)建方 法如圖8所示以人機交互的方式獲得用戶指定的現(xiàn)勢庫名稱,該名稱必須惟 一;自動生成與該現(xiàn)勢庫對應的歷史庫名稱和過程庫名稱;以地理信息系統(tǒng)空 間數(shù)據(jù)庫引擎為基礎,使用地理信息系統(tǒng)商業(yè)軟件提供的創(chuàng)建圖層集的方法, 創(chuàng)建現(xiàn)勢庫、歷史庫和過程庫;自動獲得現(xiàn)勢庫下圖層的名稱和屬性字段,同 樣使用現(xiàn)勢庫圖層名構造歷史庫下圖層名稱和過程庫下圖層名稱;再使用地理 信息系統(tǒng)商業(yè)軟件提供的創(chuàng)建圖層方法在對應的庫下分別創(chuàng)建圖層。
步驟l)中所述的現(xiàn)勢庫、過程庫和歷史庫中所存儲的地理空間實體數(shù)據(jù)是 指宗地數(shù)據(jù)以及和宗地有關系的其他地理空間實體矢量數(shù)據(jù),地理空間實體矢 量數(shù)據(jù)的特征及結構是均為時空數(shù)據(jù),同時包含標識信息、空間幾何信息、 產(chǎn)生時間信息、消亡時間信息以及其他需要擴展的屬性信息;以一個地理空間 實體為最小單位,以面向?qū)ο笮蜁r空一體數(shù)據(jù)庫的方式記錄?,F(xiàn)勢庫、歷史庫 和過程庫中存儲的地理空間實體S0均可表示為一個五元組
S0:=<0ID, Attribute, S, CTime, DTime〉 其中,OID表示地理空間實體的標識;Attribute中包含地理空間實體的屬性集 合,其內(nèi)容因地理空間實體的不同而不同,例如宗地Parcel=〈Code, Oblige, Property, Modify〉; S表示地理空間實體的空間信息集合,例如S=< Geometry, Spatialreference, Domain〉; CTime表示地理空間實體的產(chǎn)生時間;DTime表 示地理空間實體的消亡時間。對于宏觀的地理空間實體,CTime〈DTime,并且現(xiàn) 勢庫中的地理空間實體只具有CTime,不具有DTime (即DTime為null),從而 保證了同一時間點的數(shù)據(jù)不會產(chǎn)生二義性。
所述的使用地理系統(tǒng)軟件的圖形操作工具變更現(xiàn)勢庫中的地理空間實體數(shù) 據(jù),在過程庫中產(chǎn)生新的變更后地理空間實體數(shù)據(jù)步驟選中現(xiàn)勢庫中的、需 要被變更的地理空間實體數(shù)據(jù),使用地理信息系統(tǒng)商業(yè)軟件提供的新增、分割、 合并、移動、形狀改變、屬性修改或者刪除等變更工具對其進行修改;將產(chǎn)生 的、新的變更后地理空間實體數(shù)據(jù)用面向?qū)ο笮蜁r空一體數(shù)據(jù)庫的方式記錄在 過程庫中,同時保證現(xiàn)勢庫中被變更的地理空間實體數(shù)據(jù)不發(fā)生變化;用地理
信息系統(tǒng)軟件,將現(xiàn)勢庫中的、被變更的地理空間實體數(shù)據(jù),以及過程庫中的、 新的變更后地理空間實體數(shù)據(jù)同時繪制在顯示器上。所述的變更過程中,記錄現(xiàn)勢庫中的地理空間實體數(shù)據(jù)和過程庫中的、新 的變更后地理空間實體數(shù)據(jù)之間的關聯(lián)關系,創(chuàng)建時態(tài)核心關聯(lián)索引步驟首 先判斷時態(tài)核心關聯(lián)索引表是否存在,不存在則使用商業(yè)數(shù)據(jù)庫引擎創(chuàng)建時態(tài) 核心關聯(lián)索引表;獲得當前時間確定為此次變更的變更時間,標記現(xiàn)勢庫中的 被變更的地理空間實體和過程庫中的新生成的地理空間實體,同時記錄它們之 間的關聯(lián),并以關系表的方式存儲于時態(tài)核心關聯(lián)索引表中?,F(xiàn)勢庫、過程庫、 歷史庫中的地理空間實體數(shù)據(jù)與時態(tài)核心關聯(lián)表相互關系如圖9所示。時態(tài)核 心關聯(lián)索引表Con可表示為一個基本六元組
Con:=〈BGID, P0ID, A0ID, Element, BGTime, Extend〉 其中,BGID表示關聯(lián)索引的標識;POID表示兩相鄰歷史時刻的前地理空間實體 的標識;A0ID表示兩相鄰歷史時刻的后地理空間實體的標識;Element中包含 系統(tǒng)提供七種元操作的集合Element^新增,分割,合并,移動,形狀改變,屬 性修改,刪除}。其他復雜操作均由這七種元操作組合而成;BGTime表示變更 時間;Extend表示該表的可擴展元素,例如,操作人等。
標記現(xiàn)勢庫中的被變更的地理空間實體和過程庫中的新生成的地理空間實 體的方法將現(xiàn)勢庫中地理空間實體S0中的DTime屬性設置為變更時間,以此 作為標記。
在時態(tài)核心關聯(lián)索引表中記錄現(xiàn)勢庫中的被變更的地理空間實體和過程庫 中的新生成的地理空間實體之間的關聯(lián)的方法首先獲得現(xiàn)勢庫中的被變更的 地理空間實體惟一標識記為P0ID,獲得過程庫中的新生成的地理空間實體惟一 標識記為A0ID;然后,獲得變更時間BGTime和操作類型Element;生成惟一的 關聯(lián)索引的標識BGID,最后使用數(shù)據(jù)庫引擎將上述值作為一條新記錄插入時態(tài) 核心關聯(lián)索引表中。
上述S0、 DTime請參見步驟2)中的定義。
所述的根據(jù)步驟3)產(chǎn)生的時態(tài)核心關聯(lián)索引,將現(xiàn)勢庫中的、被變更的地 理空間實體數(shù)據(jù)提交入歷史庫,將步驟2)產(chǎn)生的、新的變更后地理空間實體數(shù) 據(jù)提交入現(xiàn)勢庫的步驟將時態(tài)核心關聯(lián)索引對應的現(xiàn)勢庫中的、被變更的地 理空間實體移動到歷史庫存儲,將時態(tài)核心關聯(lián)索引對應的過程庫中的、新的 變更后地理空間實體移動到現(xiàn)勢庫存儲。即首先獲得時態(tài)核心關聯(lián)索引的BGID, 根據(jù)BGID獲得P0ID和A0ID;然后將時態(tài)核心關聯(lián)索引中P0ID對應的現(xiàn)勢庫中 的被變更的地理空間實體移動到歷史庫存儲,將時態(tài)核心關聯(lián)索引中A0ID對應 的過程庫中的、新的地理空間實體移動到現(xiàn)勢庫存儲,如圖10所示。上述"現(xiàn)勢庫中的、被變更的地理空間實體移動到歷史庫存儲"的步驟表 述如下
首先獲得現(xiàn)勢庫中的、被變更的地理空間實體,然后使用地理信息系統(tǒng)軟 件在歷史庫中創(chuàng)建一個幾何形狀和空間位置相同的地理空間實體,然后再進行 屬性拷貝,最后刪除現(xiàn)勢庫中的被變更的地理空間實體。
上述"過程庫中的、新的地理空間實體移動到現(xiàn)勢庫存儲"的步驟同上。 步驟5)中所述的最大有效査詢閾值和最佳查詢值是用戶輸入的經(jīng)驗值, 最大有效査詢閾值必須遠遠大于最佳查詢值,最大有效査詢閾值的默認值是
10000,最佳查詢值的默認值是400,它們均以文本的方式存儲。
存儲最大有效查詢閾值和最佳查詢值的方法首先使用Windows API創(chuàng)建
文本文件,表述如下
CStdioFile.Open("存儲文件名",CFile::modeWrite | CFile::modeCreate| CFile::typeText);
然后寫入最大有效査詢閾值和最佳查詢值,表述如下
CStdioFile.WriteString("最大有效査詢閾值");
CStdioFile.WriteString(JT(","));
CStdioFile.WriteString("最佳查詢值");
獲得最大有效查詢閾值和最佳查詢值的方法首先使用Windows API打開 文本文件,表述如下 CStdioFile.Open("讀取文件名",CFile::modeRead);
然后讀出含有最大有效査詢閾值和最佳査詢值的字符串,表述如下 CStdioFile.ReadString("最大有效査詢閾值,最佳查詢值",100);
然后獲得逗號前的數(shù)值為最大有效査詢閾值,逗號后的數(shù)值為最佳査詢值。 所述的創(chuàng)建變粒度索引因子的步驟首先依據(jù)基態(tài)修正模型的分辨率刻度 值大小、基態(tài)修正的頻率、事務處理時間存儲制式的跨度以及數(shù)據(jù)庫的總體規(guī) 模等因素,確定最大有效查詢閾值和最佳査詢值,并以文本方式記錄,然后, 根據(jù)用戶需要,從文本中讀取最大有效查詢閾值和最佳查詢值,并使用變粒度 索引因子值確定方法計算出最佳的單位區(qū)段起點和終點,稱為基本索引因子K。, 再以K。的倍數(shù)賦值給各基態(tài)修正區(qū)段,稱為變粒度索引因子Ki,由此獲得各基 態(tài)修正區(qū)段長度,如圖ll所示,并將該值存儲于對應的變粒度索引表中;其中, 變粒度索引因子值確定方法如下從日、月、季、年四個時間刻度中任意選擇 一個,作為標準時間刻度,計算出歷史庫中的變更記錄每發(fā)生一次變化用去的 標準時間,該標準時間與最佳査詢值的乘積確定為基本索引因子K。值,然后用戶以湊足整年份為目的指定的基本索引因子K。倍數(shù),從而確定變粒度索引因子 Ki值,顯然的,倍數(shù)的最大值為最大查詢閾值與最佳査詢值的比值,變粒度索引 因子值一經(jīng)修改,就必須立即更新基態(tài)修正區(qū)段快速索引表中的數(shù)據(jù),即重新 劃分基態(tài)修正區(qū)段。
變粒度索引表KI可以表示為一個三元組
KI::〈KID, K, D印endence〉 其中,KID表示變粒度索引的標識;K表示變粒度索引因子值;D印endence表示 變粒度索引因子值決定依據(jù)。
將Ki值存儲于對應的變粒度索引表中的方法首先判斷變粒度索引表 KITable是否存在,不存在則使用數(shù)據(jù)庫引擎創(chuàng)建變粒度索引表。然后,生成變 粒度索引的惟一標識KID,再將Ki值和用戶指定的D印endence值作為一條記錄 插入到變粒度索引表中。
所述的根據(jù)步驟5)產(chǎn)生的變粒度索引因子,創(chuàng)建基態(tài)修正區(qū)段快速索引步 驟首先判斷基態(tài)修正區(qū)段快速索引表是否存在,如果不存在則創(chuàng)建一張基態(tài) 修正區(qū)段快速索引表;然后,讀取變粒度索引表中的變粒度因子存儲在數(shù)組中; 從數(shù)組中讀取第一個粒度因子K"并從歷史庫中讀取首次變更時間作為基態(tài)修 正區(qū)段的起始時間,通過第一個變粒度因子K和起始時間計算出基態(tài)修正區(qū)段 的結束時間;再然后由起始時間和結束時間從歷史庫中獲得起始時間對應的第 一個地理空間實體的標識,以及結束時間對應的最后一個地理空間實體的標識; 然后生成基態(tài)修正區(qū)段快速索引的標識,將基態(tài)修正區(qū)段快速索引的標識,起 始時間,結束時間,起始時間對應的第一個地理空間實體的標識,結束時間對 應的最后一個地理空間實體的標識這五個值存儲到基態(tài)修正區(qū)段索引關系表 中。這樣,就完成了第一個基態(tài)修正區(qū)段的劃分,然后將結束時間作為第二個 基態(tài)修正區(qū)段的起始時間,從數(shù)組中讀取第二個變粒度因子K2重復上述過程。
圖12說明了基態(tài)修正區(qū)段快速索引的基本概念。Afi為兩相鄰時態(tài)元素對 象的相對基態(tài)修正值,即"差文件"delta file的值,Afci為區(qū)段相對基態(tài) 修正值。時態(tài)元素對象、基態(tài)修正區(qū)段快速索引以及區(qū)段相對基態(tài)修正值,通 過時空數(shù)據(jù)表發(fā)生關系并相互作用。利用時空數(shù)據(jù)庫中建立的區(qū)段快速索引表, 可快速將指針指向相應時空元素表中的具有公共區(qū)段相對基態(tài)修正值屬性的對 象。圖13表示索引機制與時空數(shù)據(jù)表的關系。
基態(tài)修正區(qū)段快速索引SI可表示為一個五元組
SI:二〈SID, BTime, ETime, B0ID, E0ID〉其中,SID表示基態(tài)修正區(qū)段快速索引的標識;BTime表示區(qū)段起始時間;ETime 表示區(qū)段結束時間;B0ID表示區(qū)段起始時間對應的第一個地理空間實體的標識; E0ID表示區(qū)段結束時間對應的最后一個地理空間實體的標識。
所述的根據(jù)步驟6)產(chǎn)生的基態(tài)修正區(qū)段快速索引,進行歷史回溯、歷史恢 復和區(qū)域歷史再現(xiàn)步驟歷史回溯是指地理空間實體的變遷歷史,地理空間實 體從產(chǎn)生到消亡地全部歷史過程,它根據(jù)用戶指定的査詢時間獲得該時間所在 的歷史區(qū)段,根據(jù)歷史區(qū)段索引創(chuàng)建歷史庫中的表的視圖,通過時態(tài)核心關聯(lián) 索引表,提取前變更前后地理空間實體的信息,并循環(huán)使用,并且每進行一次 提取就在當前節(jié)點添加一個子節(jié)點,整個歷史回溯的結果就形成一棵倒序的回 溯樹;歷史恢復是指將變更過的地理空間實體退回到變更前的狀態(tài)的過程,它 以上述歷史回溯過程為基礎,獲得一棵倒序的回溯樹后,刪除該樹中指定歷史 節(jié)點的所有子節(jié)點,然后刪除現(xiàn)勢庫中的地理空間實體,再將相關聯(lián)的歷史庫 中的地理空間實體移動到現(xiàn)勢庫的過程;區(qū)域歷史再現(xiàn)是指通過某時刻所屬的 基態(tài)和修正信息恢復區(qū)域某一時刻的全貌,當查詢時刻Ti處于L和T2之間,當 前狀態(tài)是更改時刻所屬基態(tài)時,恢復Ti歷史時刻全貌的過程為判斷Ti時刻所 屬基態(tài),找出Ti時刻到T2時刻之間因變更所產(chǎn)生的修正量,相對于基態(tài)進行回 退修正即可得到Ti歷史時刻的全貌,即在歷史庫中應用SQL語句"產(chǎn)生時間〈Ti and消亡時間〉Ti"查詢地理空間實體,在現(xiàn)勢庫中應用SQL語句"產(chǎn)生時間< TV'查詢地理空間實體,同時調(diào)用上述兩條查詢語句得到地理空間實體集,這 些來源不同并且"存在時間"不同的地理空間實體共同組成了 Ti歷史時刻的全 貌,完成區(qū)域歷史再現(xiàn),最后使用地理信息系統(tǒng)顯示軟件將結果顯示到顯示器 上。
引入基態(tài)修正區(qū)段快速索引和變粒度索引因子后的歷史査詢,不再在對歷 史庫中的表進行全表查詢。它的過程是,根據(jù)查詢條件"BTime 〈 T\ arid ETime > Ti"在基態(tài)修正區(qū)段快速索引表中獲得B0ID和E0ID,再根據(jù)條件"B0ID < OID and E0ID > OID"派生出一個歷史庫中的表的視圖。此后,上述歷史回溯、歷 史恢復和區(qū)域歷史再現(xiàn)的查詢均使用該視圖進行查詢。其中,OID、 B0ID、 E0ID 的定義請參見步驟l)和步驟6)的定義
歷史回溯提取前變更前后地理空間實體的信息,構造回溯樹的具體過程 根據(jù)時態(tài)核心關聯(lián)索引和地理空間實體表的關聯(lián)關系,通過構造基本的SQL査 詢語句實現(xiàn)全程歷史回溯。構造的SQL如下
SELECT @bgid=BGID, @poid=POID FROM時態(tài)核心關聯(lián)索引表WHERE AOID = @oidSELECT OID, Attribute FROM歷史庫..地理空間實體視圖WHERE POID = @poid
其中,⑨oid為外部傳入的地理空間實體的標識。BGID、 OID、 Attribute、 POID、
A0ID請參見步驟1)和步驟3)的定義。
歷史回溯過程中,提取査詢結果,將獲得的前地理空間實體的標識作為下 一次査詢的后地理空間實體的標識,再次循環(huán)使用該SQL語句,并且每進行一 次查詢就在當前節(jié)點添加一個子節(jié)點,整個歷史回溯的結果就形成一棵倒序的
P實施例
(1)創(chuàng)建現(xiàn)勢庫、歷史庫和過程庫 實施例"土地產(chǎn)權產(chǎn)籍管理信息系統(tǒng)"中的現(xiàn)勢庫、歷史庫和過程庫實例 如圖14所示。其中,具有③標志的是庫節(jié)點,其子節(jié)點為圖層節(jié)點,用于存儲 同類地理空間實體(點、線、面);具有"_LS"標識的是歷史庫,"—WK"標識 的是過程庫。采用地理信息系統(tǒng)商業(yè)軟件ESRI公司的ArcEngine COM組件和 ArcSDE地理信息系統(tǒng)空間數(shù)據(jù)庫引擎創(chuàng)建現(xiàn)勢庫、歷史庫和過程庫及其所屬圖 層的¥0++的代碼如下所示
〃創(chuàng)建圖庫(ipFeatWS是外部傳入的IFeatureWorkspace接口變量) IFeatureDatasetPtr ipCurFeatDataset; 〃現(xiàn)勢庫數(shù)據(jù)集 IFeatureDatasetPtr ipHisFeatDataset; 〃歷史庫數(shù)據(jù)集 IFeatureDatasetPtr ipWKFeatDataset; 〃過程庫數(shù)據(jù)集 CString libName = "REGIS 12"; 〃現(xiàn)勢庫名稱
CString HisLibName=libName+"_LS"; 〃歷史庫名稱 CString WorkLibName=libName+"—WK";〃過程庫名稱
ipFeatWS->CreateFeatureDataset(_bstr—t(libName),ipSpatialRef,&ipCurFeatDataset));
ipFeatWS->CreateFeatureDataset(_bstr—t(HisLibName),ipSpatialRef, &ipHisFeatDataset));
ipFeatWS-〉CreateFeatureDataset(_bstr—t(WorkLibName),ipSpatialRef,&ipWKFeatDataset》;
〃創(chuàng)建圖層表屬性結構(地理空間實體所具有的屬性集)
IFieldsEditPtr ipFieldsEdit;
IFieldEditPtr ipFieldEdit;
IFieldsPtr ipFields;
ipFieldEdit-〉put一N騰("OID");
ipFiedEdit-> put—AliasName ("目標標識碼");ipFieldsEdit->AddField(ipFieldEdit); ipFieldEdit->put_Name(" CTime"); ipFieldEdit-> put—AliasName ("產(chǎn)生時間");
ipFieldsEdit->AddField(ipFieldEdit); ipFiel犯dit-〉put—Name("DTime"); ipFieldEdit-> put_AliasName ("消亡時間");
ipFieldsEdit->AddField(ipFieldEdit); ipFieldEdit隱〉put一Name("Shape"); ipFieldEdit-> put_AliasName ("幾何");
ipFieldsEdit->AddField(ipFieldEdit); …… 〃用戶需要添加的其他Field
ipFldsEdit->QueryInterface(_uuidof(IFields),(void * *)&ipFields);
〃創(chuàng)建圖層
CString curLayerName = "ZD12"; 〃現(xiàn)勢庫中宗地圖層名稱 CStringhisLayerName = curLayerName + "—LS"; 〃歷史庫中宗地圖層名稱 CString wkLayerName = curLayerName +" —WK"; 〃過程庫中宗地圖層名稱 ipCurFeatDataset-〉CreateFeatureClass(_bstr_t(curLayerName),ipFields,ipCLSID,0,esriFTSimple,— bstr—t("Shape"),一bstr—t(""),&ipFeatClass));
ipCurFeatDataset->CreateFeatureClass(_bstr—t(hisLayerName),ipFields,ipCLSID,0,esriFTSimple,— bstr—t("Shape"),一bstr—t(""),&ipFeatClass));
ipCurFeatDataset->CreateFeatureClass(_bstr—t(wkLayerName),ipFields,ipCLSID,0,esriFTSimple,— bstr—t("Shape"),一bstr—t(""),&ipFeatClass));
……〃重復上述過程,在現(xiàn)勢庫、歷史庫和過程庫下創(chuàng)建多個圖層 (2)變更過程
以圖15所示的宗地變更過程為例,說明基態(tài)修正擴展模型DMBSA模型的時 空數(shù)據(jù)的存儲和和管理機制。T。時刻為初始狀態(tài),在現(xiàn)勢庫中存儲、描述3個宗 地的基本信息,宗地屬性信息存儲于屬性表(表l)。表lOID申請編號宗地編號土地坐落產(chǎn)生時間消亡時間
11001034-......-001Shape1ToNull
21002034-......-002Sh即e2ToNull
31003034-......-003Sh即e3ToNull
宗地變更發(fā)展到L時刻,此時L時刻的狀態(tài)作為當前基態(tài),發(fā)生了一個事 件,即使用地理信息系統(tǒng)商業(yè)軟件:ESRI公司的ArcEngine COM組件中提供的分 割工具將宗地1分割成了兩塊宗地宗地4和宗地5,被記錄于過程庫表中(表 2)。變更產(chǎn)生的基態(tài)距在現(xiàn)勢庫的表中被標記(表3,宗地編號為034-……-001 的宗地消亡時間標記為T,)。
表2過程庫表
OID申請編號宗地編號土地坐落產(chǎn)生時間消亡時間
43001034-......-004Shape4Null
53002034-......-005Sh即e5Null
表3現(xiàn)勢庫表OID申請編號宗地編號土地坐落產(chǎn)生時間消亡時間
11001034-......-001Shape1To
21002034-......-002Sh即e2ToNull
31003034-......-003Shape3ToNull
(3)創(chuàng)建時態(tài)核心關聯(lián)索引 對所發(fā)生的事件記錄其動作,并創(chuàng)建時態(tài)核心關聯(lián)索引,即在時態(tài)核心關 聯(lián)索引表中記錄變更前后宗地的關聯(lián)(表4)。
表4時態(tài)核心關聯(lián)索引表
變更號前宗地標識后宗地標識變更時間變更類型
2007041600001555314分割
2007041600001555315T,分割(4)提交入庫
提交之后,原來被分割的宗地作為"變更產(chǎn)生的基態(tài)距",被移動到歷史庫
的"修正表"中(表5);分割后得到的宗地4和宗地5被移動到現(xiàn)勢庫表中(此 時,過程庫表中的記錄為空)。之后,T,時刻將成為下次變更的初始狀態(tài)(新生 成的宗地4和宗地5與原來沒有發(fā)生變化的宗地,表6),開始周而復始的宗地 變更過程。
表5歷史庫的"修正表"
OID申請編號宗地編號土地坐落產(chǎn)生時間消亡時間
1薩034-…'…-001Sh即elTo
表6現(xiàn)勢庫表OID申請編號宗地編號土地坐落產(chǎn)生時間消亡時間
21002034—''…-002Shape2ToNull
31003034-…'…-003Shape3ToNull
43001034—''…-004Shape4Null
53002034-..''…-005Shape5Null
(4)歷史回溯
在地圖上使用地理信息系統(tǒng)軟件提供的地理空間實體的要素選擇工具選中 目標標識碼(OID)為227,宗地編號為001-002-018-00002-003的一塊宗地; 然后調(diào)用以下SQL語句獲得該宗地的"前宗地"的目標標識碼 SELECT @bgid=BGID, @poid=POID FROM時態(tài)核心關聯(lián)索引表WHERE AOID = 227 SELECT OID,宗地編號FROM歷史庫..宗地視圖WHERE POID = @poid 得到前宗地的OID為186,宗地編號為001-002-018-00002-002。然后,創(chuàng)建一 顆回溯樹,將OID為186的宗地作為OID為227的宗地的子節(jié)點。再次調(diào)用以 下SQL語句獲得OID為186的宗地的"前宗地"的目標標識碼 SELECT @bgid=BGID, @poid=POID FROM時態(tài)核心關聯(lián)索弓I表WHERE AOID = 186 SELECT OID,宗地編號FROM歷史庫..宗地視圖WHERE POID = @poid 循環(huán)上述過程,直到無法從時態(tài)核心關聯(lián)索引表中査詢到結果為止。此次歷史 回溯操作在"土地產(chǎn)權產(chǎn)籍管理信息系統(tǒng)"中的實際應用效果如圖16所示。宗 地編號為001-002-018-00002-003的宗地由三塊宗地依次變化而來。(5)歷史再現(xiàn)
如圖15,需要再現(xiàn)L時刻的歷史狀態(tài)。對T,時刻的首次査詢需要先創(chuàng)建視 圖,再執(zhí)行查詢。構造創(chuàng)建視圖SQL語句如下
SELECT @boid = BOID, @eoid = EOID FROM區(qū)段索引表WHERE BTime〈Tl and ETime〉 Tl CREATE VIEW地理空間實體視圖AS SELECT OID, Attribute, S, CTime, DTime FROM歷史庫..地理空間實體表WHERE @boid < OID and @eoid > OID
構造查詢SQL語句如下 SELECT OID, Attribute, S, CTime, DTime FROM現(xiàn)勢庫..地理空間實體表WHERE CTime〈 Ti SELECT OID, Attribute, S, CTime, DTime FROM歷史庫..地理空間實體視圖 WHERE CTime < Ti and DTime > Ti
執(zhí)行上述査詢語句,可以獲得所有在Ti時刻存在于該區(qū)域的地理空間實體。 歷史再現(xiàn)在"土地產(chǎn)權產(chǎn)籍管理信息系統(tǒng)"中的實際應用效果如圖17所示。
本實施例通過在"土地產(chǎn)權產(chǎn)籍管理信息系統(tǒng)"中使用基于基態(tài)的動態(tài)修 正擴展模型的宗地時空數(shù)據(jù)存儲方法,實現(xiàn)了有效管理空間數(shù)據(jù)的歷史時態(tài)以 及準確記錄宗地進行屬性和空間數(shù)據(jù)變化的過程,避免了宗地變更時數(shù)據(jù)記錄 的復雜和繁瑣,提高了檢索的效率,保證了快速回溯任意歷史時刻宗地數(shù)據(jù)信 息的要求,保證了同一時刻的數(shù)據(jù)不產(chǎn)生二義性的要求。
權利要求
1.一種基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法,其特征在于包括如下步驟1)基于基態(tài)的動態(tài)修正擴展模型,創(chuàng)建現(xiàn)勢庫、過程庫和歷史庫;2)使用地理系統(tǒng)商業(yè)軟件的圖形操作工具變更現(xiàn)勢庫中的地理空間實體,在過程庫中產(chǎn)生新的變更后地理空間實體數(shù)據(jù);3)變更過程中,記錄現(xiàn)勢庫中的地理空間實體數(shù)據(jù)和過程庫中的新的變更后地理空間實體數(shù)據(jù)之間的關聯(lián)關系,創(chuàng)建時態(tài)核心關聯(lián)索引;4)根據(jù)步驟3)產(chǎn)生的時態(tài)核心關聯(lián)索引,將現(xiàn)勢庫中的被變更的地理空間實體數(shù)據(jù)提交入歷史庫,將步驟2)產(chǎn)生的新的變更后地理空間實體數(shù)據(jù)提交入現(xiàn)勢庫;5)當歷史庫中的數(shù)據(jù)記錄到超過最大有效查詢閾值時,根據(jù)最佳查詢值,創(chuàng)建變粒度索引因子;6)根據(jù)步驟5)產(chǎn)生的變粒度索引因子,創(chuàng)建基態(tài)修正區(qū)段快速索引;7)根據(jù)步驟6)產(chǎn)生的基態(tài)修正區(qū)段快速索引,進行歷史回溯、歷史恢復和區(qū)域歷史再現(xiàn)。
2. 根據(jù)權利要求1所述的一種基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法,其特征在于步驟l)中所述的現(xiàn)勢庫是針對當前狀態(tài)而創(chuàng)建的,用于存儲現(xiàn)勢時空數(shù)據(jù);所述的歷史庫是針對歷史狀態(tài)而創(chuàng)建的,用于存儲歷史時空數(shù)據(jù);所述的過程庫是針對過程演變的進行時態(tài)而創(chuàng)建的,用于記錄、表達變化過程;其創(chuàng)建方法以人機交互的方式獲得用戶指定的現(xiàn)勢庫名稱,該名稱必須惟一;自動生成與該現(xiàn)勢庫對應的歷史庫名稱和過程庫名稱;以地理信息系統(tǒng)空間數(shù)據(jù)庫引擎為基礎,使用地理信息系統(tǒng)商業(yè)軟件提供的創(chuàng)建圖層集的方法,創(chuàng)建現(xiàn)勢庫、歷史庫和過程庫;自動獲得現(xiàn)勢庫下圖層的名稱和屬性字段,同樣使用現(xiàn)勢庫圖層名構造歷史庫下圖層名稱和過程庫下圖層名稱;再使用地理信息系統(tǒng)商業(yè)軟件提供的創(chuàng)建圖層方法在對應的庫下分別創(chuàng)建圖層。
3. 根據(jù)權利要求1所述的一種基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法,步驟l)中所述的現(xiàn)勢庫、過程庫和歷史庫中所存儲的地理空間實體數(shù)據(jù)是指宗地數(shù)據(jù)以及和宗地有關系的其他地理空間實體矢量數(shù)據(jù),地理空間實體矢量數(shù)據(jù)的特征及結構是均為時空數(shù)據(jù),同時包含標識信息、空間幾何信息、產(chǎn)生時間信息、消亡時間信息以及其他需要擴展的屬性信息;以一個地理空間實體為最小單位,以面向?qū)ο笮蜁r空一體數(shù)據(jù)庫的方式記錄。
4. 根據(jù)權利要求1所述的一種基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法,其特征在于,所述的使用地理系統(tǒng)軟件的圖形操作工具變更現(xiàn)勢庫中的地理空間實體數(shù)據(jù),在過程庫中產(chǎn)生新的變更后地理空間實體數(shù)據(jù)步驟:選中現(xiàn)勢庫中的、需要被變更的地理空間實體數(shù)據(jù),使用地理信息系統(tǒng)商業(yè)軟件提供的新增、分割、合并、移動、形狀改變、屬性修改或者刪除等變更工具對其進行修改;將產(chǎn)生的、新的變更后地理空間實體數(shù)據(jù)用面向?qū)ο笮蜁r空一體數(shù)據(jù)庫的方式記錄在過程庫中,同時保證現(xiàn)勢庫中被變更的地理空間實體數(shù)據(jù)不發(fā)生變化;用地理信息系統(tǒng)軟件,將現(xiàn)勢庫中的、被變更的地理空間實體數(shù)據(jù),以及過程庫中的、新的變更后地理空間實體數(shù)據(jù)同時繪制在顯示器上。
5. 根據(jù)權利要求1所述的一種基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法,其特征在于,所述的變更過程中,記錄現(xiàn)勢庫中的地理空間實體數(shù)據(jù)和過程庫中的、新的變更后地理空間實體數(shù)據(jù)之間的關聯(lián)關系,創(chuàng)建時態(tài)核心關聯(lián)索引步驟首先判斷時態(tài)核心關聯(lián)索引表是否存在,不存在則使用商業(yè)數(shù)據(jù)庫引擎創(chuàng)建時態(tài)核心關聯(lián)索引表;獲得當前時間確定為此次變更的變更時間,標記現(xiàn)勢庫中的被變更的地理空間實體和過程庫中的新生成的地理空間實體,同時記錄它們之間的關聯(lián),并以關系表的方式存儲于時態(tài)核心關聯(lián)索引表中。
6. 根據(jù)權利要求1所述的一種基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法,其特征在于,所述的根據(jù)步驟3)產(chǎn)生的時態(tài)核心關聯(lián)索引,將現(xiàn)勢庫中的、被變更的地理空間實體數(shù)據(jù)提交入歷史庫,將步驟2)產(chǎn)生的、新的變更后地理空間實體數(shù)據(jù)提交入現(xiàn)勢庫的步驟將時態(tài)核心關聯(lián)索引對應的現(xiàn)勢庫中的、被變更的地理空間實體移動到歷史庫存儲,將時態(tài)核心關聯(lián)索引對應的過程庫中的、新的變更后地理空間實體移動到現(xiàn)勢庫存儲。
7. 根據(jù)權利要求1所述的一種基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法,其特征在于,步驟5)中所述的最大有效查詢閾值和最佳查詢值是用戶輸入的經(jīng)驗值,最大有效查詢閾值必須遠遠大于最佳査詢值,最大有效查詢閾值的默認值是10000,最佳査詢值的默認值是400,它們均以文本的方式存儲。
8. 根據(jù)權利要求1所述的一種基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法,其特征在于,所述的創(chuàng)建變粒度索引因子的步驟首先依據(jù)基態(tài)修正模型的分辨率刻度值大小、基態(tài)修正的頻率、事務處理時間存儲制式的跨度以及數(shù)據(jù)庫的總體規(guī)模等因素,確定最大有效查詢閾值和最佳查詢值,并以文本方式記錄,然后,根據(jù)用戶需要,從文本中讀取最大有效査詢閾值和最佳査詢值,并使用變粒度索引因子值確定方法計算出最佳的單位區(qū)段起點和終點,稱為基本索引因子K。,再以K。的倍數(shù)賦值給各基態(tài)修正區(qū)段,稱為變粒度索引因子Ki,由此獲得各基態(tài)修正區(qū)段長度,并將該值存儲于對應的變粒度索引表中;其中,變粒度索引因子值確定方法如下從日、月、季、年四個時間刻度中任意選擇一個,作為標準時間刻度,計算出歷史庫中的變更記錄每發(fā)生一次變化用去的標準時間,該標準時間與最佳査詢值的乘積確定為基本索引因子K。值,然后用戶以湊足整年份為目的指定的基本索引因子K。倍數(shù),從而確定變粒度索引因子Ki值,顯然的,倍數(shù)的最大值為最大査詢閾值與最佳查詢值的比值,變粒度索引因子值一經(jīng)修改,就必須立即更新基態(tài)修正區(qū)段快速索引表中的數(shù)據(jù),即重新劃分基態(tài)修正區(qū)段。
9. 根據(jù)權利要求1所述的一種基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法,其特征在于,所述的根據(jù)步驟5)產(chǎn)生的變粒度索引因子,創(chuàng)建基態(tài)修正區(qū)段快速索引步驟首先判斷基態(tài)修正區(qū)段快速索引表是否存在,如果不存在則創(chuàng)建一張基態(tài)修正區(qū)段快速索引表;然后,讀取變粒度索引表中的變粒度因子存儲在數(shù)組中;從數(shù)組中讀取第一個粒度因子K,,并從歷史庫中讀取首次變更時間作為基態(tài)修正區(qū)段的起始時間,通過第一個變粒度因子K,和起始時間計算出基態(tài)修正區(qū)段的結束時間;再然后由起始時間和結束時間從歷史庫中獲得起始時間對應的第一個地理空間實體的標識,以及結束時間對應的最后一個地理空間實體的標識;然后生成基態(tài)修正區(qū)段快速索引的標識,將基態(tài)修正區(qū)段快速索引的標識,起始時間,結束時間,起始時間對應的第一個地理空間實體的標識,結束時間對應的最后一個地理空間實體的標識這五個值存儲到基態(tài)修正區(qū)段索引關系表中。這樣,就完成了第一個基態(tài)修正區(qū)段的劃分,然后將結束時間作為第二個基態(tài)修正區(qū)段的起始時間,從數(shù)組中讀取第二個變粒度因子K2重復上述過程。
10. 根據(jù)權利要求1所述的一種基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法,其特征在于,所述的根據(jù)步驟6)產(chǎn)生的基態(tài)修正區(qū)段快速索引,進行歷史回溯、歷史恢復和區(qū)域歷史再現(xiàn)步驟歷史回溯是指地理空間實體的變遷歷史,地理空間實體從產(chǎn)生到消亡地全部歷史過程,它根據(jù)用戶指定的查詢時間獲得該時間所在的歷史區(qū)段,根據(jù)歷史區(qū)段索引創(chuàng)建歷史庫中的表的視圖,通過時態(tài)核心關聯(lián)索引表,提取前變更前后地理空間實體的信息,并循環(huán)使用,并且每進行一次提取就在當前節(jié)點添加一個子節(jié)點,整個歷史回溯的結果就形成一棵倒序的回溯樹;歷史恢復是指將變更過的地理空間實體退回到變更前的狀態(tài)的過程,它以上述歷史回溯過程為基礎,獲得一棵倒序的回溯樹后,刪除該樹中指定歷史節(jié)點的所有子節(jié)點,然后刪除現(xiàn)勢庫中的地理空間實體,再將相關聯(lián)的歷史庫中的地理空間實體移動到現(xiàn)勢庫的過程;區(qū)域歷史再現(xiàn)是指通過某時刻所屬的基態(tài)和修正信息恢復區(qū)域某一時刻的全貌,當査詢時刻1\處于L和T2之間,當前狀態(tài)是更改時刻所屬基態(tài)時,恢復Ti歷史時刻全貌的過程為判斷Ti時刻所屬基態(tài),找出Ti時刻到T2時刻之間因變更所產(chǎn)生的修正量,相對于基態(tài)進行回退修正即可得到Ti歷史時刻的全貌,即在歷史庫中應用SQL語句"產(chǎn)生時間< L and消亡時間> 査詢地理空間實體,在現(xiàn)勢庫中應用SQL語句"產(chǎn)生時間〈Ti"査詢地理空間實體,同時調(diào)用上述兩條査詢語句得到地理空間實體集,這些來源不同并且"存在時間"不同的地理空間實體共同組成了 Ti歷史時刻的全貌,完成區(qū)域歷史再現(xiàn),最后使用地理信息系統(tǒng)顯示軟件將結果顯示到顯示器上。
全文摘要
本發(fā)明公開了一種基于基態(tài)的動態(tài)修正擴展模型的宗地時空數(shù)據(jù)存儲方法。它基于基態(tài)的動態(tài)修正擴展模型,創(chuàng)建現(xiàn)勢庫、過程庫和歷史庫,使用變更工具變更地理空間實體,同時創(chuàng)建時態(tài)核心關聯(lián)索引記錄變更關系,再將變更數(shù)據(jù)提交入庫;當歷史庫中數(shù)據(jù)超過最大有效查詢閾值時,根據(jù)最佳查詢值,創(chuàng)建變粒度索引因子和基態(tài)修正區(qū)段快速索引;并根據(jù)此索引,進行歷史回溯、歷史恢復和區(qū)域歷史再現(xiàn),最終完成宗地時空數(shù)據(jù)存儲。本發(fā)明可以準確記錄宗地歷史演化的過程,可以有效管理空間數(shù)據(jù)的歷史時態(tài),避免了宗地變更時數(shù)據(jù)記錄的復雜和繁瑣,提高了檢索的效率,保證了快速回溯任意歷史時刻宗地數(shù)據(jù)信息的要求,保證了同一時刻的數(shù)據(jù)不產(chǎn)生二義性的要求。
文檔編號G06F17/30GK101593208SQ20091010049
公開日2009年12月2日 申請日期2009年7月9日 優(yōu)先權日2009年7月9日
發(fā)明者南 劉, 劉仁義, 唐遠彬, 豐 張, 雷 方, 杜震洪 申請人:浙江大學