鮑 鵬,霍 亮,2,王 銳,宋 磊,方 敏
(1. 北京建筑大學(xué) 測繪與城市空間信息學(xué)院,北京 102616;2. 現(xiàn)代城市測繪國家測繪地理信息局重點實驗室,北京 102616)
城市三維數(shù)據(jù)是數(shù)字城市3DGIS建設(shè)中的重要組成部分,由于城市三維數(shù)據(jù)更新速度快、數(shù)據(jù)量大等特點,城市三維數(shù)據(jù)更新逐步成為新的研究熱點[1]。
空間數(shù)據(jù)的組織方式是數(shù)據(jù)管理與更新的基礎(chǔ)。目前廣泛使用的空間數(shù)據(jù)組織方法都是以空間對象為基本單元進(jìn)行數(shù)據(jù)組織與更新,如基于特征的數(shù)據(jù)組織方法、面向?qū)ο蟮脑隽扛路椒ǖ?。與此同時,目前大規(guī)??臻g數(shù)據(jù)的組織方式多以形狀規(guī)則、變形較小的層狀面片進(jìn)行數(shù)據(jù)組織,能夠?qū)崿F(xiàn)海量數(shù)據(jù)的存儲、提取和分析,解決了傳統(tǒng)數(shù)據(jù)模型在全球范圍內(nèi)多尺度、海量數(shù)據(jù)和層次數(shù)據(jù)的局限性[2]。以格網(wǎng)面片單元進(jìn)行空間數(shù)據(jù)組織,能夠有效地組織管理大規(guī)模空間數(shù)據(jù),在提高空間數(shù)據(jù)渲染速度,減少空間數(shù)據(jù)I/O訪問等方面起到重要作用。目前常見的基于格網(wǎng)的空間數(shù)據(jù)組織方法有基于經(jīng)緯度格網(wǎng)模型、自適應(yīng)格網(wǎng)模型等。
道路網(wǎng)作為連通城市各個功能區(qū)塊的媒介,不僅反映了城市的地形地貌特點,還體現(xiàn)了城市中各個功能區(qū)塊的拓?fù)潢P(guān)系[3]。本文根據(jù)道路網(wǎng)在城市中天然的空間劃分特性以及格網(wǎng)模型在大規(guī)??臻g數(shù)據(jù)組織管理方面的優(yōu)勢,提出了基于道路格網(wǎng)的城市三維數(shù)據(jù)組織方法,并且以城市地理塊為組織單元進(jìn)行城市三維數(shù)據(jù)的增量更新。
《城市道路設(shè)計規(guī)范》將城市道路分為快速路、主干路、次干路、支路四大類,指出道路分類依據(jù)包括道路在路網(wǎng)中的地位、交通功能以及對沿線建筑物的服務(wù)功能等因素[3]。不同類型的城市道路在城市中具有不同的道路網(wǎng)密度,根據(jù)城市三維數(shù)據(jù)的實際空間范圍,選取合適的道路網(wǎng)進(jìn)行城市地理空間的劃分,見表1。
表1 城市道路劃分Tab.1 Urban road classification
城市道路網(wǎng)自身具有的位置規(guī)劃屬性將城市劃分為空間連續(xù)的不規(guī)則格網(wǎng)。本文對于不同規(guī)模的城市三維數(shù)據(jù),選取不同類型的道路建立城市道路格網(wǎng)模型。依據(jù)《城市道路設(shè)計規(guī)范》對道路類型的劃分以及不同類型道路網(wǎng)在城市中的密度不同,將城市道路格網(wǎng)模型分為城市快速路格網(wǎng)、主干路格網(wǎng)、次干路格網(wǎng)、支路格網(wǎng)4種。根據(jù)城市三維數(shù)據(jù)的空間范圍選取合適的格網(wǎng)模型,見表2。
表2 道路格網(wǎng)模型Tab.2 Road network model
格網(wǎng)編碼是城市道路格網(wǎng)模型中的關(guān)鍵部分。由于本文利用城市道路網(wǎng)進(jìn)行城市三維數(shù)據(jù)的空間劃分,故格網(wǎng)編碼以道路名稱的方式構(gòu)建。以圖1為例,從A格網(wǎng)單元左側(cè)開始,順時針次序記錄道路名稱,以此作為該格網(wǎng)的編碼,故格網(wǎng)A的編碼為ESHDRoad。
為了便于城市三維數(shù)據(jù)的組織和更新,本文對城市三維模型數(shù)據(jù)進(jìn)行統(tǒng)一命名編碼,其具體規(guī)則為“格網(wǎng)單元編碼+模型類型編碼+模型LOD層次+模型序號”。以道路名稱作為格網(wǎng)編碼,通過城市三維數(shù)據(jù)的屬性查詢進(jìn)行空間定位,實現(xiàn)城市三維數(shù)據(jù)快速定位操作。
圖1 道路格網(wǎng)單元Fig.1 Road grid unit
城市格網(wǎng)單元內(nèi)的城市三維數(shù)據(jù)使用分層的方式進(jìn)行數(shù)據(jù)組織。本文按照規(guī)范將城市三維數(shù)據(jù)劃分為:建筑模型數(shù)據(jù)、地形模型數(shù)據(jù)、水體模型數(shù)據(jù)、植被模型數(shù)據(jù)、管線模型數(shù)據(jù)、交通設(shè)施模型數(shù)據(jù)和其他模型數(shù)據(jù)7個數(shù)據(jù)類型[4]。
采用分層的方式對城市三維數(shù)據(jù)進(jìn)行組織管理,即每個道路格網(wǎng)單元為一個地理塊,地理塊中包含不同數(shù)據(jù)類型,每個數(shù)據(jù)類型中又對應(yīng)著多個三維模型數(shù)據(jù),如圖2所示。
圖2 城市三維數(shù)據(jù)組織邏輯模型Fig.2 Model of urban 3D data organization
地理塊是地理空間中固定的一塊區(qū)域,本文將地理塊(式1)定義為:地理空間中具有顯著邊界分割和區(qū)域性質(zhì)的一塊區(qū)域稱之為“地理塊”。采用城市道路格網(wǎng)對地理空間進(jìn)行劃分,可以產(chǎn)生多個地理塊,地理塊之間相互連接,能夠組成整個地理區(qū)域。因此,地理塊可以理解為城市場景的基本組成單元,固定的地理空間可以表示成一組地理塊的集合[5]。地理塊是城市三維數(shù)據(jù)組織的基本單元,由多個城市地理實體要素(式2)組成。
式中,Block代表地理塊;UID為地理塊的全球唯一性標(biāo)識;Element表示組塊中的各個地理要素;Time表示地理塊數(shù)據(jù)采集時間。
式中,ID為地理要素編碼,其具體編碼規(guī)則如(式3);Geometry和Attribute為地理要素的幾何和屬性。
式中,BID為該地理要素所屬格網(wǎng)的格網(wǎng)編碼;TypeCode所屬的城市三維數(shù)據(jù)類型代碼;LayerCode代表所在的LOD層次;ColCode表示在該數(shù)據(jù)類型內(nèi)的編碼。
相比于傳統(tǒng)全覆蓋式數(shù)據(jù)更新方式,本文基于城市格網(wǎng)模型對城市三維數(shù)據(jù)進(jìn)行組織,并將地理塊作為城市三維數(shù)據(jù)管理與更新的基本單元,改變了傳統(tǒng)全覆蓋式數(shù)據(jù)更新方式,減少了數(shù)據(jù)冗余,提高了數(shù)據(jù)更新效率,能夠在時間和空間維度上對海量城市三維數(shù)據(jù)進(jìn)行數(shù)據(jù)管理和更新工作。本節(jié)將主要對基于地理塊的城市三維數(shù)據(jù)增量更新組織方式及更新流程進(jìn)行研究分析。
2.1.1 增量信息定義及分類
增量信息是指基于現(xiàn)勢數(shù)據(jù)發(fā)生變化的數(shù)據(jù)信息,從面向?qū)ο蟮慕嵌瓤?,多個實體間的演變和空間結(jié)構(gòu)的變化都可以通過對單個實體的操作實現(xiàn)[6]。城市三維實體變化類型從實質(zhì)上總結(jié)為新建、消失、屬性變化、幾何變化4種類型,其具體內(nèi)容為①新建:新添一個或多個城市三維實體及相關(guān)屬性;②消失:一個或多個城市三維地理實體及相關(guān)屬性的滅失;③屬性變化:城市三維實體的非空間數(shù)據(jù)的變化,主要表現(xiàn)為屬性變化;④幾何變化:城市三維實體的空間數(shù)據(jù)變化,主要有地理實體的平移、旋轉(zhuǎn)、擴大、縮小等變化。
2.1.2 增量信息存儲模型
增量信息是城市三維實體發(fā)生變化的數(shù)據(jù),包括空間及非空間數(shù)據(jù),本文的增量信息以地理塊作為更新單元進(jìn)行數(shù)據(jù)組織。將獲取增量數(shù)據(jù)劃分到其所屬的地理塊中,以地理塊的形式進(jìn)行增量更新。增量信息存儲模型設(shè)計是數(shù)據(jù)更新中的關(guān)鍵部分,根據(jù)城市三維數(shù)據(jù)的特點,以地理塊為組織依據(jù),設(shè)計了城市三維數(shù)據(jù)增量信息存儲模型:
式中,Time為增量信息的采集時間等信息;MetaData為增量信息的元數(shù)據(jù),主要包括增量信息的所屬地理塊、坐標(biāo)系、空間數(shù)據(jù)范圍、版本號等;ΔOperates是對單個變化目標(biāo)進(jìn)行增量更新的操作過程信息,主要記錄哪個地理實體進(jìn)行了何種更新操作。
ΔOperates={BID,TIME,Table,Operate} (5)
式中,BID為增量地理實體的“臨時對象唯一ID”,BID與歷史數(shù)據(jù)庫中的地理塊數(shù)據(jù)表表相關(guān)聯(lián),以確定該增量數(shù)據(jù)所屬的地理塊;TIME為數(shù)據(jù)變化時間信息;Table為地理實體變化對象的屬性表信息,主要包括數(shù)據(jù)表名稱、數(shù)據(jù)類型、數(shù)據(jù)精度等信息;Operate為增量更新的具體操作內(nèi)容,其主要內(nèi)容見表3。
表3 Operate信息Tab.3 Operate information
為了更好地管理增量數(shù)據(jù),建立一套與現(xiàn)勢數(shù)據(jù)庫相同結(jié)構(gòu)的歷史數(shù)據(jù)庫,以地理塊為基本單元組織增量數(shù)據(jù)。
與常規(guī)的增量更新方式不同,本文以道路格網(wǎng)劃分的地理塊作為更新的基本單元進(jìn)行增量更新,其歷史數(shù)據(jù)庫設(shè)計概念如圖3所示,歷史數(shù)據(jù)庫名為CITYDATA,以道路格網(wǎng)劃分的地理塊(BLOCK1、BLOCK2…)為基本單元進(jìn)行增量數(shù)據(jù)的存儲;每個地理塊包含該地理塊(BLOCK11,BLOCK12…)在不同時期的增量信息文件,同樣以地理塊的形式對增量數(shù)據(jù)進(jìn)行存儲;GRIDS表示每個道路格網(wǎng)存放的評價指標(biāo)成本值,可在數(shù)據(jù)增量更新時選擇是否更新道路格網(wǎng)評價成本值。
圖3 歷史數(shù)據(jù)庫概念圖Fig.3 The concept of historical database
為了保證增量更新數(shù)據(jù)能夠正確地融合到數(shù)據(jù)庫中,在增量更新操作之前需要對增量數(shù)據(jù)進(jìn)行規(guī)范化處理、數(shù)據(jù)匹配等相關(guān)操作[1]。更新時首先要驗證增量數(shù)據(jù)的有效性,為了保證現(xiàn)勢數(shù)據(jù)庫的安全性,建立一個緩存數(shù)據(jù)庫,對需要操作的原始數(shù)據(jù)進(jìn)行緩存,確保原始數(shù)據(jù)不被永久性刪除或修改,然后匹配增量數(shù)據(jù)與數(shù)據(jù)庫中的數(shù)據(jù),最后進(jìn)行數(shù)據(jù)的檢測、融合操作,完成整個增量更新。其具體流程如圖4所示。
圖4 增量更新流程Fig.4 The process of incremental update
基于多基態(tài)修正模型[7],如圖5所示,根據(jù)數(shù)據(jù)量或更新頻率設(shè)定具體的基態(tài)閾值,當(dāng)某時期超過設(shè)定閾值時自動將此時期的數(shù)據(jù)設(shè)定為基態(tài)數(shù)據(jù)。將增量信息文件以時間和地理塊的方式存儲到歷史數(shù)據(jù)庫中,以地理塊為城市場景變化單元,可組合所有地理塊增量數(shù)據(jù)查詢整個城市的歷史變化數(shù)據(jù),也可選擇特定的城市區(qū)域查詢歷史數(shù)據(jù)。
圖5 多基態(tài)修正模型Fig.5 Multi-ground correction model
圖5 中,ΔF1為T2時刻與T1時刻間的增量信息文件,其中DBT3=DBT1+ΔF1+ΔF2;ΔF8為ΔF1、ΔF2、ΔF3這3個增量信息文件的并集文件,T4時刻的基態(tài)數(shù)據(jù)時可通過 DBT4=DBT1+ΔF8來獲取,此時根據(jù)T4時刻的數(shù)據(jù)量大小和更新、使用頻率做閾值評判,將DBT4作為另一個基態(tài)數(shù)據(jù)。隨著時間的增加,增量信息文件的數(shù)量愈加龐大,通過在不同時期設(shè)立基態(tài)數(shù)據(jù),較好地解決了數(shù)據(jù)集成和檢索問題,提高了歷史查詢效率。
本文在Windows環(huán)境下,基于B/S的開發(fā)模式,使用團隊自主研發(fā)的三維數(shù)據(jù)引擎展示城市三維數(shù)據(jù);利用PostgreSQL進(jìn)行城市三維數(shù)據(jù)的存儲和管理,使用WebGL開發(fā),實現(xiàn)了城市三維數(shù)據(jù)庫增量更新原型系統(tǒng),其系統(tǒng)主界面如圖6所示。
圖6 城市三維數(shù)據(jù)展示系統(tǒng)界面Fig.6 Urban 3D data display system interface
選用某城市三維建模數(shù)據(jù)作為實驗數(shù)據(jù),獲取該城市近些年發(fā)生變化的城市三維數(shù)據(jù)。使用本文設(shè)計的增量數(shù)據(jù)存儲模型,制作增量更新包,將增量數(shù)據(jù)更新到現(xiàn)勢數(shù)據(jù)庫中。數(shù)據(jù)庫對增量數(shù)據(jù)進(jìn)行有效性檢驗,獲取增量數(shù)據(jù)所屬的地理塊信息,將其以地理塊的形式存儲到歷史數(shù)據(jù)庫中且融合到現(xiàn)勢數(shù)據(jù)庫中。選擇平臺“歷史回溯”功能模塊中2016年2月份及2017年11月份數(shù)據(jù),系統(tǒng)以分屏瀏覽的形式展示了城市某一區(qū)域在該兩個時間段發(fā)生的變化,其展示效果如圖7所示。
圖7 分屏瀏覽Fig.7 Split screen browsing
本文以地理塊的形式進(jìn)行城市三維數(shù)據(jù)的組織與更新,通過設(shè)計的增量存儲模型,存儲了城市三維數(shù)據(jù)相關(guān)變化信息。在圖8中,系統(tǒng)右側(cè)面板顯示了不同時期的城市三維數(shù)據(jù)發(fā)生變化的一些具體信息,包括變化類型,數(shù)據(jù)文件地址,變化時間等,使用戶可直觀地了解該區(qū)域發(fā)生變化的情況以及查看相關(guān)附屬資料。
圖8 增量數(shù)據(jù)信息查詢Fig.8 Incremental data query
基于道路網(wǎng)自身在城市中所具有的特殊屬性對城市進(jìn)行空間劃分,以地理塊的形式進(jìn)行城市三維數(shù)據(jù)的增量更新,改變了傳統(tǒng)增量數(shù)據(jù)更新的方式。地理塊式的更新方式使得增量數(shù)據(jù)的管理更加靈活,可對城市進(jìn)行整體性的歷史數(shù)據(jù)查詢,也可進(jìn)行城市局部區(qū)域的歷史回溯,查詢方式更加多元化。由于道路網(wǎng)自身在城市中具有不同功能屬性的特點,每個道路格網(wǎng)可代表一個居民區(qū)、商業(yè)區(qū)等,以道路格網(wǎng)為單元表達(dá)城市動態(tài)時空變化規(guī)律,可以促進(jìn)人文與自然科學(xué)的融合,對于城市評價模型建立分析等具有重要的研究價值。但本文的增量更新方式局限于城市范圍且道路網(wǎng)較發(fā)達(dá)的地區(qū),對于道路網(wǎng)欠發(fā)達(dá)或不存在的研究區(qū)域來說“時間+空間”的增量組織方式并不適用,還待進(jìn)一步的研究。