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

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

直線管道使用圓柱體表示,圓柱體的截面半徑為管線半徑,軸心是管道中心線。管道表面可使用OSG提供的幾何矩形模擬,將n個矩形連接構(gòu)成棱柱體。隨著n的增大,不斷逼近圓柱,進(jìn)而實(shí)現(xiàn)直線管道的渲染。該方法無論是在算法上,還是在實(shí)踐上都是可行的。
如圖2所示,將圓柱體截面分為n份,形成的n個等分點(diǎn)形成內(nèi)切等邊N邊形,進(jìn)而擬合圓。

圖2 直線管道截面分解圖
在圖2中,圓心位于直線管道中心線上,設(shè)其坐標(biāo)為O(xo,yo,zo),k 為圓的等分點(diǎn),則 k 點(diǎn)的坐標(biāo)(xk,yk,zk)的計(jì)算公式是:
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軸夾角。
在實(shí)現(xiàn)過程中,分別在直線管道中心線起點(diǎn)和終點(diǎn)處擬合圓多邊形上的相對應(yīng)的C1和C2,構(gòu)成一個矩形,最終形成表面具有n個矩形的棱柱體,最終實(shí)現(xiàn)擬合直線管道。理論上講,n的值越大,擬合圓柱的效果越好,但在實(shí)際應(yīng)用中,隨著n值的變大,計(jì)算量也變大,反而會影響效率,因此,n必須取一個合理值。本研究將圓柱截面按15度形成24邊形進(jìn)行擬合,使得顯示的真實(shí)性和渲染效率獲得很好的平衡。

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

通過上式即可計(jì)算得到半徑R。

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

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

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

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