吳清勇 馮成武
(海口市規劃勘察測繪服務中心 海南海口 570105)
城市三維建模是我國數字城市建設的重要內容。城市建筑物繁多、地形復雜,現有數據管理方式普遍存在外業數據管理難度大,數據冗余等問題。同時因數據格式各異,難以采用統一管理方式,大量建模數據一般以文件形式獨立保存或簡單利用關系數據庫保存,缺乏海量三維數據管理的支持,數據的整理、查詢等占用大量時間。
本文針對當前三維建模數據管理的一些問題,設計基于模型庫、紋理庫的三維建模數據庫建庫方案,并對建庫方案進行實現。
關系型數據庫采用表結構組織數據,對海量數據管理的數據庫結構復雜,應用效率低,為簡化數據讀取流程,提供統一便捷的數據源,有必要采用合適數據管理方式對數據集成,以便建模人員建模。非關系數據庫MongoDB和關系型數據庫有本質區別,MongoDB以BSON格式組織數據,BSON格式類似于JSON格式,不存在關系數據庫表結構的限制,可方便存儲數據本身,且效率很高。
三維建模數據庫系統包括源數據庫、紋理庫、模型庫以及系統軟硬件支撐環境組成。
數據庫體系如圖1所示。源數據庫是系統的主數據庫,紋理庫和模型庫是相對固定的庫,紋理數據庫是對紋理數據分門別類的保存,模型數據庫存放常見模型,當源數據用到相關的紋理、模型時,可從紋理庫、模型庫直接獲取,反之當有新紋理、模型時可導入紋理庫、模型庫。
2.2.1 紋理數據編碼格式
三維建模紋理數據通常以類別存放,是紋理數據的庫外部存放方式。紋理數據庫主要由紋理數據庫名、紋理類型、紋理順序號等表列組成。紋理庫按照紋理編碼結構存放紋理,且支持紋理更新、調用。更新時根據紋理的類型,結合已有的順序號順次自動賦予新順序號,順序號作為紋理在紋理庫的唯一標識,支持通過順序號找到該文件來應用。
2.2.2 模型數據編碼格式
模型與紋理是匹配的,三維建模實質也是紋理映射到模型的過程,因此模型庫的設計原理與紋理庫一致。模型數據庫由數據庫名、類型、順序號等表列組成。模型的組織方式與紋理類似,通過類型判定模型的歸屬,模型庫為模型分配唯一的模型順序號,支持通過順序號檢索出模型來應用。
2.2.3 源數據庫數據編碼格式
根據紋理庫與模型庫的特點,源數據庫中文件是以工程來組織的,之所以選擇按工程管理數據,是為了屬于同一工程的模型與紋理的準確匹配,源數據庫可以從紋理庫、模型庫直接調用數據,源數據庫中的數據也可以導入到紋理庫、模型庫中。
紋理在紋理庫中按類型分門別類存放,紋理庫為每個類型分配唯一的編號,當需要使用某個紋理時,可按照編號從紋理庫中檢索出來。模型數據結構與紋理結構設計原理類似。
數據集的設計考慮物體空間參考、平均大小及數量,此外還要結合當前三維建模的操作流程及習慣,建立起對建模數據,例如模型、紋理、DLG數據、DEM數據的工程化管理,如圖2。每個三維建模場景作為一個工程管理,每個工程都包含3類基本數據集合,即影像數據集、LiDAR點云數據集、矢量數據集。通過可視化數據庫系統管理數據,并支持按列表視圖、樹狀視圖等顯示方式查看,查看信息包括文件名,文件類型,文件坐標,上傳時間等。建模數據的存儲、更新及各類檢索方式,以接口提供給外部系統調用。

圖1 三維建模數據庫系統

圖2 三維建模數據集合
數據庫系統總體框架如圖3所示。建模數據庫分為數據管理層、數據庫層、數據應用層。數據入庫實現模型、紋理以封裝文件夾形式整體導入,模型包含若干個模型立面,紋理包含若干紋理面片。數據查詢實現屬性檢索與地理空間檢索兩種方式,屬性查詢允許用戶按屬性信息查找文件,地理空間查找允許用戶按地理坐標(X,Y坐標)和查詢半徑建立緩沖圓查找文件。此外,本文通過數據庫系統為每個數據自動生成keyvalue鍵值對形式的索引,相比關系型數據庫,可直接按key定位到數據,檢索效率提升明顯。
建模數據庫系統支持查詢到的影像添加到指定的模型,實現檢索數據與模型的快速關聯,對已有模型或新建模型快速更新。支持設定查詢距離和檢索影像個數,對已有模型或新建模型實時更新,方便外業采集數據及時導入到相應模型中,實現數據與模型關聯。

圖3 數據庫系統總體框架圖
為驗證數據庫系統的入庫效率,進行如下數據出入庫測試,測試機器配置如下:(1)C PU:I nt el(R)Core(TM)2Duo,2.66GHz;(2)內存:16GB;(3)操作系統:Windows7UltimateX64;(4)測試數據庫:MongoDB2.6.3、MySql、SQLServer2008。實驗數據:若干平均大小為5M的街景系統文件,若干SWDC-5數字航空傾斜攝影儀拍攝影像,平均大小為160MB。不同數據庫導入平均大小為6MB的數據時,隨著數據量增大,SqlServer變化較大,MongoDB和MySql比較平穩,用時較少,導出同樣數據時,本文系統用時最小。當導入相同數量不同大小的數據時,本文設計的MongoDB數據庫系統耗時最少,導出數據時情況類似,本文數據庫系統耗時最少。
本文針對關系數據庫管理三維建模數據的一些問題,通過設計非關系MongoDB數據庫系統,實現對紋理、模型數據的快速更新,并支持各類建模數據的快速出入庫、快速更新、快速檢索,并通過實驗支持本文數據庫系統的可用性。