吳掠桅,崔 蓓,俞 蔚
(1.南京市國土資源信息中心,江蘇 南京 210029;2.南京市城市規劃編制研究中心,江蘇 南京 210029;3.浙江科瀾信息技術有限公司,浙江 杭州 310000)
智慧城市時空大數據平臺是測繪地理信息領域數字城市建設的有機延續。新一輪國家機構改革優化測繪地理信息管理職能后,自然資源部于2019年1月印發了《智慧城市時空大數據平臺建設技術大綱(2019版)》,進一步完善了智慧城市時空大數據平臺的建設方向和內容。三維空間是時空四維環境的基礎,特別是納入地下空間數據、建筑信息模型數據等新型測繪產品數據[1]后,如何對各類基礎時空數據進行有效集成,實現更加全面、高效、優化的智慧城市時空大數據三維可視化,是新政策和技術背景下智慧城市時空大數據平臺建設需要研究的問題之一。
本文在現狀分析的基礎上,設計了時空大數據二三維集成以及三維可視化框架,并對三維可視化涉及的數據集成、數據優化、數據索引和并聯調度等關鍵技術進行了研究,為智慧城市時空大數據平臺的相關建設提供了技術實現思路。
在智慧城市時空大數據建設方面,多地已結合自身實際適時開展了建設創新[2-4],如武漢和深圳均已將時空信息云平臺納入智慧城市頂層設計中,并分別提出了五級聯動的社會管理模式和眾籌模式總體規劃;寧波注重政務信息匯聚更新機制的建立,提出了市縣一體化建設和應用模式;重慶提出了“三庫四平臺”建設,并開展了知識引擎、分析模型以及海量數據地理編碼等研究。
在地理信息三維可視化技術方面,陳冠臣[5]建立了三維可視化子系統,通過三維渲染引擎、資源調度和數據分發策略提供場景瀏覽和各類三維分析,實現了智慧城市時空信息多維可視化;王春青[6]等利用開源OpenSceneGraph引擎設計了一套靈活、高效的三維GIS可視化內核,能滿足城市級海量三維模型的可視化表現;徐威杰[7]利用OpenGL和LOD模型等三維可視化關鍵技術實現了基于簡化正弦函數模型的海面動態三維可視化;陸平[8]以ArcGIS為基礎平臺,將模型轉換為GIS可處理利用的數據格式,從而實現對三維GIS系統的開發。
綜上所述,在智慧城市時空大數據平臺建設中,目前針對時空大數據三維可視化的研究和創新相對較少,且地理信息三維可視化的研究主要集中在利用成熟的GIS平臺或開源GIS引擎實現城市或專項三維模型的可視化瀏覽方面。隨著時空大數據內涵的不斷豐富,三維可視化應用需求不斷擴展,應從以下方面尋求突破:①多源數據的三維可視化集成,特別是新型測繪產品類型的不斷擴充,要滿足三維可視化多源數據集成應有新的思考與設計;②面向效率提升的數據組織優化,隨著渲染引擎的效率瓶頸越來越難以突破,通過數據組織優化來提升三維場景可視化效率將是發展方向之一;③系統平臺資源的合理化分配,通過對有限資源更加合理地分配,支撐平臺對多源集成時空大數據的高效承載。
智慧城市時空大數據主要包括基礎時空數據、公共專題數據、物聯網實時感知數據、互聯網在線抓取數據等四大類。面向三維可視化的時空大數據集成內容如圖1所示。三維空間的組織構成和表達方式繁多,需從以下3個方面進行數據集成,以應對不同需求的時空大數據三維可視化:

