王杉杉,駱旭佳,高 飛,胡小華
(1.合肥工業(yè)大學 土木與水利工程學院,合肥 230009;2.浙江華東測繪有限公司,杭州310030;3.合肥市國土資源局地理信息中心,合肥230001)
伴隨著經(jīng)濟的快速發(fā)展,我國城市化步伐也在加速。然而城市的快速發(fā)展也帶來了種種問題:復雜的交通道路系統(tǒng),復雜的地下給排水管道系統(tǒng)[1],復雜的地下線路系統(tǒng)。由于供水供氣管道、地下光纜等設施絕大部分埋設在地下,規(guī)格不一,年代不同,因此顯得更為復雜[2]。我國計算機管理和基礎信息GIS建設起步整體上稍落后于歐美等發(fā)達國家,城市快速建設雖留下了豐富的圖紙和相關表格資料,但是并沒有采用計算機技術進行統(tǒng)一管理,復雜凌亂,資料利用率低。而今,城市建設處于修復、整改和擴建階段,由于無法獲得施工區(qū)完整的地下資料,市政施工頻頻導致地下管線遭到破壞;年代久遠的供水供氣管道無法滿足現(xiàn)代城市的發(fā)展需要,加上更新不及時,過大的壓力導致陳舊管道爆管事故頻頻發(fā)生。為了最大限度地降低管道爆裂產(chǎn)生的損失,當事故發(fā)生時,相關部門必須迅速對這些管道進行定位,快速確定影響范圍,并制定最優(yōu)化的關閉修復方案。這時,傳統(tǒng)的人工方法已經(jīng)無法滿足領導快速決策的需求,借助GIS和計算機技術,爆管分析系統(tǒng)應運而生。
目前,國內(nèi)也已推出很多管道管理軟件,但是商品化的軟件成本昂貴,數(shù)據(jù)格式固定,系統(tǒng)內(nèi)部模型和建模過程也不公開,部分陳舊系統(tǒng)只考慮了樹狀管道模型,而現(xiàn)在城市地下水多數(shù)情況為多水源的環(huán)狀管道網(wǎng)絡。本文以小城市為試點,在研究已有的部分管網(wǎng)信息系統(tǒng)的基礎上,結(jié)合城市地下管網(wǎng)的特點,建立了GIS的網(wǎng)絡數(shù)據(jù)模型,并對爆管事故進行分析,制定了切實可行的關閥方案。
城市地下管網(wǎng)縱橫交錯,流向也隨著管道兩端壓力的變化而變化。由于表格和圖紙的局限性,面對龐雜的地下管網(wǎng),發(fā)生事故時傳統(tǒng)方法無法快速準確的為決策者提供服務。在部分陳舊的管網(wǎng)分析系統(tǒng)中,由于缺少GIS技術,屬性數(shù)據(jù)與圖形數(shù)據(jù)往往是分開管理,甚至有的系統(tǒng)并未用上圖形的功能。而計算機技術和GIS技術的結(jié)合,能將圖形數(shù)據(jù)和屬性數(shù)據(jù)很好地結(jié)合在一起,形成良好、直觀的可視化界面,做到不同類型數(shù)據(jù)間的統(tǒng)一管理。ArcGIS的shape文件就是一種應用廣泛的數(shù)據(jù),它將圖形數(shù)據(jù)和屬性數(shù)據(jù)通過統(tǒng)一的字段進行關聯(lián),做到了兩種數(shù)據(jù)的統(tǒng)一。在本文中,通過圖形數(shù)據(jù)來表達所有的管道和結(jié)點的位置信息;通過屬性數(shù)據(jù)來描述管道與結(jié)點之間的鄰接關系及管道、結(jié)點的其他屬性。
城市地下管網(wǎng)存在多個供水源頭,其內(nèi)部管道連通錯綜復雜。由于管網(wǎng)的這種復雜連通關系,使得其中任何兩個接頭都可能存在關系,簡單的樹結(jié)構(gòu)根本無法表達復雜的系統(tǒng)。而圖卻能很好地表述這一問題。本文中借助計算機技術中的圖算法來解決管道關閥搜索。G由V、E兩個集合組成:G=(V、E)。V表示頂點集合,E表示頂點間的關系。圖分為有向圖和無向圖,可以用圖的有向性來表示水流方向[3-4]。
廣序遍歷(BFS)是從結(jié)點集合V中一個指定結(jié)點V[i]開始訪問,下一步訪問所有與V[i]連接的未被訪問的點w1,w2,w3,w4,…,wt,再依次訪問與w1,w2,…,wt相鄰接未被訪問的結(jié)點。依次類推,直到結(jié)點集合V中所有的點均被訪問,整個圖的遍歷才算結(jié)束。如圖1所示,其廣度優(yōu)先遍歷順序就是0,1,2,3,4,5,6。
圖是一種非線性數(shù)據(jù)結(jié)構(gòu),其內(nèi)部各結(jié)點之間都有可能存在關系,這種復雜關系可以有多種存儲方法。針對本次開發(fā)的平臺為Visual Basic,本程序中選用鄰接矩陣存儲方法來存儲一個圖。
圖1 無向圖
如圖1所示,可以用一個一維數(shù)組V[7]來表示這個圖的頂點(vertex),圖內(nèi)點間的關系用一個二維數(shù)組A[i][j]來表示,即鄰接矩陣。 在鄰接矩陣中,i、j表示頂點序號,A[i][j]的值k表示頂點之間的鄰接關系。針對圖1中頂點之間的關系可以用圖2表示。鄰接表取值為:
圖2 鄰接矩陣
城市地下環(huán)狀管網(wǎng)在實際使用過程中,上下游實時用戶的分布情況、閥門情況、水源和供水站的加壓情況等隨時會改變管道兩端的壓強,導致管道內(nèi)部流向變化,無法定性。且管道埋深不一,制作材質(zhì)不同,這些都會影響管道不同位置的壓強,這些因素的權值也無法確定,因此本文將整個地下管道圖抽象為無權的無向圖。發(fā)生管道爆裂等急性事件后,想要得到的最佳方案是:在合理的受損影響范圍內(nèi),使得關閉的閥門數(shù)量最少。在實際過程中即搜尋最近的、與當前管道可以流通的閥門,將其關閉。這樣就可以控制水流,也可以統(tǒng)計得到最合理的停水影響范圍。
通過上述分析,結(jié)合管網(wǎng)數(shù)據(jù)的特征,現(xiàn)在可以用一張無向圖來抽象表示當前管道模型:用頂點表示各個接頭、閥門、水源;用一個無權值的鄰接矩陣來表示管道、結(jié)點之間的連通關系?,F(xiàn)在將管道數(shù)據(jù)組織成如下形式:crunode圖層(Point圖層),包含各種管道結(jié)點的信息,抽象為圖的頂點圖層;pipe圖層(Polyline),存儲管道的各種信息,抽象為圖的鄰接關系。在程序中,建立一個二維數(shù)組,通過讀取pipe圖層的各條記錄,得到各個相關管道的FROMID和TOID屬性,存入數(shù)組,可以生成當前管道圖的鄰接矩陣。
本文將生成關閥方案的過程分成兩部分實現(xiàn):①通過廣序遍歷生成初步關閥方案,如圖3;②通過對初步方案中的各個閥門進行分析,去除可關可不關的一類閥門,以此來得到最優(yōu)化的高效率閥門關閉方案[5]。
圖3 廣序遍歷生成初步方案流程
根據(jù)圖論廣序遍歷搜索的原理,通過點擊圖面拾取或者按照名稱查找得到爆裂的管道,先判斷管道兩頭的結(jié)點,若兩頭都是閥門(特殊情況),不需要進行搜索,兩端閥門直接進入初步關閥結(jié)果;若不是,則以非閥門端為圖的起點(兩端均為普通節(jié)點的任取一個),進行圖的廣序遍歷搜索,來計算生成初步關閥方案:首先訪問相鄰結(jié)點,如果該結(jié)點未被訪問,則標記為已讀。且如果是閥門或者水源,則分別加入初步關閥方案的相應數(shù)組:水源數(shù)組或者閥門數(shù)組;待與該起始點相鄰的所有結(jié)點訪問結(jié)束后,從隊列中取隊頭元素,開始新的一層搜索。依次類推,直到隊列為空時結(jié)束搜索,此時水源數(shù)組和閥門數(shù)組中的各個結(jié)點均為需要關閉的水源或者閥門。
在2.1部分中生成的初步方案內(nèi),有一些閥門處于可關可不關的狀態(tài)。事故發(fā)生后,如果對這一類閥門也進行關閉,只是增加了成本,浪費了人力,因此,下一步的工作就是將這些閥門從初始方案中剔除,在保證關閥正確性的同時,得到優(yōu)化方案。
假設初步關閥方案中的閥門都關閉,然后對初始方案中的每個閥門都進行如下操作以優(yōu)化剔除閥門:以該閥門為起點進行廣序遍歷搜索,尋找未關閉的水源。①如果遇到初步關閥方案中的閥門則停止繼續(xù)往該路徑上進行遍歷,因為假設這些閥門也被關閉,“此路不通”,暫停該路徑,尋求其他路徑去尋找未關閉的水源;②如果通過其他路徑該閥門能遍歷到初始水源關閉方案以外的水源,則說明關閉某些閥門后,該閥門和其他水源之間依然存在通路,因此它是一定要關閉的閥門;③如果不能遍歷到其他水源,則表明這個閥門所在管線的水流被初步方案中閥門集合內(nèi)某些閥門控制著,關閉了其他閥門,這個閥門所在的管線上就沒有水流了,所以這個閥門屬于可關可不關的類型,在初步關閥方案中要剔除,最后得到的就是發(fā)生爆管事故后最經(jīng)濟的閥門關閉方案。
針對小城市的地下管道系統(tǒng),數(shù)據(jù)量相對較少,本系統(tǒng)采用的是Visual Studio 6.0中的Visual Basic 6.0和MapObjects開發(fā)組件。VB是微軟公司開發(fā)的包含協(xié)助開發(fā)環(huán)境的事件驅(qū)動編程語言。它擁有圖形用戶界面,程序員可以輕松地使用VB提供的組件快速建立一個應用程序[6]。MapObjects是ESRI公司提供的一組供GIS應用開發(fā)人員使用的組件。利用MapObjects,開發(fā)人員可以在應用程序中添加制圖和GIS功能。組件式的開發(fā)方式大大方便了開發(fā)人員。得益于Visual Basic和MapObjects的優(yōu)點,兩者相結(jié)合的開發(fā)方式在小型GIS軟件系統(tǒng)的開發(fā)中得到了廣泛應用[7-8]。
圖4 對初步方案內(nèi)閥門進行篩選的流程
圖5 系統(tǒng)界面
結(jié)合分析,通過點擊圖面選擇某一管道作為爆裂的管道,對其進行爆管分析。如圖6所示,圖中三角形位置為閥門,1、35號結(jié)點為水源。假設兩端結(jié)點ID為48和22的管段破裂,計算過程如下:第一步生成的初步方案中需關閉的閥門共有4個;經(jīng)優(yōu)化后,僅需關閉2個閥門(如圖6所示)。仔細檢查發(fā)現(xiàn),這2個閥門正好可以滿足要求,同時也保證了相對較小的受影響區(qū)域。對比初始方案和最終結(jié)果內(nèi)部所關閉的閥門情況得出,經(jīng)過優(yōu)化的方案大大減少了閥門數(shù)量,減少了不必要的損失和浪費。
圖6 初始關閥方案與優(yōu)化關閥方案對比圖
目前使用的多數(shù)管網(wǎng)管理軟件通常需要區(qū)分配水管和給水管,而本算法卻形成了一個通用算法,任何管段爆裂,都能快速準確的定位和生成關閥方案,也可用于計算受影響的用戶;也有很多軟件只是考慮單個水源的環(huán)狀管道,本文的方法適用于多個水源的復雜地下管道。但是,其中也存在諸多不足之處:該算法內(nèi)部未結(jié)合閥門本身的故障進行解算,無法解決由于閥門本身或者結(jié)點本身損壞而導致的漏水漏氣事故;該算法內(nèi)部沒有集成管網(wǎng)內(nèi)部壓強平差的計算。此外,如果能結(jié)合計算機硬件技術、單片機技術和網(wǎng)絡技術,實時動態(tài)的監(jiān)測各個管道的水壓變化,通過網(wǎng)絡傳輸實現(xiàn)網(wǎng)絡自動化辦公則指日可待。
[1]胡新玲,張宏飛.供水管網(wǎng)地理信息系統(tǒng)中爆管分析的算法與實現(xiàn)[J].測繪科學,2008,33(4):225-226.
[2]劉建川,李永樹,蔡國林.基于ArcGIS管網(wǎng)爆管分析的算法優(yōu)化與實現(xiàn)[J].測繪科學,2008,33(1):215-217.
[3]林偉華,伍永剛,曾文,等.燃氣管網(wǎng)爆管分析模型研究[J].測繪科學,2007, 32(6):162-163.
[4]張選平,雷詠梅.數(shù)據(jù)結(jié)構(gòu)[M].北京:機械工業(yè)出版社,2003.
[5]李云海,張宏飛.供水管網(wǎng)地理信息系統(tǒng)中爆管分析的算法與實現(xiàn)[J].新疆有色金屬,2007(S0):56-58.
[6]彭其美,冷英男.Visual Basic程序設計教程[M].北京:人民郵電出版社,2006.
[7]韓鵬.地理信息系統(tǒng)開發(fā):MapObjects方法[M].武漢:武漢大學出版社,2004.
[8]薛偉.MapObjects:地理信息系統(tǒng)程序設計[M].北京:國防工業(yè)出版社,2004.