吳清勇 馮成武
(??谑幸?guī)劃勘察測繪服務中心 海南海口 570105)
城市三維建模是我國數(shù)字城市建設的重要內(nèi)容。城市建筑物繁多、地形復雜,現(xiàn)有數(shù)據(jù)管理方式普遍存在外業(yè)數(shù)據(jù)管理難度大,數(shù)據(jù)冗余等問題。同時因數(shù)據(jù)格式各異,難以采用統(tǒng)一管理方式,大量建模數(shù)據(jù)一般以文件形式獨立保存或簡單利用關系數(shù)據(jù)庫保存,缺乏海量三維數(shù)據(jù)管理的支持,數(shù)據(jù)的整理、查詢等占用大量時間。
本文針對當前三維建模數(shù)據(jù)管理的一些問題,設計基于模型庫、紋理庫的三維建模數(shù)據(jù)庫建庫方案,并對建庫方案進行實現(xiàn)。
關系型數(shù)據(jù)庫采用表結(jié)構(gòu)組織數(shù)據(jù),對海量數(shù)據(jù)管理的數(shù)據(jù)庫結(jié)構(gòu)復雜,應用效率低,為簡化數(shù)據(jù)讀取流程,提供統(tǒng)一便捷的數(shù)據(jù)源,有必要采用合適數(shù)據(jù)管理方式對數(shù)據(jù)集成,以便建模人員建模。非關系數(shù)據(jù)庫MongoDB和關系型數(shù)據(jù)庫有本質(zhì)區(qū)別,MongoDB以BSON格式組織數(shù)據(jù),BSON格式類似于JSON格式,不存在關系數(shù)據(jù)庫表結(jié)構(gòu)的限制,可方便存儲數(shù)據(jù)本身,且效率很高。
三維建模數(shù)據(jù)庫系統(tǒng)包括源數(shù)據(jù)庫、紋理庫、模型庫以及系統(tǒng)軟硬件支撐環(huán)境組成。
數(shù)據(jù)庫體系如圖1所示。源數(shù)據(jù)庫是系統(tǒng)的主數(shù)據(jù)庫,紋理庫和模型庫是相對固定的庫,紋理數(shù)據(jù)庫是對紋理數(shù)據(jù)分門別類的保存,模型數(shù)據(jù)庫存放常見模型,當源數(shù)據(jù)用到相關的紋理、模型時,可從紋理庫、模型庫直接獲取,反之當有新紋理、模型時可導入紋理庫、模型庫。
2.2.1 紋理數(shù)據(jù)編碼格式
三維建模紋理數(shù)據(jù)通常以類別存放,是紋理數(shù)據(jù)的庫外部存放方式。紋理數(shù)據(jù)庫主要由紋理數(shù)據(jù)庫名、紋理類型、紋理順序號等表列組成。紋理庫按照紋理編碼結(jié)構(gòu)存放紋理,且支持紋理更新、調(diào)用。更新時根據(jù)紋理的類型,結(jié)合已有的順序號順次自動賦予新順序號,順序號作為紋理在紋理庫的唯一標識,支持通過順序號找到該文件來應用。
2.2.2 模型數(shù)據(jù)編碼格式
模型與紋理是匹配的,三維建模實質(zhì)也是紋理映射到模型的過程,因此模型庫的設計原理與紋理庫一致。模型數(shù)據(jù)庫由數(shù)據(jù)庫名、類型、順序號等表列組成。模型的組織方式與紋理類似,通過類型判定模型的歸屬,模型庫為模型分配唯一的模型順序號,支持通過順序號檢索出模型來應用。
2.2.3 源數(shù)據(jù)庫數(shù)據(jù)編碼格式
根據(jù)紋理庫與模型庫的特點,源數(shù)據(jù)庫中文件是以工程來組織的,之所以選擇按工程管理數(shù)據(jù),是為了屬于同一工程的模型與紋理的準確匹配,源數(shù)據(jù)庫可以從紋理庫、模型庫直接調(diào)用數(shù)據(jù),源數(shù)據(jù)庫中的數(shù)據(jù)也可以導入到紋理庫、模型庫中。
紋理在紋理庫中按類型分門別類存放,紋理庫為每個類型分配唯一的編號,當需要使用某個紋理時,可按照編號從紋理庫中檢索出來。模型數(shù)據(jù)結(jié)構(gòu)與紋理結(jié)構(gòu)設計原理類似。
數(shù)據(jù)集的設計考慮物體空間參考、平均大小及數(shù)量,此外還要結(jié)合當前三維建模的操作流程及習慣,建立起對建模數(shù)據(jù),例如模型、紋理、DLG數(shù)據(jù)、DEM數(shù)據(jù)的工程化管理,如圖2。每個三維建模場景作為一個工程管理,每個工程都包含3類基本數(shù)據(jù)集合,即影像數(shù)據(jù)集、LiDAR點云數(shù)據(jù)集、矢量數(shù)據(jù)集。通過可視化數(shù)據(jù)庫系統(tǒng)管理數(shù)據(jù),并支持按列表視圖、樹狀視圖等顯示方式查看,查看信息包括文件名,文件類型,文件坐標,上傳時間等。建模數(shù)據(jù)的存儲、更新及各類檢索方式,以接口提供給外部系統(tǒng)調(diào)用。
圖1 三維建模數(shù)據(jù)庫系統(tǒng)
圖2 三維建模數(shù)據(jù)集合
數(shù)據(jù)庫系統(tǒng)總體框架如圖3所示。建模數(shù)據(jù)庫分為數(shù)據(jù)管理層、數(shù)據(jù)庫層、數(shù)據(jù)應用層。數(shù)據(jù)入庫實現(xiàn)模型、紋理以封裝文件夾形式整體導入,模型包含若干個模型立面,紋理包含若干紋理面片。數(shù)據(jù)查詢實現(xiàn)屬性檢索與地理空間檢索兩種方式,屬性查詢允許用戶按屬性信息查找文件,地理空間查找允許用戶按地理坐標(X,Y坐標)和查詢半徑建立緩沖圓查找文件。此外,本文通過數(shù)據(jù)庫系統(tǒng)為每個數(shù)據(jù)自動生成keyvalue鍵值對形式的索引,相比關系型數(shù)據(jù)庫,可直接按key定位到數(shù)據(jù),檢索效率提升明顯。
建模數(shù)據(jù)庫系統(tǒng)支持查詢到的影像添加到指定的模型,實現(xiàn)檢索數(shù)據(jù)與模型的快速關聯(lián),對已有模型或新建模型快速更新。支持設定查詢距離和檢索影像個數(shù),對已有模型或新建模型實時更新,方便外業(yè)采集數(shù)據(jù)及時導入到相應模型中,實現(xiàn)數(shù)據(jù)與模型關聯(lián)。
圖3 數(shù)據(jù)庫系統(tǒng)總體框架圖
為驗證數(shù)據(jù)庫系統(tǒng)的入庫效率,進行如下數(shù)據(jù)出入庫測試,測試機器配置如下:(1)C PU:I nt el(R)Core(TM)2Duo,2.66GHz;(2)內(nèi)存:16GB;(3)操作系統(tǒng):Windows7UltimateX64;(4)測試數(shù)據(jù)庫:MongoDB2.6.3、MySql、SQLServer2008。實驗數(shù)據(jù):若干平均大小為5M的街景系統(tǒng)文件,若干SWDC-5數(shù)字航空傾斜攝影儀拍攝影像,平均大小為160MB。不同數(shù)據(jù)庫導入平均大小為6MB的數(shù)據(jù)時,隨著數(shù)據(jù)量增大,SqlServer變化較大,MongoDB和MySql比較平穩(wěn),用時較少,導出同樣數(shù)據(jù)時,本文系統(tǒng)用時最小。當導入相同數(shù)量不同大小的數(shù)據(jù)時,本文設計的MongoDB數(shù)據(jù)庫系統(tǒng)耗時最少,導出數(shù)據(jù)時情況類似,本文數(shù)據(jù)庫系統(tǒng)耗時最少。
本文針對關系數(shù)據(jù)庫管理三維建模數(shù)據(jù)的一些問題,通過設計非關系MongoDB數(shù)據(jù)庫系統(tǒng),實現(xiàn)對紋理、模型數(shù)據(jù)的快速更新,并支持各類建模數(shù)據(jù)的快速出入庫、快速更新、快速檢索,并通過實驗支持本文數(shù)據(jù)庫系統(tǒng)的可用性。