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