仇文順 劉一宏 馬翔宇
(1.北京市南水北調調水運行管理中心,北京 100195;2.北京市南水北調工程建設委員會辦公室,北京 100086)
地下輸水管網是城市重要的基礎設施,擔負著水資源輸送的任務,是城市賴以生存的物質基礎[1]。隨著社會經濟的發展,地下管網更加密集和復雜,現有的地下管網管理工作效率低下、流程復雜,迫切需要引入GIS技術實現地下管網的管理工作。傳統的二維地下管網圖只能表達管線的平面位置,無法表達管線之間以及管線與其他地下設施之間的空間層次關系[2]。二維GIS使用二維符號抽象現實世界,會遺失或舍棄部分立體空間信息,不能滿足地下管網表達,而運用三維GIS技術,則能真實有效地反映地下管網的空間分布及空間關系,破解地下管網管理的難題。
目前,已有三維地下管網實現的實例,例如陳金川等設計和實現了虛擬煤礦三維引擎[3],尹志永基于OSG開發了三維管線信息系統[4]等。本研究以北京市南水北調輸水管網系統為例,通過osgEarth實現三維輸水管網系統。南水北調北京段輸水管線采用地下輸水模式,基于osgEarth基礎功能框架,在三維球體地表場景的基礎上擴展了三維地下場景,實現基于數字地球的地上地下一體化、室內室外一體化的三維管網管理系統。
osgEarth是基于 OSG(OpenSceneGraph)開發,集成了地形模型和影像數據的加載、渲染和調度的數字地球三維引擎。osgEarth支持全球范圍的數據建模,基于分層和分塊模型的LOD技術,解決了對海量地理數據、地形數據和影像數據等進行管理的問題,提供靈活的插件管理機制,極大方便了基于osgEarth的擴展功能的開發。
北京市南水北調管網系統包括地下輸水管線、檢修井、排氣口和分水口等部分,通過分水口向水廠供水,通過檢修井對管網進行維護,排氣口向地表排氣,在分水口地表建設分水口控制室。管網結構如圖1所示。

圖1 輸水管網結構圖
osgEarth使用基于XML的earth文件保存三維數據模型。osgEarth讀取該文件時,通過讀取三維模型數據的地址,調用相應驅動器,實現三維空間數據加載,如使用TMS驅動器處理采用TMS協議的瓦片數據等[5]。
本研究的三維空間數據包括三維場景數據和三維管網數據,其中,三維場景數據主要包括地形、地貌和地物。地形地貌可以基于OSG擴展的Virtual Planet Builder構建三維模型;空間地物由于工作量大,需要使用成熟的三維建模軟件構建三維模型。
目前,三維管網數據主要采用三維自動化生成技術和手動三維建模兩種方式生成。管線模型自動生成技術可以實現管道的無縫對接,管道位置精確,但分水口、控制室等復雜地物自動建模復雜;管道模型手動建模方法建立模型簡單,快速高效,但由于三維管線模型跨度大,載入三維場景中會出現位置偏移等問題。因此,本研究將兩種方法結合,使用管線模型自動算法計算搭建管道模型,對于復雜的管網系統附屬設施使用建模軟件手動建模。
本系統主要分為三維可視化、查詢定位、輸水管道、供水調度模型和數據接入5個功能模塊。
三維可視化模塊:可以通過該模塊實現對輸水管網的地上地下環境、輸水管網及其附屬設施的地上地下一體化渲染,同時可以通過控制漫游面板實現對三維場景的漫游。
查詢定位模塊:可以通過該模塊實現輸入輸水管網的相關屬性,在查詢結果面板和三維場景中顯示查詢結果。
輸水管道模塊:該模塊可以控制管網的現實模式,計算管線某一位置水流的流量和流向,獲得管線的縱橫剖面圖和管網的正反流量,可以測量管線的長度和面積。同時,可以對感興趣的局部場景進行快速定位和顯示。
供水調度模型模塊:在該模塊中,將供水參數輸入供水調度模型,計算供水調度方案,并實現對方案的對比和管理。
數據接入模塊:通過該模塊可以閱覽管道沿線的相關檢測數據,如應力數據、水質數據、滲壓計數據等,也可以實時接入攝像頭,顯示攝像內容。
在 Win7(SP1)平臺上,以 Visual Studio 2010為編譯環境,使用MFC搭建系統界面,采用OSG3.1、osgEarth2.5實現三維場景渲染,使用3dMax完成三維靜態模型的構建。
3.2.1 管道快速自動建模
管道主要分為直線管道、轉彎管道,其中,直線管道是普通的管線,轉彎管道是管道轉彎處管道。一般情況下,管道是圓柱或圓臺管道。為了實現快速建模,可以將直線管道部分坐標標準圓管簡化,其空間幾何屬性由位置(三維坐標)、管徑、長度、壁厚等參數確定[6]。在進行快速建模時,彎線管道在矢量旋轉法的基礎上,使用內插的方式建模。
綜上,地下管網的快速自動建模主要包括兩個方面:管道中心線位置的確定;直線管道和轉彎管道的生成。
(1)直線管道建模
直線管道建模先確定管道的中心線及管道兩端點的位置,再根據中心點和管徑對管道端點斷面進行均分,生成管道表面幾何矩形,從而模擬管道。
直線管道的空間位置包括直線管道起點坐標、直線管道的終點位置、管徑[7]。 設管道中心線起點坐標 P1(x1,y1,z1),終點坐標P2(x2,y2,z2),管道前進方向向量與三維空間X、Y、Z三個坐標軸正向夾角分別記為α、β、γ,它們是的方向角,其中0≤α≤π、0≤β≤π、0≤γ≤π,各角余弦可表示為:

