楊娟 管續(xù)棟
摘要:基態(tài)修正模型,作為時空數(shù)據(jù)模型之一,可用于歷史回溯功能的設計。鑒于此,利用ArcEngine開發(fā)組件和.Net開發(fā)平臺,結(jié)合基于ArcSDE數(shù)據(jù)庫的連接通道,連接到關(guān)系數(shù)據(jù)庫,再使用其中時空數(shù)據(jù)實現(xiàn)歷史數(shù)據(jù)回溯功能,使數(shù)據(jù)庫能快速準確地回溯到歷史狀態(tài)并顯示在地圖上,便于提供豐富、直觀、對比性強的信息。本文利用ArcEngine進行歷史數(shù)據(jù)回溯開發(fā),可將功能快速集成到開發(fā)者自定義的應用軟件,從而達到高效、省時、節(jié)約成本的目的
關(guān)鍵詞:歷史數(shù)據(jù)回溯;ArcEngine;基態(tài)修正模型
中圖分類號: P208 文獻標識碼:A 文章編號1672-3791(2016)01(a)-0000-00
空間、屬性、時間是地理現(xiàn)象的三個基本特征,也是GIS數(shù)據(jù)庫的三種基本數(shù)據(jù)成分。近年來,隨著以空間數(shù)據(jù)庫為基礎的GIS研究和應用的不斷深入,伴隨時間而變化的信息越來越受到人們的關(guān)注,其需求如變更統(tǒng)計、歷史查詢、動態(tài)監(jiān)測及趨勢分析等都在不斷變化。歷史數(shù)據(jù)回溯是指令數(shù)據(jù)庫在給定時間點上,回溯到當時時刻的狀態(tài),從而為上述需求提供數(shù)據(jù)依據(jù)。
傳統(tǒng)歷史數(shù)據(jù)回溯的方式一般為快照方式,即在數(shù)據(jù)庫中僅記錄當前數(shù)據(jù)狀態(tài),數(shù)據(jù)更新后,將一系列時間片段的數(shù)據(jù)快照保存起來,回溯則讀取對應時間點上的數(shù)據(jù)快照,以反映整個空間特征的狀態(tài)。因快照對未發(fā)生變化的所有特征進行重復存儲,會產(chǎn)生大量數(shù)據(jù)冗余,當事件變化頻繁且數(shù)據(jù)量較大時,系統(tǒng)效率急劇下降。因此,利用基態(tài)修正模型可避免重復記錄未發(fā)生變化部分的特征。
1 基態(tài)修正模型
時空數(shù)據(jù)模型是一種有效組織、管理時態(tài)地理數(shù)據(jù),屬性、空間和時間語意更完整的地理數(shù)據(jù)模型。近10年來,研究學者提出了不同的時空概念模型,如基于狀態(tài)的特征/關(guān)系表達、基于事件的特征/關(guān)系表達等,這些模型在表達時空數(shù)據(jù)的一體化特性中各有優(yōu)劣。
基態(tài)修正時空數(shù)據(jù)模型,也稱地圖疊加模型,基本思想是首先確定地理現(xiàn)象的初始狀態(tài),再按一定的時間間隔記錄發(fā)生變化的區(qū)域,通過疊加每次變化的內(nèi)容,得到每次變化的狀態(tài)。由于基態(tài)修正模型只存儲地理現(xiàn)象變化的區(qū)域,因此可大幅度減少數(shù)據(jù)儲存量,縮小數(shù)據(jù)冗余,節(jié)約儲存空間,如圖1所示簡單描述了基態(tài)修正模型原理。
基態(tài)修正模型又可分為向前版本法和向后版本法。向后版本法是將現(xiàn)用數(shù)據(jù)庫狀態(tài)作為基態(tài),每次變化后將前一狀態(tài)相對于最新狀態(tài)的變化部分存入變化量集合。該方法是一種較適用的基態(tài)修正方法,也是本文主要用于進行歷史數(shù)據(jù)回溯的方法。
2 歷史數(shù)據(jù)回溯的設計
歷史數(shù)據(jù)回溯的結(jié)果是符合時間限制條件的基態(tài)記錄(Value_Base)與變化量記錄(Value_Change)的組合,需設計兩個單獨的數(shù)據(jù)庫分別保存兩個不同性質(zhì)數(shù)據(jù),即現(xiàn)勢庫(DB_NOW)和歷史庫(DB_HISTORY)。庫中設計包含表示時間屬性的字段,即ModifyTime和DeleteTime字段。
ModifyTime字段表示記錄修改的時間,此字段的值將在記錄被修改或刪除時保存于DB_NOW。在更新現(xiàn)勢庫記錄前,提取所有即將修改的記錄(變化量),將其從DB_NOW復制到DB_HISTORY中,并將當前系統(tǒng)時間寫入DB_HISTORY相應的DeleteTime字段中,則完成將相對最新基態(tài)的變化量提取到歷史庫的過程,同時也將最新基態(tài)更新到DB_NOW中。DeleteTime字段代表記錄消亡時間,即記錄“消亡”是一時空概念,指在某個確定時間點上的一個記錄產(chǎn)生消亡。
歷史數(shù)據(jù)回溯需指定一個時間點SpecifiedTime,令數(shù)據(jù)庫回溯到相應時間的歷史狀態(tài)。篩選DB_NOW中符合條件“ModifyTime<=SpecifiedTime”的記錄,將這些記錄加入到一個臨時庫(DB_TEMP)。同時,DB_HISTORY的每條符合條件“ModifyTime<=SpecifiedTime And DeleteTime>SpecifiedTime”的記錄也將添加于DB_TEMP,替代DB_NOW,實現(xiàn)數(shù)據(jù)庫的回溯。
3 歷史數(shù)據(jù)無極回溯
歷史數(shù)據(jù)無極回溯是將數(shù)據(jù)庫內(nèi)容回滾到時間軸的某個時間點上,以保證數(shù)據(jù)庫內(nèi)容與此時間點上數(shù)據(jù)庫內(nèi)容一致。在用戶拖動時間軸時,無極回溯能快速準確地在地圖控件上動態(tài)顯示對應時間點的回溯內(nèi)容。
本文利用ArcEngine進行歷史數(shù)據(jù)回溯開發(fā),可將功能快速集成到開發(fā)者自定義的應用軟件,從而達到高效、省時、節(jié)約成本的目的。實驗分析時,結(jié)合符合時間條件的歷史圖層數(shù)據(jù)和現(xiàn)勢圖層數(shù)據(jù),在地圖上顯示,以重現(xiàn)當時數(shù)據(jù),再利用ArcSDE創(chuàng)建用戶與關(guān)聯(lián)表到Oracle,運用IProperty接口通過ArcSDE登錄數(shù)據(jù)庫以獲取數(shù)據(jù)庫工作空間,工作空間即在程序中以IWorkSpace接口表現(xiàn)出來。以ArcEngine_Layer類中IFeatureLayerDefinition2接口的DefinitionExpression法作為時間條件,限制表達式的輸入口,將上述限制條件以程序的形式傳遞到DefinitionExpression參數(shù)中,運行程序即可完成功能。
上述方法能在地圖中顯示符合表達式條件的記錄,則省略了將記錄添加到新圖層再顯示的步驟。由于連續(xù)拖動時間軸動作將會對數(shù)據(jù)庫進行大量操作,則操作時必須使用SpatialFilter對整個數(shù)據(jù)創(chuàng)建顯示范圍,如圖2所示的測試數(shù)據(jù),即選取時間軸上三個不同時間點,經(jīng)測試后所顯示的一定范圍內(nèi)的數(shù)據(jù)快照。結(jié)果表明,此方法快速準確。
4 結(jié)束語
利用ArcEngine組件與ArcSDE連接通道可加快功能模塊的建立,加強對地理信息系統(tǒng)的管理?;谝陨霞夹g(shù)的地理信息歷史數(shù)據(jù)回溯功能,可快速準確地將數(shù)據(jù)庫回溯到指定歷史狀態(tài),適用于地理信息數(shù)據(jù)管理、備份、研究及統(tǒng)計等方面。
參考文獻
[1] 郝忠孝.時空數(shù)據(jù)庫新理論[M].科學出版社第1版, 2011:35-60.
[2] 陶佩風,周波.基于時空模型的地籍信息數(shù)據(jù)庫設計方法探討[J].計算機時代,2009.2: 24-28.
[3] 曹偉,花向紅,許躍民.時態(tài)GIS及其應用[J].地理空間信息2005.3(6): 31-32.
[4] 周輝,周曉光,何憑宗,等.基態(tài)修正模型的時空數(shù)據(jù)組織和快照查詢方法研究[J].地理信息世界 2010.2:49-53
[5] 王賀封.時空數(shù)據(jù)模型及TGIS研究[J].測繪與空間地理信息2006.29(4): 11-13.