蘇志軍,龔振華
(1.西安測繪總站,陜西 西安 710054)
基于ArcEngine的三維城市地下管線流向分析算法研究
蘇志軍1,龔振華1
(1.西安測繪總站,陜西 西安 710054)
將ArcEngine技術和網(wǎng)絡流向追蹤技術應用到城市地下管線流向分析中,結(jié)合數(shù)學中的映射思想,提出基于ArcGIS網(wǎng)絡流向模型的三維城市地下管線流向分析算法,解決了傳統(tǒng)二維GIS系統(tǒng)流向分析效果不直觀的缺陷,為三維城市地下管網(wǎng)系統(tǒng)的建設提供技術支撐。
網(wǎng)絡流向模型 ; 地下管線; 流向分析; 要素
城市地下管線是城市基礎設施的重要組成部分,是城市賴以生存和發(fā)展的重要物質(zhì)基礎[1],具有復雜性、隱蔽性和系統(tǒng)性等特征。傳統(tǒng)的基于二維平面地圖的城市地下管線管理方式在表達城市地下管線的這些特征時暴露出許多不足[2]。三維GIS方法將復雜空間對象以三維立體的方式展現(xiàn)在用戶面前,用戶可以全視角觀察對象間的空間關系,給用戶以真實世界的感受,提高了地下管線科學化管理水平,更好地服務社會。因此,利用三維GIS技術管理城市地下管網(wǎng)已經(jīng)成為提高城市地下管線科學化水平的主要手段。
利用ArcEngine實現(xiàn)各種空間網(wǎng)絡分析功能都是在網(wǎng)絡數(shù)據(jù)基礎上進行的,因此在進行管線網(wǎng)絡空間分析前,要先建立網(wǎng)絡空間模型,將實際空間系統(tǒng)轉(zhuǎn)換為地理要素網(wǎng)絡系統(tǒng)。在與城市爆管、防洪減災等與管線流向有關的分析功能中,建立網(wǎng)絡流向是進行各類分析功能的基礎,只有先確定網(wǎng)絡的流向,才能在此基礎上進行空間分析。
ArcGIS采用幾何網(wǎng)絡模型和邏輯網(wǎng)絡模型來描述空間網(wǎng)絡[3]。幾何網(wǎng)絡模型由一系列相連的線和交匯點組成,構(gòu)成幾何網(wǎng)絡的數(shù)據(jù)源必須是同一空間參考下的要素類,邊線和交匯點組合成流向確定的空間網(wǎng)絡[4],網(wǎng)絡模型的邊用于描述流向和長度確定的線狀要素,交匯點用于關聯(lián)邊線并傳遞資源。邏輯網(wǎng)絡模型由屬性表構(gòu)成,表記錄描述邊線和交匯點的關聯(lián)關系。邏輯網(wǎng)絡的數(shù)據(jù)源是網(wǎng)絡邊線、交匯點等網(wǎng)路元素以拓撲形式連接成的集合[5],網(wǎng)絡元素主要用于非定向網(wǎng)絡中的拓撲管線建模,如地鐵系統(tǒng)或道路系統(tǒng)等線狀網(wǎng)絡建模。
幾何網(wǎng)絡和邏輯網(wǎng)絡一一對應,二者通過節(jié)點和邊的關聯(lián)關系進行互動。當編輯幾何網(wǎng)絡時,邏輯網(wǎng)絡隨之更新。
進行三維城市地下管線流向分析的基礎是構(gòu)建三維城市GIS系統(tǒng),分析功能必須在三維管網(wǎng)場景中實現(xiàn),因此三維管網(wǎng)場景的建立是進行三維管線流向分析的基礎。但三維管線模型只是作為元素存在于三維場景中,不能對其進行屬性和行為的賦值,所以本文研究的三維城市地下管線流向分析實現(xiàn)思路是通過二維矢量管網(wǎng)要素類構(gòu)建空間網(wǎng)絡,再利用ArcGIS網(wǎng)絡流向追蹤技術對空間網(wǎng)絡進行定向,通過邊線的唯一OID編號將管線要素映射成三維管線模型,根據(jù)網(wǎng)絡邊線流向確定三維管線流向,調(diào)用ArcGIS的Style庫中的三維箭頭符號,根據(jù)管線長度,將其適量間斷性標記在三維管線模型中,最終實現(xiàn)三維管線流向分析。具體流程如圖1。
圖1 三維管線流向分析實現(xiàn)過程圖
實現(xiàn)思路如下:
1)構(gòu)建地下三維城市一體化平臺。地上部分可采用ArcEngine組件技術或Skyline建模軟件等方法進行建模??紤]到后續(xù)的空間分析表達,地下管線一般采用ArcEngine組件技術建模;管件模型一般采用3DS max、Shyline等專業(yè)建模軟件構(gòu)建。
2)建立二維地下管線矢量要素的流向。ArcGIS網(wǎng)絡流向追蹤技術的實質(zhì)是通過ArcToolbox工具箱中的Set flow Direction工具對幾何網(wǎng)絡各個邊設置流向,ArcGIS內(nèi)核按照ITraceFlowSolverGEN接口對網(wǎng)絡進行追蹤,進而設置各個邊線的流向??梢赃M行4種流向設置,分別是流向與線要素數(shù)字化同向、流向與線要素數(shù)字化反向、流向按照源頭、匯點方向及流向與源頭、匯點方向反向[6]。數(shù)字化方向是管線普查的方向,地下管網(wǎng)一般呈樹狀或環(huán)狀,按照國家和行業(yè)相關規(guī)定,管線測量是從源點或匯點開始沿著與其相連的管線依次展開,所以管線數(shù)字化方向一般為管線流向方向或管線流向反方向。在構(gòu)建幾何網(wǎng)絡流向時,需要明確知道所用管網(wǎng)數(shù)據(jù)的流向,一般可以從外業(yè)測量人員或相關總結(jié)報告處獲得,以便通過Set flow Direction工具對其設置流向。
3)管線要素映射三維模型。在三維地下管線場景中,管線和管件模型都是以元素(element)的形式表達的,元素是根據(jù)要素(IFeature)的坐標、高程等屬性值構(gòu)建的具有空間位置信息的三維對象[7]。對三維管線模型定向描述的本質(zhì)是對其對應的二維矢量管線作流向分析,再在三維管線模型中進行表達。這一過程的核心技術是獲取每條二維管線對應的三維模型,本文采用映射的思想解決這一問題。具體做法是:在為管線建模前,首先定義兩個類型分別為IList和IFeature的集合,每構(gòu)建一個管線模型,則將管線要素存入IFeature集合中,將其三維模型存入IList集合中。這樣兩個集合中的元素都是按管線建模順序添加排列的,也是一一對應的。要獲取某一元素構(gòu)建的三維對象,只需在IFeature集合中獲取該元素索引號,根據(jù)索引號在IList集合中便可獲取其構(gòu)建的三維對象。
4)遍歷所有管線,確定每條管線長度,調(diào)用ArcGIS的Style符號庫中的三維箭頭符號,根據(jù)管線長度將管線分為若干段。一般而言,每一小段長度一般為管徑的4~6倍最好,這樣箭頭符號放置得不至于太密或太疏。根據(jù)管線起始點坐標及小段長度計算每一小段中間點的三維坐標,將三維箭頭符號以元素(element)的形式加入中間點處。依此類推,計算后續(xù)各小段的中間點坐標,添加箭頭符號。
三維管線流向分析的本質(zhì)是獲取管線模型,根據(jù)管線長度將管線均分為若干段,計算每一小段管線模型中軸線的中間點三維坐標,將三維箭頭符號添加到每小段的中間點處,從而實現(xiàn)三維管線流向標定。對于任意一段單獨管線(圖2),利用ILine接口的FromPoint屬性和ToPoint屬性可以獲得管線的起終點坐標。設參數(shù)n=6r(r為管徑),以n長度對管線從起點開始分段,到終點處不足一段的另行計算,獲取起終點的高程,即可得到管線起終點的三維坐標分別為(x1、y1、h)和(x2、y2、H)。根據(jù)管線起終點三維坐標計算沿著管線從起點到終點的單位向量為:
假設參數(shù)L0=3r,則第一小分段管線中間點A的坐標為FromPoint+3*r·依此類推,(取整)為管線可劃分的整數(shù)段數(shù),后續(xù)小段管線中間點B的坐標為FromPoint+其中依此可以計算得到各個小段管線中間點的坐標。
圖2 分段管線中間點坐標計算示意圖
管網(wǎng)流向分析在實際生活中具有重要作用,是許多其他類型分析的基礎,如爆管分析、連通性分析和最短路徑分析等。本文主要研究三維管線流向分析中涉及的相關方法,提出具體的實現(xiàn)思路及算法,解決了傳統(tǒng)二維分析方法表達結(jié)果不明顯的缺點,為三維管線空間分析提供了技術支撐。
[1]CJJ8-99《城市測量規(guī)范》[S].
[2]蘭小機,劉德兒,魏瑞娟,等.基于ArcObjects與C#.NET的GIS應用開發(fā)[M].北京:冶金工業(yè)出版社,2011
[3]李崇貴,陳崢,豐德恩,等.ArcGIS Engine組件式開發(fā)及應用[M].北京:科學出版社,2012
[4]嚴勇.地下管線三維可視化研究[D].武漢:武漢大學,2003
[5]劉仁義,劉南.ArcGIS開發(fā)寶典[M].北京:科學出版社,2006
[6]李培軍.基于GIS的地下管網(wǎng)可視化研究[D].鄭州:信息工程大學,2006
[7]唐熠.基于ArcGIS的地下管線三維虛擬仿真研究與實現(xiàn)[D].成都:成都理工大學,2011
P208
B
1672-4623(2017)12-0083-02
10.3969/j.issn.1672-4623.2017.12.026
2015-12-23。
蘇志軍,高級工程師,研究方向為地圖制圖。