林江偉 滕德貴
(重慶市勘測院, 重慶 401121)
隨著城市建設(shè)的快速發(fā)展,支撐城市建設(shè)的城市矢量空間數(shù)據(jù)類型不斷增多,除大比例尺地形圖數(shù)據(jù)外,還包含城市地下管線、地下空間、市政部件等數(shù)據(jù),這些矢量空間數(shù)據(jù)有著地物要素變化迅速,更新頻率高的特點(diǎn),長期以來,這些海量的數(shù)據(jù)基于標(biāo)準(zhǔn)分幅或非標(biāo)準(zhǔn)格網(wǎng)分區(qū)的模式進(jìn)行管理,數(shù)據(jù)生產(chǎn)與數(shù)據(jù)應(yīng)用采用分開管理、定期更新的模式,隨著信息化時(shí)代的到來,傳統(tǒng)管理模式無法建立高效的數(shù)據(jù)應(yīng)用體系,數(shù)據(jù)的時(shí)效性滯后于城市變化發(fā)展的矛盾日益突出,遠(yuǎn)遠(yuǎn)滿足不了城市規(guī)劃、管理工作的需要,嚴(yán)重制約著城市建設(shè)發(fā)展的步伐[1-2]。因此,建立一套數(shù)據(jù)生產(chǎn)與數(shù)據(jù)應(yīng)用的一體化作業(yè)體系成為亟待解決問題。
矢量空間數(shù)據(jù)更新方法有基于范圍的更新方法和基于要素的更新方法[3-4],傳統(tǒng)管理模式中采用按范圍整體替換的更新方法,更新對象面向范圍而不是面向要素,更新顆粒度粗糙,沒有體現(xiàn)數(shù)據(jù)的增量信息,不能準(zhǔn)確反映要素的新增、變化與消亡,只能將某個(gè)時(shí)刻的數(shù)據(jù)作為歷史版本單獨(dú)存儲(chǔ),不僅數(shù)據(jù)冗余量大,而且無法實(shí)現(xiàn)數(shù)據(jù)的多時(shí)態(tài)特性,在后期很難實(shí)現(xiàn)任意歷史時(shí)刻的數(shù)據(jù)重建、時(shí)空變化追蹤等。
傳統(tǒng)管理模式一般采用按圖幅或分區(qū)整體調(diào)出的數(shù)據(jù)調(diào)取方法,數(shù)據(jù)調(diào)出后,若有其他項(xiàng)目需要使用相同的圖幅或分區(qū)時(shí),只能排隊(duì)進(jìn)行數(shù)據(jù)更新,不能進(jìn)行協(xié)同作業(yè),用圖沖突的常用處理方法是以文件流轉(zhuǎn)的方式臨時(shí)拆借,對歸還數(shù)據(jù)的版本正確性較難進(jìn)行判斷。
為對矢量空間數(shù)據(jù)進(jìn)行挖掘利用,大都建立了城市矢量空間數(shù)據(jù)庫,而數(shù)據(jù)更新是維護(hù)矢量空間數(shù)據(jù)庫現(xiàn)勢性的主要手段[5],建庫后必須對其進(jìn)行動(dòng)態(tài)的維護(hù)和更新,才能滿足各行業(yè)的運(yùn)用需求,然而生產(chǎn)與應(yīng)用數(shù)據(jù)往往被視為兩套數(shù)據(jù)[6-7],從生產(chǎn)數(shù)據(jù)到應(yīng)用數(shù)據(jù)需要進(jìn)行大量加工、接邊處理,因此同步周期長,耗費(fèi)工作量大[8],最終導(dǎo)致了數(shù)據(jù)生產(chǎn)與數(shù)據(jù)應(yīng)用脫節(jié)的局面。
本文對城市矢量空間數(shù)據(jù)庫增量更新管理模式進(jìn)行了探索,建立了一套數(shù)據(jù)生產(chǎn)與數(shù)據(jù)應(yīng)用的一體化作業(yè)體系。首先,建立城市矢量多專題空間數(shù)據(jù)庫,數(shù)據(jù)庫劃分為3個(gè)層級:基于更新區(qū)的緩存庫、面向管理分區(qū)地從庫、面向應(yīng)用的主庫,三級數(shù)據(jù)庫結(jié)構(gòu)相同,可在短時(shí)間內(nèi)實(shí)現(xiàn)快速同步或更新,有效解決了數(shù)據(jù)生產(chǎn)與數(shù)據(jù)應(yīng)用的時(shí)效性問題;其次,數(shù)據(jù)更新基于實(shí)際作業(yè)的范圍,通過建立矢量空間數(shù)據(jù)庫更新沖突處理機(jī)制,實(shí)現(xiàn)多人連庫協(xié)同更新,有效控制了數(shù)據(jù)版本;第三,建立了要素級的增量檢測策略,獲取了空間要素的變化信息,實(shí)現(xiàn)了數(shù)據(jù)多時(shí)態(tài)特性,有效降低數(shù)據(jù)冗余,如圖1所示。
圖1 增量更新管理模式思路
隨著空間數(shù)據(jù)專題類型的增多,多專題數(shù)據(jù)的互相參考校核、多源數(shù)據(jù)混合采集等需求日益增長,因此數(shù)據(jù)建庫時(shí)進(jìn)行矢量數(shù)據(jù)和柵格數(shù)據(jù)的同步建庫,在統(tǒng)一的地理空間框架下,各種矢量和柵格數(shù)據(jù)實(shí)現(xiàn)疊加顯示,使得信息表達(dá)更加豐富而形象生動(dòng),提高了數(shù)據(jù)的綜合利用率。
矢量數(shù)據(jù)建庫以圖層為基本單位,如圖2所示,圖層下根據(jù)地物的類型,劃分為點(diǎn)、線、面、注記四類,每個(gè)類別分別建立地物空間數(shù)據(jù)表和擴(kuò)展屬性表,通過唯一的身份標(biāo)識(shí)號(hào)(identity document,ID)標(biāo)識(shí),實(shí)現(xiàn)屬性與地物的關(guān)聯(lián),地物按照類型分類建表可以極大地降低數(shù)據(jù)表冗余。專題則是一個(gè)邏輯單元,由若干個(gè)圖層組成。以圖層為基本單位的組織方式易于擴(kuò)充,當(dāng)需擴(kuò)充數(shù)據(jù)專題時(shí),在保證圖層唯一性的前提下,按圖層新建數(shù)據(jù)表即可。
圖2 數(shù)據(jù)庫組織結(jié)構(gòu)
柵格數(shù)據(jù)建庫前需使用圖像金字塔模型進(jìn)行預(yù)處理[9-10],構(gòu)造一組L1~L8的柵格序列,按序列構(gòu)建數(shù)據(jù)表,加載柵格數(shù)據(jù)時(shí),將根據(jù)屏幕縮放的比例尺,動(dòng)態(tài)確定并調(diào)用適合的柵格序列,實(shí)現(xiàn)了柵格數(shù)據(jù)由全貌到細(xì)節(jié)、由整體到局部,無縫的進(jìn)行影像漫游、瀏覽和應(yīng)用[11]。
數(shù)據(jù)更新往往涉及多個(gè)部門,部門又有多個(gè)作業(yè)人員參與,由于部門管理與作業(yè)人員水平的差異,如果都直接對唯一的數(shù)據(jù)總庫進(jìn)行更新操作,勢必不能有效地進(jìn)行數(shù)據(jù)質(zhì)量管理,因此建立“緩存庫(基于更新區(qū))+從庫(面向管理分區(qū))+主庫(數(shù)據(jù)應(yīng)用)”的三級數(shù)據(jù)庫模式,緩存庫面向作業(yè)人員,由從庫按照更新區(qū)域緩存形成,通過更新緩存庫提取相應(yīng)的增量信息,并呈現(xiàn)更新從庫后的復(fù)刻版本,經(jīng)過質(zhì)檢合格后,根據(jù)提取的增量信息,緩存庫自動(dòng)更新到從庫,從庫則依據(jù)某段時(shí)間的增量信息自動(dòng)向主庫進(jìn)行單向同步。多級數(shù)據(jù)庫的建立,使不同角色面對不同層級的數(shù)據(jù)庫,采用的金字塔式逐級同步的方式在有效保證數(shù)據(jù)質(zhì)量的前提下可實(shí)現(xiàn)數(shù)據(jù)生產(chǎn)和數(shù)據(jù)應(yīng)用在時(shí)效性上的快速統(tǒng)一,如圖3所示。
圖3 多級數(shù)據(jù)庫同步
從庫與緩存庫的更新面向多個(gè)用戶,假設(shè)多個(gè)用戶更新的區(qū)域不重合,也沒有對相同的要素進(jìn)行更新,那么數(shù)據(jù)更新可各自獨(dú)立進(jìn)行,但實(shí)際生產(chǎn)中,多個(gè)用戶的更新區(qū)域存在重合的情況,還有可能更新區(qū)域不重合但卻對同一要素進(jìn)行更新,這樣就產(chǎn)生了更新沖突。更新沖突會(huì)造成前者的更新信息丟失,地物要素版本的錯(cuò)誤,因此必須采用適當(dāng)?shù)臎_突控制方法,如圖4所示。由于城市建設(shè)項(xiàng)目在某個(gè)時(shí)間點(diǎn)上一般都分散存在,所以先采用樂觀并發(fā)控制思想進(jìn)行控制,假設(shè)對同一要素更新的沖突并不頻繁,在緩存庫先進(jìn)性修改,在緩存庫提交時(shí),再檢查相關(guān)的要素是否被修改過,如果沒有則提交,如果有則給出被更新后的數(shù)據(jù)版本進(jìn)行確認(rèn)。
圖4 更新沖突處理
但還需考慮另外一個(gè)問題,空間數(shù)據(jù)庫更新并非只是修改數(shù)據(jù)表,而是還需重建空間索引,如果修改表記錄后,索引還未重建,其他用戶同步進(jìn)行了更新或下載,會(huì)由于空間索引與地物要素不匹配得到錯(cuò)誤的結(jié)果,因此在數(shù)據(jù)提交時(shí)加入數(shù)據(jù)庫鎖避免這種極端情況,在數(shù)據(jù)更新提交數(shù)據(jù)庫前,先申請鎖定相應(yīng)專題的數(shù)據(jù)表,當(dāng)其他用戶申請鎖定專題數(shù)據(jù)表時(shí),則進(jìn)行警告并進(jìn)行排隊(duì)等候。
增量檢測的目的是為了發(fā)現(xiàn)變化的要素信息[12-13],從矢量數(shù)據(jù)中獲取出新增、修改與刪除等變化信息,根據(jù)變化信息對矢量空間數(shù)據(jù)庫進(jìn)行修改,由于修改只針對變化的地物,會(huì)顯著減少矢量空間數(shù)據(jù)庫冗余。增量檢測主要有基于空間特征的方法和基于ID標(biāo)識(shí)的方法,使用緩存的離線數(shù)據(jù)進(jìn)行更新時(shí),使用基于空間特征的方法,對數(shù)據(jù)庫進(jìn)行在線更新時(shí),則使用更為簡單的基于ID標(biāo)識(shí)的方法。
3.4.1基于空間特征的增量檢測
通過匹配空間要素空間特征實(shí)現(xiàn)增量檢測,匹配到空間特征一致的要素,判定為同一空間要素,然后進(jìn)行屬性比對,屬性有差異的則判定為修改;空間特征未匹配成功的孤立要素,屬于更新數(shù)據(jù)要素的則判定為新增,屬于庫數(shù)據(jù)要素的則判定為刪除。
3.4.2基于ID標(biāo)識(shí)的增量檢測
首先為離線數(shù)據(jù)與數(shù)據(jù)庫數(shù)據(jù)劃分ID標(biāo)識(shí)范圍,數(shù)據(jù)建庫時(shí)庫數(shù)據(jù)ID從10n(n由單個(gè)離線文件承載量決定)開始計(jì)算,每個(gè)離線數(shù)據(jù)文件ID則從1開始計(jì)算。增量檢測時(shí),更新數(shù)據(jù)要素ID標(biāo)識(shí)小于10n的,則判定為新增,庫數(shù)據(jù)要素ID在更新數(shù)據(jù)中查找不到的,則判定為刪除,有ID標(biāo)識(shí)對應(yīng),則進(jìn)行空間特征與屬性的比對,存在差異的則判定為修改。
得到增量檢測結(jié)果后便可進(jìn)行增量更新,對于新增要素,直接對地物進(jìn)行入庫,并標(biāo)記創(chuàng)建和更新時(shí)間;對于修改要素,克隆原記錄后更新要素的圖形和屬性信息,標(biāo)記更新時(shí)間,同時(shí)將原有紀(jì)錄標(biāo)記刪除時(shí)間;對于刪除的要素,并不是對記錄真的擦除,而是標(biāo)記上刪除的時(shí)間。通過基態(tài)修正模型[14],記錄要素創(chuàng)建、更新、刪除時(shí)間,構(gòu)建了矢量空間數(shù)據(jù)庫的時(shí)間維度T,時(shí)間維度密集程度取決于地物要素更新的頻率,當(dāng)進(jìn)行數(shù)據(jù)瀏覽、下載時(shí),若給定任意的時(shí)刻T(m)進(jìn)行歷史重演,則首先過濾T(m) 前已被刪除或修改的要素,其次過濾T(m)時(shí)刻后新增和修改的要素,顯示T(m)后刪除和修改的要素。
在進(jìn)行增量更新時(shí),還要考慮要素的接邊問題,對象化的數(shù)據(jù)存在較多長帶狀要素,但作業(yè)人員往往只關(guān)注要素在更新區(qū)域內(nèi)的空間特征變化,這會(huì)導(dǎo)致區(qū)域外的空間特征很可能存在誤刪、誤改而不被發(fā)現(xiàn)的情況,同時(shí)還有上述沖突處理中提到的,要素可能已被其他用戶修改更新,因此對要素按更新區(qū)域進(jìn)行接邊,而非整體替換,如圖5所示,使用右側(cè)數(shù)據(jù)按相應(yīng)更新區(qū)域進(jìn)行更新,對于與更新區(qū)域相交的要素,首先提取庫數(shù)據(jù)中更新區(qū)外的部分,其次提取更新數(shù)據(jù)區(qū)域內(nèi)的部分,然后進(jìn)行拼接,這樣使得空間特征質(zhì)量影響限定在更新區(qū)域內(nèi),同時(shí)也大大降低了沖突處理的復(fù)雜程度[15]。
圖5 數(shù)據(jù)接邊策略
進(jìn)行圖形接邊處理后,還涉及屬性的匹配與融合,如果有重要的屬性值不匹配,也不能進(jìn)行自動(dòng)接邊,例如,左側(cè)道路名為“L1路”,修測后屬性值變?yōu)榱恕癓2路”,這個(gè)時(shí)候就不能自動(dòng)屬性進(jìn)行取舍與融合,需要進(jìn)行人工確認(rèn)處理。
通過建立數(shù)據(jù)生產(chǎn)與數(shù)據(jù)應(yīng)用一體化的多層級矢量空間數(shù)據(jù)庫,采用多人協(xié)同更新數(shù)據(jù)庫與多級數(shù)據(jù)庫同步的方法,提高了數(shù)據(jù)流轉(zhuǎn)效率,控制了數(shù)據(jù)版本,方式更為靈活,更新周期更短,使得城市矢量空間數(shù)據(jù)變化信息可以快速地反映到生產(chǎn)與應(yīng)用數(shù)據(jù)庫,采用的要素級增量檢測與更新方法,使城市空間的變更信息得以保留,構(gòu)建了矢量空間數(shù)據(jù)的時(shí)間維度,可進(jìn)行任何歷史時(shí)刻數(shù)據(jù)重演,有利于進(jìn)一步提高矢量空間數(shù)據(jù)的精細(xì)化管理,更能滿足今后數(shù)據(jù)庫更新的發(fā)展方向。