直線管道使用圓柱體表示,圓柱體的截面半徑為管線半徑,軸心是管道中心線。管道表面可使用OSG提供的幾何矩形模擬,將n個矩形連接構成棱柱體。隨著n的增大,不斷逼近圓柱,進而實現直線管道的渲染。該方法無論是在算法上,還是在實踐上都是可行的。
如圖2所示,將圓柱體截面分為n份,形成的n個等分點形成內切等邊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軸夾角。
在實現過程中,分別在直線管道中心線起點和終點處擬合圓多邊形上的相對應的C1和C2,構成一個矩形,最終形成表面具有n個矩形的棱柱體,最終實現擬合直線管道。理論上講,n的值越大,擬合圓柱的效果越好,但在實際應用中,隨著n值的變大,計算量也變大,反而會影響效率,因此,n必須取一個合理值。本研究將圓柱截面按15度形成24邊形進行擬合,使得顯示的真實性和渲染效率獲得很好的平衡。

圖3 轉彎管道內插點劃分方法示意圖
(2)轉彎管道建模
三維管道建模的一個難點是轉彎管道的建模,轉彎管道不是直線,需要將轉彎管道進行切片,對每個切片按直線管道建模方法建立斜棱柱模型,進而實現轉彎管道建模。切片數量越多,轉彎管道越平滑。具體的計算方法如下:
圖3中P1O1和OnP3為直線管道,按照直線管道建模方式建模;O1P2On是轉彎管道,采用彎線建模方法,其中,矢量和矢量之間的夾角是α。
①在P1P2P3組成的平面內,在O1O2處分別做P1P2和P2P3的垂線,則兩條垂線的交點O即是轉彎管道的轉彎中心線的圓心,OO1和OO2的長度為半徑R,半徑R可通過O1P2和P2O2的長度計算得到,具體計算公式是:令O1P2=P2O2=L,則

通過上式即可計算得到半徑R。

圖4 單個內插模型圖
②圖4是單個內插模型圖,其中,O為第二步計算的轉彎內徑圓心,O1為內插模型起點面的圓心,O2為內插模終點面的圓心。計算O2坐標的具體計算方法是:將矢量繞垂直于平面P1P2P3的法向量旋轉角度α/n,得到矢量。具體計算公式是:

