霍 亮,田 軍,靖常峰
(1.北京建筑大學(xué)測(cè)繪與城市空間信息學(xué)院,北京100044;2.現(xiàn)代城市測(cè)繪國(guó)家測(cè)繪地理信息局重點(diǎn)實(shí)驗(yàn)室,北京100044)
本文用增量信息來存儲(chǔ)外業(yè)變化信息,內(nèi)業(yè)通過更新處理程序?qū)υ隽啃畔⑦M(jìn)行操作處理,進(jìn)而完成對(duì)基態(tài)的修正更新。采用多級(jí)差文件形式保存并索引歷史數(shù)據(jù),將修正更新后的矢量數(shù)據(jù)庫(kù)作為當(dāng)前最新基態(tài);隨著基態(tài)的不斷更新,差文件大量累積,當(dāng)數(shù)量累積達(dá)到某個(gè)閾值時(shí)合并差文件,形成差文件的多級(jí)索引模式,并建立新基態(tài),更新前的基態(tài)作為歷史基態(tài)?;鶓B(tài)模型如圖1所示。
圖1 基態(tài)修正模型
本文增量更新思路是通過對(duì)增量信息文件的采集時(shí)間和基態(tài)數(shù)據(jù)庫(kù)的最新基態(tài)時(shí)刻進(jìn)行對(duì)比處理,以檢測(cè)數(shù)據(jù)庫(kù)是否需要更新,再根據(jù)增量信息情況進(jìn)行更新操作,技術(shù)流程如圖2所示。
圖2 矢量數(shù)據(jù)增量更新方法
增量信息是指基于基態(tài)數(shù)據(jù)的變化信息,從面向?qū)ο蟮慕嵌瓤?,多個(gè)實(shí)體間的演變和空間結(jié)構(gòu)的變化都可以通過對(duì)單個(gè)實(shí)體的操作實(shí)現(xiàn)。本文在現(xiàn)有研究成果基礎(chǔ)上,將變化信息從實(shí)質(zhì)上歸結(jié)為4種變化類型:刪除、創(chuàng)建、幾何變化、屬性變化。細(xì)分來說,對(duì)每一項(xiàng)又可以進(jìn)行具體擴(kuò)充:①刪除:將一個(gè)地理對(duì)象刪除,包括空間屬性和非空間屬性;②創(chuàng)建:新建一個(gè)地理對(duì)象及其相關(guān)屬性;③屬性變化:地理對(duì)象的非空間屬性發(fā)生變化,主要是語義屬性變化;④幾何變化:地理對(duì)象的空間屬性發(fā)生變化,其中主要包括實(shí)體的移動(dòng)、旋轉(zhuǎn)、擴(kuò)大、縮小和變形。
增量信息是指外業(yè)采集的地理實(shí)體變化產(chǎn)生的成果數(shù)據(jù),將其描述成地理空間中新舊地理目標(biāo)在變化時(shí)刻的狀態(tài),本文將增量信息的模型定義為4個(gè)部分。
1)元數(shù)據(jù)信息:主要是與增量信息相關(guān)的信息,如文件版本、坐標(biāo)系、投影類型、比例尺、數(shù)據(jù)空間范圍等,在對(duì)舊基態(tài)進(jìn)行增量更新時(shí),便于舊基態(tài)與增量信息之間進(jìn)行對(duì)比轉(zhuǎn)換。
2)屬性表結(jié)構(gòu):主要描述變化對(duì)象對(duì)應(yīng)的屬性表的結(jié)構(gòu)信息,包括屬性表名稱、字段名稱、屬性類別(空間和非空間)、數(shù)據(jù)類型和數(shù)據(jù)精度等;對(duì)于每個(gè)屬性表中,有幾個(gè)字段固定存在,包括對(duì)象的唯一標(biāo)識(shí)碼、對(duì)象的變化類型,以及變化時(shí)間等。
3)采集時(shí)間:是指增量信息產(chǎn)生的時(shí)間,是用來區(qū)別多個(gè)不同增量文件的時(shí)間要素,也是增量文件與基態(tài)數(shù)據(jù)庫(kù)之間關(guān)聯(lián)的標(biāo)識(shí);通過采集時(shí)間可以判斷數(shù)據(jù)庫(kù)是否需要更新,采集時(shí)間T等于或小于數(shù)據(jù)庫(kù)最新基態(tài)時(shí)刻t,表示數(shù)據(jù)庫(kù)不需要更新;T大于t,表示數(shù)據(jù)庫(kù)需要更新。
4)更新操作:主要包括更新操作的對(duì)象、基于變化類別的操作,以及更新操作的內(nèi)容,見表1。
表1 更新操作
增量信息的存儲(chǔ)模型是依據(jù)某一時(shí)刻發(fā)生的更新操作,逐順序地存儲(chǔ)每一步更新操作對(duì)應(yīng)的增量信息,存儲(chǔ)結(jié)構(gòu)如圖3所示。
372 Standard operation procedure of diagnosis and treatment process for severe acute pancreatitis: clinical application
圖3 數(shù)據(jù)結(jié)構(gòu)
本文采用差文件對(duì)數(shù)據(jù)庫(kù)更新后新舊兩個(gè)基態(tài)之間產(chǎn)生的數(shù)據(jù)差進(jìn)行組織和存儲(chǔ)。通過調(diào)用基態(tài)數(shù)據(jù)庫(kù)和相應(yīng)的差文件,可以對(duì)歷史數(shù)據(jù)進(jìn)行檢索查詢,同時(shí)對(duì)差文件進(jìn)行閾值合并,建立多級(jí)索引,對(duì)每一級(jí)的差文件增加一個(gè)記錄變更時(shí)間段的字段,并且每一級(jí)別的差文件在時(shí)間上連續(xù)且范圍沒有重疊。
本文設(shè)計(jì)的差文件在數(shù)據(jù)格式上與增量信息的格式基本相似,引入面向?qū)ο蟮母拍?,差文件中增加了?duì)新舊基態(tài)之間時(shí)間范圍的相關(guān)記錄,不再記錄對(duì)象的變化類型和變化時(shí)間。主要包括以下3個(gè)部分:
1)元數(shù)據(jù)信息:該內(nèi)容同增量信息類似,主要是與差文件相關(guān)的描述信息,由于本文的基態(tài)模型將差文件分成多級(jí)并建立索引,因此在此基礎(chǔ)上增加了一個(gè)描述差文件級(jí)別的記錄。
2)屬性表結(jié)構(gòu):在增量信息的基礎(chǔ)上,去掉了屬性表中變化類型和變化時(shí)間的字段,增加了兩個(gè)字段,即變化前對(duì)象ID和變化后對(duì)象ID。
3)時(shí)間覆蓋范圍:記錄了差文件所描述的數(shù)據(jù)信息的時(shí)間跨度,以更新前基態(tài)的時(shí)刻作為差文件的開始時(shí)間、更新后基態(tài)的時(shí)刻作為差文件的結(jié)束時(shí)間。
基態(tài)記錄的是某時(shí)刻的數(shù)據(jù)庫(kù)狀態(tài),增量信息記錄的是相對(duì)于該數(shù)據(jù)庫(kù)狀態(tài)的變化信息。對(duì)基態(tài)進(jìn)行數(shù)據(jù)更新,就需要對(duì)增量信息進(jìn)行分析處理,具體更新流程如下:①讀取增量信息;②分析增量信息的采集時(shí)間,對(duì)比數(shù)據(jù)庫(kù)的基態(tài)時(shí)刻,將數(shù)據(jù)庫(kù)與增量信息進(jìn)行關(guān)聯(lián)并判斷是否需要更新;③處理元數(shù)據(jù):主要是檢查增量文件元數(shù)據(jù)信息中的版本、坐標(biāo)系、投影、比例尺等信息,以及數(shù)據(jù)空間范圍等相關(guān)信息,以便于確定基態(tài)數(shù)據(jù)與變化數(shù)據(jù)的一致性;④處理屬性表結(jié)構(gòu):針對(duì)變化數(shù)據(jù)的屬性表結(jié)構(gòu),采用一定的數(shù)據(jù)結(jié)構(gòu)來提取和存儲(chǔ);⑤對(duì)增量信息的更新操作:對(duì)不同的要素對(duì)象根據(jù)其變化類型,采用相應(yīng)的時(shí)空數(shù)據(jù)動(dòng)態(tài)操作算子對(duì)其進(jìn)行操作,實(shí)現(xiàn)對(duì)基態(tài)數(shù)據(jù)庫(kù)的更新。
本文在基于增量信息對(duì)基態(tài)數(shù)據(jù)庫(kù)進(jìn)行更新后,利用差文件來存儲(chǔ)基態(tài)數(shù)據(jù)庫(kù)更新后所產(chǎn)生的歷史數(shù)據(jù)。生成的具體流程如下:①根據(jù)增量信息的元數(shù)據(jù)等相關(guān)信息,確定差文件的元數(shù)據(jù)信息,并根據(jù)新舊基態(tài)的時(shí)間間隔是否達(dá)到閾值及相鄰時(shí)間段內(nèi)差文件數(shù)量,來確定差文件的級(jí)別;②處理差文件屬性表結(jié)構(gòu),存儲(chǔ)變化信息的表結(jié)構(gòu)內(nèi)容,依據(jù)增量信息中的變化類型確定空間和非空間信息是否需要寫入差文件對(duì)應(yīng)的信息段中以歷史信息保存;③從原基態(tài)中挖掘發(fā)生變化的空間目標(biāo)對(duì)應(yīng)的生存期,差文件中記錄其開始和結(jié)束時(shí)間,即差文件的時(shí)間覆蓋范圍。
本文在Windows環(huán)境下,采用B/S開發(fā)模式,運(yùn)用面向?qū)ο蟮姆椒ê徒M件對(duì)象技術(shù),將GeoServer和Tomcat集成發(fā)布矢量數(shù)據(jù);利用PostgreSQL來存儲(chǔ)空間和屬性數(shù)據(jù),使用 Java、HTML、JavaScript開發(fā),設(shè)計(jì)實(shí)現(xiàn)了一個(gè)數(shù)據(jù)庫(kù)增量更新系統(tǒng)。
以某區(qū)域的中藥材普查信息為例,通過人工對(duì)不同藥材的分布區(qū)域進(jìn)行調(diào)繪并矢量成圖,形成增量信息,系統(tǒng)在接收到新的增量信息文件時(shí),加載基態(tài)數(shù)據(jù),導(dǎo)入增量信息文件,然后通過增量信息對(duì)舊基態(tài)數(shù)據(jù)進(jìn)行更新,具體處理流程如圖4所示;更新之后的對(duì)象高亮顯示,如圖5、圖6所示;最后將地理實(shí)體對(duì)象變化前后的信息差存入差文件中,以供歷史查詢。
圖4 基于增量信息文件的更新流程
圖5 某類中藥材資源斑塊
圖6 某類中藥材資源新增斑塊
本文在國(guó)內(nèi)外研究的基礎(chǔ)上,基于基態(tài)修正擴(kuò)展模型,探討了時(shí)空數(shù)據(jù)的組織方式,采用改進(jìn)的數(shù)據(jù)存儲(chǔ)模型,設(shè)計(jì)并實(shí)現(xiàn)了一套利用增量信息和差文件實(shí)現(xiàn)增量更新和歷史回溯的技術(shù)方案,不僅可以有效地實(shí)現(xiàn)增量更新,還可以實(shí)現(xiàn)歷史數(shù)據(jù)的回溯、查詢分析等。但本文的數(shù)據(jù)更新局限于統(tǒng)一尺度的矢量數(shù)據(jù),沒有考慮不同比例尺、不同分辨率的數(shù)據(jù)更新問題。多尺度、多源海量數(shù)據(jù)的更新問題是今后進(jìn)一步研究的方向。
[1]周曉光,陳軍,朱建軍,等.基于事件的時(shí)空數(shù)據(jù)庫(kù)增量更新[J].中國(guó)圖象圖形學(xué)報(bào),2006,11(10):1431-1438.
[2]胡輝,王昌佐,梁萬杰,等.基于Shapefile的基態(tài)修正模型設(shè)計(jì)與實(shí)現(xiàn)[J].地球信息科學(xué)學(xué)報(bào),2012,14(3):314-319.
[3]尹章才,李霖.基于快照-增量的時(shí)空索引機(jī)制研究[J].測(cè)繪學(xué)報(bào),2005,34(3):257-261.
[4]徐海敬,李清泉.基于時(shí)態(tài)GIS的導(dǎo)航電子地圖增量更新研究[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2008,33(11):1182-1185.
[5]張新長(zhǎng),郭泰圣,唐鐵.一種自適應(yīng)的矢量數(shù)據(jù)增量更新方法研究[J].測(cè)繪學(xué)報(bào),2012,41(4):613-619.
[6]陳新寶,LI Songnian,朱建軍,等.時(shí)空數(shù)據(jù)模型綜述[J].地理科學(xué)進(jìn)展,2009,28(1):9-17.
[7]張保鋼,朱重光,王潤(rùn)生.改進(jìn)的時(shí)空數(shù)據(jù)基態(tài)修正方法[J].測(cè)繪學(xué)報(bào),2005,34(3):252-256.
[8]陳軍,周曉光.基于拓?fù)渎?lián)動(dòng)的增量更新方法研究[J].測(cè)繪學(xué)報(bào),2008,37(3):322-329.
[9]孫英杰.基于變化信息文件的增量更新方法研究[D].長(zhǎng)沙:中南大學(xué),2008.
[10]張嫣然.地籍?dāng)?shù)據(jù)庫(kù)增量更新機(jī)制的研究與實(shí)現(xiàn)[D].杭州:浙江大學(xué),2012.
[11]LANGRAN G.Time in Geographyic Information Systems[J].Taylor&Francis,1992,27(44):37-41.
[12]羅曉燕,袁燕巖.北京市數(shù)字線劃圖數(shù)據(jù)庫(kù)增量更新技術(shù)的應(yīng)用研究[J].測(cè)繪通報(bào),2007(11):57-60.