吳清勇 馮成武


摘 ? 要:三維城市模型(3D City Models,3DCM) 作為城市的三維逼真描述,為城市建設和規劃等相關領域提供了具有真實表現力的應用模型。本文針對關系數據庫管理三維建模數據的一些問題,通過設計非關系MongoDB數據庫系統,實現對紋理、模型數據的快速更新,并支持各類建模數據的快速出入庫、快速更新、快速檢索,并通過實驗支持本文數據庫系統的可用性。
關鍵詞:城市 ?三維建模 ?數據庫 ?檢索
中圖分類號:P208 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A ? ? ? ? ? ? ? ? ? ? ? 文章編號:1674-098X(2020)04(c)-0011-02
城市三維建模是我國數字城市建設的重要內容。城市建筑物繁多、地形復雜,現有數據管理方式普遍存在外業數據管理難度大,數據冗余等問題。同時因數據格式各異,難以采用統一管理方式,大量建模數據一般以文件形式獨立保存或簡單利用關系數據庫保存,缺乏海量三維數據管理的支持,數據的整理、查詢等占用大量時間。
本文針對當前三維建模數據管理的一些問題,設計基于模型庫、紋理庫的三維建模數據庫建庫方案,并對建庫方案進行實現。
1 ?三維建模數據庫現狀
關系型數據庫采用表結構組織數據,對海量數據管理的數據庫結構復雜,應用效率低,為簡化數據讀取流程,提供統一便捷的數據源,有必要采用合適數據管理方式對數據集成,以便建模人員建模。非關系數據庫MongoDB和關系型數據庫有本質區別,MongoDB以BSON格式組織數據,BSON格式類似于JSON格式,不存在關系數據庫表結構的限制,可方便存儲數據本身,且效率很高。
2 ?三維建模建庫方案設計
2.1 數據庫總體設計
三維建模數據庫系統包括源數據庫、紋理庫、模型庫以及系統軟硬件支撐環境組成。
數據庫體系如圖1所示。如圖1,源數據庫是系統的主數據庫,紋理庫和模型庫是相對固定的庫,紋理數據庫是對紋理數據分門別類的保存,模型數據庫存放常見模型,當源數據用到相關的紋理、模型時,可從紋理庫、模型庫直接獲取,反之當有新紋理、模型時可導入紋理庫、模型庫。
2.2 數據存儲方式及格式設計
2.2.1 紋理數據編碼格式
三維建模紋理數據通常以類別存放,是紋理數據的庫外部存放方式。紋理數據庫主要由紋理數據庫名、紋理類型、紋理順序號等表列組成。紋理庫按照紋理編碼結構存放紋理,且支持紋理更新、調用。更新時根據紋理的類型,結合已有的順序號順次自動賦予新順序號,順序號作為紋理在紋理庫的唯一標識,支持通過順序號找到該文件來應用。
2.2.2 模型數據編碼格式
模型與紋理是匹配的,三維建模實質也是紋理映射到模型的過程,因此模型庫的設計原理與紋理庫一致。模型數據庫由數據庫名、類型、順序號等表列組成。模型的組織方式與紋理類似,通過類型判定模型的歸屬,模型庫為模型分配唯一的模型順序號,支持通過順序號檢索出模型來應用。
2.2.3 源數據庫數據編碼格式
根據紋理庫與模型庫的特點,源數據庫中文件是以工程來組織的,之所以選擇按工程管理數據,是為了屬于同一工程的模型與紋理的準確匹配,源數據庫可以從紋理庫、模型庫直接調用數據,源數據庫中的數據也可以導入到紋理庫、模型庫中。
2.3 數據字典設計
紋理在紋理庫中按類型分門別類存放,紋理庫為每個類型分配唯一的編號,當需要使用某個紋理時,可按照編號從紋理庫中檢索出來。模型數據結構與紋理結構設計原理類似。
2.4 數據集合與接口設計
數據集的設計考慮物體空間參考、平均大小及數量,此外還要結合當前三維建模的操作流程及習慣,建立起對建模數據,例如模型、紋理、DLG數據、DEM數據的工程化管理,如圖2。每個三維建模場景作為一個工程管理,每個工程都包含3類基本數據集合,即影像數據集、LiDAR點云數據集、矢量數據集。通過可視化數據庫系統管理數據,并支持按列表視圖、樹狀視圖等顯示方式查看,查看信息包括文件名,文件類型,文件坐標,上傳時間等。建模數據的存儲、更新及各類檢索方式,以接口提供給外部系統調用。
3 ?三維建模數據庫實現
3.1 建模數據庫框架
數據庫系統總體框架如圖3所示。建模數據庫分為數據管理層、數據庫層、數據應用層。數據入庫實現模型、紋理以封裝文件夾形式整體導入,模型包含若干個模型立面,紋理包含若干紋理面片。數據查詢實現屬性檢索與地理空間檢索兩種方式,屬性查詢允許用戶按屬性信息查找文件,地理空間查找允許用戶按地理坐標(X,Y坐標)和查詢半徑建立緩沖圓查找文件。此外,本文通過數據庫系統為每個數據自動生成keyvalue鍵值對形式的索引,相比關系型數據庫,可直接按key定位到數據,檢索效率提升明顯。
3.2 檢索數據與模型關聯
建模數據庫系統支持查詢到的影像添加到指定的模型,實現檢索數據與模型的快速關聯,對已有模型或新建模型快速更新。支持設定查詢距離和檢索影像個數,對已有模型或新建模型實時更新,方便外業采集數據及時導入到相應模型中,實現數據與模型關聯。
4 ?數據庫系統實驗
為驗證數據庫系統的入庫效率,進行如下數據出入庫測試,測試機器配置如下:(1)CPU:Intel(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數據庫系統耗時最少,導出數據時情況類似,本文數據庫系統耗時最少。
5 ?結語
本文針對關系數據庫管理三維建模數據的一些問題,通過設計非關系MongoDB數據庫系統,實現對紋理、模型數據的快速更新,并支持各類建模數據的快速出入庫、快速更新、快速檢索,并通過實驗支持本文數據庫系統的可用性。
參考文獻
[1] 許嬌龍,李軍.基于City GML的三維城市模型實時可視化研究[J].系統仿真學報,2012(6):25-32.
[2] 周松濤.基于關系數據庫的三維模型庫技術[J].測繪信息與工程,2005,30(6):30-31.
[3] 李成名,李華,趙占杰,等.CH/T 9016-2012三維地理信息模型數據生產規范[S].北京:測繪出版社,2013.