仇文順 劉一宏 馬翔宇
(1.北京市南水北調(diào)調(diào)水運行管理中心,北京 100195;2.北京市南水北調(diào)工程建設委員會辦公室,北京 100086)
地下輸水管網(wǎng)是城市重要的基礎設施,擔負著水資源輸送的任務,是城市賴以生存的物質(zhì)基礎[1]。隨著社會經(jīng)濟的發(fā)展,地下管網(wǎng)更加密集和復雜,現(xiàn)有的地下管網(wǎng)管理工作效率低下、流程復雜,迫切需要引入GIS技術實現(xiàn)地下管網(wǎng)的管理工作。傳統(tǒng)的二維地下管網(wǎng)圖只能表達管線的平面位置,無法表達管線之間以及管線與其他地下設施之間的空間層次關系[2]。二維GIS使用二維符號抽象現(xiàn)實世界,會遺失或舍棄部分立體空間信息,不能滿足地下管網(wǎng)表達,而運用三維GIS技術,則能真實有效地反映地下管網(wǎng)的空間分布及空間關系,破解地下管網(wǎng)管理的難題。
目前,已有三維地下管網(wǎng)實現(xiàn)的實例,例如陳金川等設計和實現(xiàn)了虛擬煤礦三維引擎[3],尹志永基于OSG開發(fā)了三維管線信息系統(tǒng)[4]等。本研究以北京市南水北調(diào)輸水管網(wǎng)系統(tǒng)為例,通過osgEarth實現(xiàn)三維輸水管網(wǎng)系統(tǒng)。南水北調(diào)北京段輸水管線采用地下輸水模式,基于osgEarth基礎功能框架,在三維球體地表場景的基礎上擴展了三維地下場景,實現(xiàn)基于數(shù)字地球的地上地下一體化、室內(nèi)室外一體化的三維管網(wǎng)管理系統(tǒng)。
osgEarth是基于 OSG(OpenSceneGraph)開發(fā),集成了地形模型和影像數(shù)據(jù)的加載、渲染和調(diào)度的數(shù)字地球三維引擎。osgEarth支持全球范圍的數(shù)據(jù)建模,基于分層和分塊模型的LOD技術,解決了對海量地理數(shù)據(jù)、地形數(shù)據(jù)和影像數(shù)據(jù)等進行管理的問題,提供靈活的插件管理機制,極大方便了基于osgEarth的擴展功能的開發(fā)。
北京市南水北調(diào)管網(wǎng)系統(tǒng)包括地下輸水管線、檢修井、排氣口和分水口等部分,通過分水口向水廠供水,通過檢修井對管網(wǎng)進行維護,排氣口向地表排氣,在分水口地表建設分水口控制室。管網(wǎng)結構如圖1所示。
圖1 輸水管網(wǎng)結構圖
osgEarth使用基于XML的earth文件保存三維數(shù)據(jù)模型。osgEarth讀取該文件時,通過讀取三維模型數(shù)據(jù)的地址,調(diào)用相應驅(qū)動器,實現(xiàn)三維空間數(shù)據(jù)加載,如使用TMS驅(qū)動器處理采用TMS協(xié)議的瓦片數(shù)據(jù)等[5]。
本研究的三維空間數(shù)據(jù)包括三維場景數(shù)據(jù)和三維管網(wǎng)數(shù)據(jù),其中,三維場景數(shù)據(jù)主要包括地形、地貌和地物。地形地貌可以基于OSG擴展的Virtual Planet Builder構建三維模型;空間地物由于工作量大,需要使用成熟的三維建模軟件構建三維模型。
目前,三維管網(wǎng)數(shù)據(jù)主要采用三維自動化生成技術和手動三維建模兩種方式生成。管線模型自動生成技術可以實現(xiàn)管道的無縫對接,管道位置精確,但分水口、控制室等復雜地物自動建模復雜;管道模型手動建模方法建立模型簡單,快速高效,但由于三維管線模型跨度大,載入三維場景中會出現(xiàn)位置偏移等問題。因此,本研究將兩種方法結合,使用管線模型自動算法計算搭建管道模型,對于復雜的管網(wǎng)系統(tǒng)附屬設施使用建模軟件手動建模。
本系統(tǒng)主要分為三維可視化、查詢定位、輸水管道、供水調(diào)度模型和數(shù)據(jù)接入5個功能模塊。
三維可視化模塊:可以通過該模塊實現(xiàn)對輸水管網(wǎng)的地上地下環(huán)境、輸水管網(wǎng)及其附屬設施的地上地下一體化渲染,同時可以通過控制漫游面板實現(xiàn)對三維場景的漫游。
查詢定位模塊:可以通過該模塊實現(xiàn)輸入輸水管網(wǎng)的相關屬性,在查詢結果面板和三維場景中顯示查詢結果。
輸水管道模塊:該模塊可以控制管網(wǎng)的現(xiàn)實模式,計算管線某一位置水流的流量和流向,獲得管線的縱橫剖面圖和管網(wǎng)的正反流量,可以測量管線的長度和面積。同時,可以對感興趣的局部場景進行快速定位和顯示。
供水調(diào)度模型模塊:在該模塊中,將供水參數(shù)輸入供水調(diào)度模型,計算供水調(diào)度方案,并實現(xiàn)對方案的對比和管理。
數(shù)據(jù)接入模塊:通過該模塊可以閱覽管道沿線的相關檢測數(shù)據(jù),如應力數(shù)據(jù)、水質(zhì)數(shù)據(jù)、滲壓計數(shù)據(jù)等,也可以實時接入攝像頭,顯示攝像內(nèi)容。
在 Win7(SP1)平臺上,以 Visual Studio 2010為編譯環(huán)境,使用MFC搭建系統(tǒng)界面,采用OSG3.1、osgEarth2.5實現(xiàn)三維場景渲染,使用3dMax完成三維靜態(tài)模型的構建。
3.2.1 管道快速自動建模
管道主要分為直線管道、轉(zhuǎn)彎管道,其中,直線管道是普通的管線,轉(zhuǎn)彎管道是管道轉(zhuǎn)彎處管道。一般情況下,管道是圓柱或圓臺管道。為了實現(xiàn)快速建模,可以將直線管道部分坐標標準圓管簡化,其空間幾何屬性由位置(三維坐標)、管徑、長度、壁厚等參數(shù)確定[6]。在進行快速建模時,彎線管道在矢量旋轉(zhuǎn)法的基礎上,使用內(nèi)插的方式建模。
綜上,地下管網(wǎng)的快速自動建模主要包括兩個方面:管道中心線位置的確定;直線管道和轉(zhuǎn)彎管道的生成。
(1)直線管道建模
直線管道建模先確定管道的中心線及管道兩端點的位置,再根據(jù)中心點和管徑對管道端點斷面進行均分,生成管道表面幾何矩形,從而模擬管道。
直線管道的空間位置包括直線管道起點坐標、直線管道的終點位置、管徑[7]。 設管道中心線起點坐標 P1(x1,y1,z1),終點坐標P2(x2,y2,z2),管道前進方向向量與三維空間X、Y、Z三個坐標軸正向夾角分別記為α、β、γ,它們是的方向角,其中0≤α≤π、0≤β≤π、0≤γ≤π,各角余弦可表示為:
直線管道使用圓柱體表示,圓柱體的截面半徑為管線半徑,軸心是管道中心線。管道表面可使用OSG提供的幾何矩形模擬,將n個矩形連接構成棱柱體。隨著n的增大,不斷逼近圓柱,進而實現(xiàn)直線管道的渲染。該方法無論是在算法上,還是在實踐上都是可行的。
如圖2所示,將圓柱體截面分為n份,形成的n個等分點形成內(nèi)切等邊N邊形,進而擬合圓。
圖2 直線管道截面分解圖
在圖2中,圓心位于直線管道中心線上,設其坐標為O(xo,yo,zo),k 為圓的等分點,則 k 點的坐標(xk,yk,zk)的計算公式是:
xk=x0+R×cosθ×sinα
yk=y0-R×cosθ×cosα 1≤k≤n
zk=z0+R×sinθ
式中,θ=360/n×k(1≤k≤n),R 為直線管道管徑,α 為直線管道與X軸夾角。
在實現(xiàn)過程中,分別在直線管道中心線起點和終點處擬合圓多邊形上的相對應的C1和C2,構成一個矩形,最終形成表面具有n個矩形的棱柱體,最終實現(xiàn)擬合直線管道。理論上講,n的值越大,擬合圓柱的效果越好,但在實際應用中,隨著n值的變大,計算量也變大,反而會影響效率,因此,n必須取一個合理值。本研究將圓柱截面按15度形成24邊形進行擬合,使得顯示的真實性和渲染效率獲得很好的平衡。
圖3 轉(zhuǎn)彎管道內(nèi)插點劃分方法示意圖
(2)轉(zhuǎn)彎管道建模
三維管道建模的一個難點是轉(zhuǎn)彎管道的建模,轉(zhuǎn)彎管道不是直線,需要將轉(zhuǎn)彎管道進行切片,對每個切片按直線管道建模方法建立斜棱柱模型,進而實現(xiàn)轉(zhuǎn)彎管道建模。切片數(shù)量越多,轉(zhuǎn)彎管道越平滑。具體的計算方法如下:
圖3中P1O1和OnP3為直線管道,按照直線管道建模方式建模;O1P2On是轉(zhuǎn)彎管道,采用彎線建模方法,其中,矢量和矢量之間的夾角是α。
①在P1P2P3組成的平面內(nèi),在O1O2處分別做P1P2和P2P3的垂線,則兩條垂線的交點O即是轉(zhuǎn)彎管道的轉(zhuǎn)彎中心線的圓心,OO1和OO2的長度為半徑R,半徑R可通過O1P2和P2O2的長度計算得到,具體計算公式是:令O1P2=P2O2=L,則
通過上式即可計算得到半徑R。
圖4 單個內(nèi)插模型圖
②圖4是單個內(nèi)插模型圖,其中,O為第二步計算的轉(zhuǎn)彎內(nèi)徑圓心,O1為內(nèi)插模型起點面的圓心,O2為內(nèi)插模終點面的圓心。計算O2坐標的具體計算方法是:將矢量繞垂直于平面P1P2P3的法向量旋轉(zhuǎn)角度α/n,得到矢量。具體計算公式是:
圖5 管道自動生成效果圖
3.2.2 三維管網(wǎng)附屬設施的導入
三維管網(wǎng)附屬設施主要包括分水口、通風井以及相關控制設施等,這些三維模型結構復雜,使用自動建模的方法建模難度大。國內(nèi)外已有眾多學者研究了它們的快速建模方法,如有研究者采用標準管件庫的方法[8]。該方法建模簡單,技術成熟,因此,本研究使用該方法實現(xiàn)管網(wǎng)附屬設施的建模,將建立完成的模型直接導入三維場景。具體方法如下:(1)使用3dMax等三維建模軟件建立具體需求的模型;(2)在配置文件中保存附屬設施的位置信息,調(diào)用osgEarth提供的接口實現(xiàn)三維模型的導入。
圖6 附屬設施場景效果圖
3.2.3 三維可視化實現(xiàn)
三維可視化主要包括地上地下的可視化一體化、場景漫游、附屬設施的進入等。具體實施上,可視化一體化可以通過設置地表影像的材質(zhì)透明度,透視地下輸水管線、風水管線、檢修豎井和排氣管道等實現(xiàn);利用osgEarth提供的EarthManipulator類,可通過控制導航欄實現(xiàn)場景漫游;附屬設施的動態(tài)進入需調(diào)用osgEarth的碰撞檢測算法實現(xiàn)從分水口控制室室外進入室內(nèi),osgEarth 使用 osg:LineSegment和 osgUtil:IntersectVisitor 類實現(xiàn)碰撞檢測[9]。 其中,osg:LineSegment是一個包含起點和終點的線段類,osgUtil:IntersectVisitor是接收線段的類,用于判斷與場景節(jié)點的交集[10],實現(xiàn)碰撞檢測。
MFC提供了用于讀取數(shù)據(jù)庫數(shù)據(jù)、網(wǎng)絡數(shù)據(jù)的接口和控件。在MFC的支持下,通過這些控件,可以實現(xiàn)查詢定位和數(shù)據(jù)接入等功能。通過調(diào)用goes開源庫,可以實現(xiàn)管道量測等功能。圖7是綜合輸水管網(wǎng)系統(tǒng)界面。
圖7 綜合輸水管網(wǎng)系統(tǒng)
隨著城市的發(fā)展,地下管網(wǎng)越來越復雜,使用二維管網(wǎng)系統(tǒng)已不能適應城市管網(wǎng)的管理、更新需求。本研究以北京市南水北調(diào)地下管網(wǎng)系統(tǒng)為例,根據(jù)實際需求,設計和實現(xiàn)了三維輸水管網(wǎng)系統(tǒng)。系統(tǒng)實現(xiàn)了三維重建和顯示,特別是根據(jù)管道自動生成算法生成管道,同時也實現(xiàn)了部分業(yè)務功能,在一定程度上解決了輸水管網(wǎng)管理中遇到的實際問題,為水網(wǎng)管理提供了解決方案。
但本研究還有許多方面有待進一步研究和實現(xiàn),主要是三維爆管分析等空間分析功能有待加強,與成熟的二維GIS技術的整合等。
[1]熊自明,葛文,吳紹民,等.城市三維地下管網(wǎng)信息系統(tǒng)研究與實現(xiàn)[J].信息工程大學學報,2010,11(1):59.
[2]姜波,金明一.三維地下綜合管網(wǎng)系統(tǒng)的設計及實現(xiàn)[J].城市勘測,2013(4):53.
[3]陳金川,毛善君,李小娟,等.虛擬煤礦三維引擎架構設計及實現(xiàn)[J].煤炭科學技術,2012,40(7):76-80.
[4]尹志永,王濤,周磊,等.基于開源OSG引擎開發(fā)三維管線信息系統(tǒng)[J].城市勘測,2013(1):56-59.
[5]吳小東,許捍衛(wèi).基于OSGEarth的城市三維場景構建[J].地理空間信息,2013,11(2):107.
[6]賴承芳.三維建模技術及其在城市地下管網(wǎng)系統(tǒng)建設中的應用[D].中國地質(zhì)大學,2013.
[7]戴肖鋒,何濤.管網(wǎng)模型中基于對象分類的構件及組合件構造方法[J].計算機輔助設計與圖形學學報,2000,12(10):756-760.
[8]陳子輝.虛擬三維地下管網(wǎng)建模技術研究與實現(xiàn)[D].天津大學,2008.
[9]楊化斌.OpenSceneGraph3.0三維視景仿真技術開發(fā)詳解[M].北京:國防工業(yè)出版社,2012.
[10]溫轉(zhuǎn)萍,申閆春.基于OSG的虛擬校園系統(tǒng)的設計與實現(xiàn)[J].計算機技術與發(fā)展,2009,19(1):219.