圖5 管道自動生成效果圖
3.2.2 三維管網附屬設施的導入
三維管網附屬設施主要包括分水口、通風井以及相關控制設施等,這些三維模型結構復雜,使用自動建模的方法建模難度大。國內外已有眾多學者研究了它們的快速建模方法,如有研究者采用標準管件庫的方法[8]。該方法建模簡單,技術成熟,因此,本研究使用該方法實現管網附屬設施的建模,將建立完成的模型直接導入三維場景。具體方法如下:(1)使用3dMax等三維建模軟件建立具體需求的模型;(2)在配置文件中保存附屬設施的位置信息,調用osgEarth提供的接口實現三維模型的導入。

圖6 附屬設施場景效果圖
3.2.3 三維可視化實現
三維可視化主要包括地上地下的可視化一體化、場景漫游、附屬設施的進入等。具體實施上,可視化一體化可以通過設置地表影像的材質透明度,透視地下輸水管線、風水管線、檢修豎井和排氣管道等實現;利用osgEarth提供的EarthManipulator類,可通過控制導航欄實現場景漫游;附屬設施的動態進入需調用osgEarth的碰撞檢測算法實現從分水口控制室室外進入室內,osgEarth 使用 osg:LineSegment和 osgUtil:IntersectVisitor 類實現碰撞檢測[9]。 其中,osg:LineSegment是一個包含起點和終點的線段類,osgUtil:IntersectVisitor是接收線段的類,用于判斷與場景節點的交集[10],實現碰撞檢測。
MFC提供了用于讀取數據庫數據、網絡數據的接口和控件。在MFC的支持下,通過這些控件,可以實現查詢定位和數據接入等功能。通過調用goes開源庫,可以實現管道量測等功能。圖7是綜合輸水管網系統界面。

圖7 綜合輸水管網系統
隨著城市的發展,地下管網越來越復雜,使用二維管網系統已不能適應城市管網的管理、更新需求。本研究以北京市南水北調地下管網系統為例,根據實際需求,設計和實現了三維輸水管網系統。系統實現了三維重建和顯示,特別是根據管道自動生成算法生成管道,同時也實現了部分業務功能,在一定程度上解決了輸水管網管理中遇到的實際問題,為水網管理提供了解決方案。
但本研究還有許多方面有待進一步研究和實現,主要是三維爆管分析等空間分析功能有待加強,與成熟的二維GIS技術的整合等。
[1]熊自明,葛文,吳紹民,等.城市三維地下管網信息系統研究與實現[J].信息工程大學學報,2010,11(1):59.
[2]姜波,金明一.三維地下綜合管網系統的設計及實現[J].城市勘測,2013(4):53.
[3]陳金川,毛善君,李小娟,等.虛擬煤礦三維引擎架構設計及實現[J].煤炭科學技術,2012,40(7):76-80.
[4]尹志永,王濤,周磊,等.基于開源OSG引擎開發三維管線信息系統[J].城市勘測,2013(1):56-59.
[5]吳小東,許捍衛.基于OSGEarth的城市三維場景構建[J].地理空間信息,2013,11(2):107.
[6]賴承芳.三維建模技術及其在城市地下管網系統建設中的應用[D].中國地質大學,2013.
[7]戴肖鋒,何濤.管網模型中基于對象分類的構件及組合件構造方法[J].計算機輔助設計與圖形學學報,2000,12(10):756-760.
[8]陳子輝.虛擬三維地下管網建模技術研究與實現[D].天津大學,2008.
[9]楊化斌.OpenSceneGraph3.0三維視景仿真技術開發詳解[M].北京:國防工業出版社,2012.
[10]溫轉萍,申閆春.基于OSG的虛擬校園系統的設計與實現[J].計算機技術與發展,2009,19(1):219.