• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      地下管網(wǎng)三維可視化平臺設計與實現(xiàn)

      2018-08-03 02:57:10張金花
      測繪通報 2018年7期
      關(guān)鍵詞:管網(wǎng)可視化管線

      張 芳,吳 思,陳 勇,張金花,杜 凱

      (國家測繪地理信息局第六地形測量隊,四川 成都 610500)

      地下管線是保障城市運行的重要基礎設施和“生命線”。面對近年大雨內(nèi)澇、管線泄漏爆炸、路面塌陷等災害頻發(fā)[1],加之基礎設施容量的不斷擴大,城市管線數(shù)據(jù)精細化管理和動態(tài)調(diào)控的需求越來越高,傳統(tǒng)的地下管網(wǎng)二維數(shù)據(jù)表達模式難以對錯綜復雜的地下管網(wǎng)綜合信息進行有效的空間描述和信息表達[2-3]。地下管網(wǎng)三維可視化能夠提高管線的立體感和逼真感,有利于全面、真實反映地下管網(wǎng)縱橫交錯、上下起伏的空間關(guān)系[4-6],因而成為新興的管線數(shù)據(jù)展示與管理方式。

      目前,我國已有多個城市建立了三維可視化的地下管網(wǎng)信息管理系統(tǒng),這些系統(tǒng)研發(fā)的基礎平臺大多以商業(yè)地理信息平臺Skyline為主[7-8],但由于Skyline平臺昂貴,且限于該平臺本身的技術(shù)瓶頸,現(xiàn)有的地下管網(wǎng)三維可視化系統(tǒng)仍存在管網(wǎng)附屬物

      表達失真、成果加載和顯示效率欠佳等問題。隨著虛擬仿真技術(shù)的快速發(fā)展,OpenSceneGraph(OSG)作為一個開源的三維圖形渲染引擎,正逐漸被應用于水利工程[9]、校園漫游[10]、地下管網(wǎng)[11]等多個行業(yè)。其中,以OSG為基礎平臺的地下管網(wǎng)三維可視化平臺研發(fā),現(xiàn)階段也僅實現(xiàn)了地下管網(wǎng)管體本身的立體展示,不包含地表及地上建筑、景觀等模型,且缺乏專業(yè)的空間查詢與分析功能。

      因此,本文以OSG為基礎平臺,采用OpenGL和標準C++語言設計的三維渲染引擎,從底層自主構(gòu)建地上地下一體化的管網(wǎng)三維可視化平臺,通過調(diào)用天地圖數(shù)據(jù)服務,實現(xiàn)地下管網(wǎng)與多源地上數(shù)據(jù)的無縫集成、聯(lián)動和高效展示,并提供了豐富的專業(yè)管網(wǎng)分析功能,為地下管線普查成果的即時展示與管理奠定了良好的基礎。

      1 OSG及關(guān)鍵技術(shù)

      1.1 OSG開發(fā)包

      OSG是一個開源的三維圖形渲染引擎,它包含了一系列的開源圖形庫,主要為圖形圖像應用程序的開發(fā)提供場景管理和圖形渲染優(yōu)化的功能,讓程序員能夠更加快速、便捷地創(chuàng)建高性能、跨平臺的交互式圖形程序。它作為中間件為應用軟件提供了各種高級渲染特性、IO,以及空間結(jié)構(gòu)組織函數(shù)。OSG以場景樹結(jié)構(gòu)對三維模型進行組織與管理,場景中的模型、地形、陰影等均以場景樹節(jié)點的形式存在。OSG運行體系由OSG核心庫、NodeKits庫、OSG插件、互操作庫、擴展程序和示例5大動態(tài)鏈接庫(或共享對象)及可執(zhí)行文件組成[12]。其采用標準C++和OpenGL編寫而成,可運行在所有的Windows平臺、OSX、GNU/Linux、IRIX、Solaris、HP-Ux、AIX、Android和FreeBSD操作系統(tǒng)之上,具有廣泛的應用前景。

      1.2 關(guān)鍵技術(shù)

      1.2.1 數(shù)據(jù)分層分塊高效加載

      由于管網(wǎng)三維可視化平臺涉及地下管網(wǎng)、地表高程及地面遙感影像等數(shù)據(jù),數(shù)據(jù)量大,直接影響系統(tǒng)運行效率。為使系統(tǒng)運行更為流暢,用于制作三維地形場景的遙感影像及高程數(shù)據(jù)采用傳統(tǒng)的數(shù)字城市分塊數(shù)據(jù)動態(tài)加載。地下管網(wǎng)則采用分層動態(tài)加載,即:將視窗顯示比例尺分為小中大3個層次,不同地下管網(wǎng)類型逐層加載和調(diào)度。第1層,僅僅加載長度占比大的排水管網(wǎng);第2層,加載通信管線及供水管線;第3層,加載顯示其他所有剩余管線,從而實現(xiàn)地下管網(wǎng)由簡單到復雜的逐層加載和調(diào)度。

      1.2.2 基于GPU的管網(wǎng)實時建模與渲染

      平臺突破了目前基于Open GL算法實現(xiàn)管網(wǎng)建模的現(xiàn)狀,利用現(xiàn)代的GPU強大的可編程性,通過編寫高級著色程序控制渲染管線中的各個模塊,極大地擴展了GPU的功能[13],將管網(wǎng)建模的計算任務全部交由GPU完成,大大減輕了CPU的計算負載,顯著提高了管網(wǎng)建模的速度。同時,利用GPU提供的幾何著色器自動批量生成管線的頂點數(shù)據(jù),構(gòu)建管線三角網(wǎng),進一步提高了管網(wǎng)建模效率,并能夠完成各類不同材質(zhì)、紋理、陰影的地下管線實時建模和真實感渲染,確保了地上地下一體化的高效展示。

      1.2.3 基于Arcball的瀏覽交互

      三維場景中的交互漫游通過改變觀察者在三維場景中的位置實現(xiàn)。當交互對象是一個三維物體時,二維屏幕與三維物體之間的交互動作則受到限制。平臺交互設計中將數(shù)學與人機交互相結(jié)合,采用基于四元數(shù)理論的ArcBall算法[14],實現(xiàn)二自由度的鼠標表達三自由度的空間旋轉(zhuǎn)。其特點在于將鼠標的拖曳運動想象成在一個投影球面上繪制弧線,并將這一運動弧線映射到實際三維場景中,通過改變視點和視角實現(xiàn)交互漫游的動作,從而靈活、穩(wěn)定、方便地表達三維對象的自由旋轉(zhuǎn)或受約束旋轉(zhuǎn)。

      2 系統(tǒng)總體設計

      2.1 架構(gòu)設計

      平臺架構(gòu)設計以“先把復雜問題簡單化,再把簡單問題深入細化”為指導思想[15],采用成熟的面向?qū)ο筌浖O計方法,在遵循業(yè)務可擴展、兼容、穩(wěn)定、安全和保密等原則下,采用統(tǒng)一的矩陣式體系結(jié)構(gòu),包括硬件層、數(shù)據(jù)層、服務層、應用層和用戶層5個層次,平臺架構(gòu)設計如圖1所示。

      (1) 硬件層:包括輸入輸出設備、存儲備份設備及網(wǎng)絡設備等,是平臺有效運行的基礎。

      (2) 數(shù)據(jù)層:平臺采用Oracle 11g大型關(guān)系型數(shù)據(jù)庫和文件數(shù)據(jù)庫實現(xiàn)基礎地理數(shù)據(jù)、三維模型、實景影像等的高效存儲和管理。

      (3) 服務層:應用服務器采用微軟公司的IIS網(wǎng)絡信息服務,WebService通過C#語言搭建而成。

      (4) 應用層:提供地上地下一體化的三維展示、聯(lián)動交互和專業(yè)分析等功能。

      (5) 用戶層:為平臺用戶提供整潔美觀、簡單易用的用戶界面,為系統(tǒng)研發(fā)者組織管理應用服務提供良好的界面。

      2.2 功能設計

      為滿足三維可視化的展示效果,并結(jié)合用戶業(yè)務需求,自上而下設計平臺功能模塊,平臺主要模塊與功能如圖2所示。

      3 系統(tǒng)功能實現(xiàn)

      平臺以微軟公司的Visual Studio 2010為集成開發(fā)環(huán)境、.NET Framework 4.0框架為運行環(huán)境,采用MFC框架進行平臺界面的建設,以C/C++/VC++為主要語言進行功能的編碼實現(xiàn)。

      3.1 場景瀏覽與交互

      場景瀏覽與交互是三維地理信息平臺最直觀的功能,主要包括:放大、縮小、環(huán)繞、地表透明度及聯(lián)動交互等。其中,放大、縮小、環(huán)繞均可通過控制Camera類進行矩陣變換,從而達到場景的動態(tài)瀏覽;地表透明度為幫助用戶查看地下管線三維場景而設置,可以通過控制osgNode:setTransparent實現(xiàn);聯(lián)動交互主要包括二三維和實景虛擬聯(lián)動等功能,可以通過osgViewer設計多個分屏,將各個分屏的視圖矩陣進行相關(guān)性操作達到多屏聯(lián)動的效果。如圖3—圖5所示。

      圖1 平臺總體架構(gòu)

      圖2 主要模塊與功能

      圖3 地上地下一體化場景瀏覽

      圖4 地下管網(wǎng)三維場景

      圖5 二三維聯(lián)動

      3.2 查詢統(tǒng)計

      查詢統(tǒng)計模塊是根據(jù)用戶的請求,將數(shù)據(jù)服務器中用戶感興趣的地下管線數(shù)據(jù)提取出來并進行文字、表格或圖形化展示。管線類型、權(quán)屬單位、管線材質(zhì)、所屬道路、埋設類型、管點類型、附屬物類型的查詢統(tǒng)計是通過將用戶的請求轉(zhuǎn)化為SQL語句,傳遞給COracleService類,由COracleService類向服務器發(fā)送數(shù)據(jù)請求,將返回的結(jié)果傳遞給CPipeData類進行解析所得;管線信息查詢通過osgUtil獲取用戶屏幕點擊點與三維場景的交點,獲取場景中的單根管線或單個管點的信息;管線標注是通過osgText及osgWidget將場景中所有的管線或管點信息轉(zhuǎn)換為文字進行顯示。如圖6—圖7所示。

      圖6 任意區(qū)域內(nèi)管點類型查詢

      圖7 管線信息查詢

      3.3 基本分析

      基本分析模塊可以計算并展示用戶所需的三維場景空間信息,主要包括:水平距離、垂直距離、空間距離及投影面積的量算。該模塊基于osgUtil:LineSegmentIntersector類進行設計,通過用戶交互事件,選擇場景中的兩個(距離量算)或多個(面積量算)點,將其轉(zhuǎn)換為osgVec3d對象,在確定線或面的位置后根據(jù)距離、面積公式進行計算,并將計算結(jié)果通過osgText及osgWidget類進行展示實現(xiàn)。如圖8—圖9所示。

      3.4 管網(wǎng)分析

      平臺作為地下管網(wǎng)的應用軟件,具有豐富的專業(yè)管網(wǎng)分析功能。凈距分析、埋深分析、斷面分析功能分別基于osgUtil:LineSegmentIntersector類、osgGA:GUIEventHandler、CPipeData類進行設計,將用戶選擇的管線信息存入CPipeData中進行計算所得;碰撞分析通過獲取用戶在區(qū)域內(nèi)選擇的管線類型信息及多邊形信息,將其轉(zhuǎn)換為SQL語言,由COracleService類向應用服務器發(fā)送請求,并通過osgFX:Scribe類將碰撞點、碰撞管線進行高亮顯示;地形開挖通過osgTerrain:TerrainTile類,更換用戶劃定范圍內(nèi)的地形場景,從而實現(xiàn)模擬開挖。如圖10—圖12所示。

      圖8 空間量測

      圖9 面積量測

      圖10 垂直凈距分析

      圖11 斷面分析

      圖12 碰撞分析

      4 結(jié) 語

      在地下管網(wǎng)三維可視化需求越來越大的形勢下,平臺充分利用場景性能優(yōu)越的OSG引擎進行系統(tǒng)研發(fā),不僅能夠?qū)崿F(xiàn)管網(wǎng)本體與多源地上數(shù)據(jù)的一體化三維高效展示,而且具備專業(yè)的管網(wǎng)分析功能,脫離了長期依賴國外商業(yè)軟件的弊端,具有顯著的經(jīng)濟效益和實用推廣價值。下一步將結(jié)合管網(wǎng)的業(yè)務需求,深入研究管網(wǎng)在城市規(guī)劃與災害應急管理領域的功能研發(fā)。

      猜你喜歡
      管網(wǎng)可視化管線
      基于CiteSpace的足三里穴研究可視化分析
      基于Power BI的油田注水運行動態(tài)分析與可視化展示
      云南化工(2021年8期)2021-12-21 06:37:54
      基于CGAL和OpenGL的海底地形三維可視化
      “融評”:黨媒評論的可視化創(chuàng)新
      傳媒評論(2019年4期)2019-07-13 05:49:14
      管網(wǎng)獨立是妥協(xié)還是改革
      能源(2018年8期)2018-09-21 07:57:20
      從管網(wǎng)獨立看國企改革
      能源(2018年8期)2018-09-21 07:57:20
      管網(wǎng)改革虛實
      能源(2018年8期)2018-09-21 07:57:18
      織起一張共管網(wǎng)
      中國公路(2017年8期)2017-07-21 14:26:20
      夾套管線預制安裝
      淺談通信管線工程建設
      電子制作(2017年10期)2017-04-18 07:23:00
      武功县| 榆树市| 乌拉特中旗| 舟曲县| 左贡县| 普宁市| 三门县| 惠水县| 土默特左旗| 渭南市| 遂平县| 垦利县| 泾川县| 阜新市| 乌兰县| 杭锦后旗| 清流县| 商水县| 湖口县| 乐山市| 沙雅县| 沽源县| 建湖县| 当涂县| 孟津县| 芜湖县| 集安市| 延津县| 磴口县| 石家庄市| 鸡东县| 肥乡县| 外汇| 大姚县| 衡山县| 香河县| 尼玛县| 永川市| 许昌县| 永兴县| 旬邑县|