圖1 面向三維可視化的時空大數據集成內容
1)三維集成,即集成基礎時空數據中的影像數據、高程模型數據、三維模型數據和新型測繪產品數據(傾斜攝影、實景影像、激光點云、地下空間、建筑信息模型等),構建面向多種應用需求的三維場景。
2)二維驅動,即在地理實體數據、室內地圖數據等基礎時空數據以及管線、地質等公共專題數據的基礎上,通過二維數據驅動形成三維模型,對所構建三維空間的不足進行補充。
3)多源承載,即以上述三維空間為承載,進一步疊加法人、人口、宏觀經濟、民生興趣點等公共專題數據以及物聯網實時感知數據、互聯網在線抓取數據等,以實現豐富、全面的時空大數據三維可視化。
在數據集成的基礎上,遵循分層架構的技術思路,設計形成了包括基礎設施層、數據層、引擎層和平臺層的時空大數據三維可視化框架,如圖2所示。其中,基礎設施層主要包括存儲設備、計算設備、網絡設備以及虛擬化軟件、數據庫軟件、云操作系統等支撐三維可視化運行的軟硬件云環境;數據層主要集成并存儲基礎時空數據、公共專題數據、物聯網實時感知數據、互聯網在線抓取數據等,形成三維可視化的數據基礎;引擎層主要包括數據引擎、服務引擎、地名地址引擎等三維可視化必備引擎,用于驅動各類時空大數據實現三維可視化功能;平臺層主要包括基礎瀏覽、數據查詢、空間分析等三維可視化必備功能。

圖2 智慧城市時空大數據三維可視化框架
多源、高效是時空大數據三維可視化的重點和難點。在三維可視化框架的基礎上,需著重進行數據集成存儲、細節層次構建和計算資源調度3個方面關鍵技術的研究。
根據類型和內容的不同,時空大數據具有眾多數據格式。統一數據格式,集成存儲各類數據是三維可視化的基礎和前提。因此,設計一種三維數據格式,應滿足并實現以下需求:①支持各類三維數據格式之間的相互轉換;②針對多源數據集成進行硬件渲染優化,在符合底層渲染硬件指令要求的基礎上兼顧數據組織和渲染效果;③具備可擴展能力,便于其他新數據格式的擴展集成,且保證數據的向下兼容。數據格式的基本結構如圖3所示。

圖3 硬件渲染優化下的可集成和可擴展三維數據格式
構建細節層次模型(LOD)是提升三維可視化效率的常用技術手段。模型簡化和層級組織的方法策略是決定LOD構建效果的兩個關鍵技術點,將直接影響三維可視化的渲染效率和響應速度。
在模型簡化方面,首先根據頂點對三維模型輪廓的貢獻程度計算權重值;再以權重值為依據生成每個頂點的聚類單元,并依次判斷聚類單元內是否存在其他頂點;然后判斷頂點間的距離是否大于預設值,以確定是否合并頂點信息;重復上述流程即可實現模型的簡化,如圖4所示。

圖4 基于視覺貢獻度的模型簡化示意圖
在層級組織方面,利用場景圖來組織數據,再優化不同層級場景中數據的分布。場景圖是多層級樹或圖結構,每個層級被賦予調度信息,根據用戶視點參數讀取所在層級的調度信息,從而決定不同層級數據在場景中的分布以及各層級間的細節過渡,如圖5所示。

圖5 基于場景圖的層級數據組織
通過上述方法構建LOD,可在顯著減少格網數的前提下,使數據的幾何形態和紋理精度基本滿足原有的視覺效果,并能保障不同層級場景中數據的加載效率,尤其對大數據量、大場景的三維可視化有較好的效果。
三維可視化是利用計算資源加載并展示三維數據的過程,數據請求、數據傳輸和數據加載是影響效率的關鍵步驟。由于數據量大而網絡帶寬固定且有限,三維可視化過程中,數據加載往往需等待數據請求和傳輸完成。
采用多線程數據調度機制可有效提升三維可視化效率。首先利用多線程技術使數據請求、數據傳輸和數據加載等過程相互獨立,將計算資源均衡分配到各個步驟中去,避免因串行等待影響效率;然后可多線程技術同時執行,最大化利用計算資源,增加各過程的效率;最后考慮線程之間的交互和數據共享,選取一個線程作為管理線程,主要進行數據請求與加載,其余線程作為下載線程,主要進行數據傳輸。管理線程與各下載線程在發送數據請求與數據下載完畢時進行線程間的交互,下載線程之間保持相對獨立,如圖6所示。

圖6 多線程調度機制示意圖
高效的三維可視化是各類時空大數據應用的基礎條件。本文結合智慧城市時空大數據平臺建設的最新政策和技術要求,設計了三維可視化的數據集成框架,研究了關鍵技術,為相關建設提供了參考。在三維可視化的基礎上,開展智慧城市時空大數據的三維數據挖掘和空間分析,支撐各行業智慧城市應用,將在后續工作中進一步開展研究和建設。