田紅霞
(中煤浙江測繪地理信息有限公司,浙江 杭州 310021)
城市地下管線具有復(fù)雜性、隱蔽性、系統(tǒng)性的特點(diǎn)。相比于傳統(tǒng)的二維平面地圖,構(gòu)建地下管線的三維立體模型,則能夠更加清晰、準(zhǔn)確、直觀地表達(dá)各類地下管線的空間關(guān)系,這就為城市地下管線的敷設(shè)、維護(hù)、檢修等工作開展提供了技術(shù)支持。Arc GIS 軟件是現(xiàn)階段三維建模中常用的軟件之一,在城市地下管線的三維建模中,使用GIS 建模技術(shù)不僅能夠構(gòu)建出各種形式的管件模型,而且還能通過計(jì)算、分析,讓不同的管件、管線段無縫銜接,從而提高了地下管網(wǎng)的密封性和整體性。
城市地下管線系統(tǒng)由管線段和管件兩部分組成。在模型構(gòu)建時(shí),管線段的形狀規(guī)則、結(jié)構(gòu)簡單,建模相對容易;而管件的形式多樣、結(jié)構(gòu)復(fù)雜,是建模的重點(diǎn)和難點(diǎn)。本研究選擇Arc GIS Engine 軟件設(shè)計(jì)管件模型,考慮到許多地下管件埋藏較深,獲取其紋理數(shù)據(jù)有一定難度,因此在模型設(shè)計(jì)時(shí),首先從Arc GIS Engine 軟件自帶的標(biāo)準(zhǔn)幾何體資源庫中選擇管件模型的組成部分,然后再運(yùn)用拉伸、拼接等方式,將標(biāo)準(zhǔn)集合體組裝成管件,最后將管件三維模型以3ds 文件保存[1]。以城市地下管線中最為常見的三通管件為例,在構(gòu)建模型時(shí)先選擇3 根空心圓柱,然后經(jīng)過拼接、擠壓處理后,即可得到三通管件模型。另外,在設(shè)計(jì)管件三維模型時(shí),還要考慮管件模型的尺寸、位置、數(shù)量等相關(guān)因素。例如,在管線相交的位置,如果有3 條管線相交,那么需要對應(yīng)選擇三通管件模型,分別連接管線;如果要調(diào)整管線的走向,則調(diào)用閥門模型。
為了提高建模效率,理順管線和管點(diǎn)之間的關(guān)系,必須要對城市地下管網(wǎng)模型進(jìn)行簡化處理。簡化管網(wǎng)模型主要有兩種思路:第一種是簡化管線,即建模時(shí)刪除或合并城市地下管網(wǎng)中次要的支線管線,只保留主要管線;第二種是抽象管線,將整個(gè)城市地下管網(wǎng)抽象成只有管線和管點(diǎn)組合的模型。以污水管線、燃?xì)夤芫€為例,均屬于圓柱狀管線。在簡化模型處理的基礎(chǔ)上,可以不考慮這些管線的壁厚,將管線的內(nèi)外徑統(tǒng)一為管線外徑,從而將直管抽象成為圓柱體,極大的減輕了管網(wǎng)建模的工作量。
本研究使用Arc GIS 軟件自帶的Engine 組件構(gòu)建直管三維模型。在建模前,需要借助于市政部門提供的管線資料,或者是通過實(shí)地探測的方式,得到地下管線的真實(shí)數(shù)據(jù),包括管線的直徑、連接方式、具體走向等。然后將所得數(shù)據(jù)轉(zhuǎn)化成Shapefile 格式的二維管線矢量數(shù)據(jù),并新建文件保存[2]。運(yùn)行ArcGIS 軟件,并調(diào)用Multipath 數(shù)據(jù)模型,從菜單欄中依次選擇“新建模型”、“導(dǎo)入數(shù)據(jù)”,選擇對應(yīng)的文件將二維管線矢量數(shù)據(jù)導(dǎo)入后,即可得到直管模型。這里以圓柱狀管線(見圖1)為例,簡要概述基于Multipath 數(shù)據(jù)模型的構(gòu)建流程:
圖1 圓形管構(gòu)造
步驟1:系統(tǒng)讀取所有的管線要素?cái)?shù)據(jù),并從中收集每條管線的屬性數(shù)據(jù),包括管線的起始點(diǎn)坐標(biāo)、管線的直徑與長度,以及埋設(shè)方式等。
步驟2:選擇接口Vector3D,利用該接口下的Construct Difference 方法,建立一個(gè)從A(管線起點(diǎn))到B(管線終點(diǎn))的向量;按照同樣的操作,選擇該接口下的Construct Vector3D 方法,求得向量的垂直向量,然后把管徑長度值賦給,即可根據(jù)A 點(diǎn)坐標(biāo)求得A1點(diǎn)的坐標(biāo)。
步驟3:測得圖1 中∠A1AA2的值,并使用Transform3D 接口下的Rotate Vector3D 方法,使向量沿著向量的方向旋轉(zhuǎn)45°,然后得到∠A1AA2中A2點(diǎn)的坐標(biāo)。重復(fù)該步驟,依次獲得A3~A10的坐標(biāo),這樣就得到了正十邊形各個(gè)頂點(diǎn)的坐標(biāo)。
步驟4:將上圖正十邊形底面上相鄰的2 個(gè)節(jié)點(diǎn)(如A1和A2)和頂面距離最短的1 個(gè)節(jié)點(diǎn)(B1)連接,可以得到一個(gè)平面三角形,即△A1A2B1。重復(fù)該步驟,依次得到△A2A3B2等10 個(gè)平面三角形。這些三角形分別處于不同的平面,整個(gè)圓柱可以看成是一個(gè)由多個(gè)三角平面首尾相連組成的三角條帶。
步驟5:結(jié)合前期調(diào)查結(jié)果,基于每一條管線的類型、埋深等基本信息,對構(gòu)建的管線三維模型進(jìn)行渲染,使其呈現(xiàn)出不同的顏色,以便于在城市地下管線模型中加以區(qū)分。最后將管線模型(Feature)轉(zhuǎn)化為幾何對象(Geometry),并添加到三維場景中[3]。在添加時(shí),還需要注意根據(jù)現(xiàn)場環(huán)境,靈活調(diào)節(jié)模型的大小、角度,保證三維直管模型與其他管線段或管件能夠適配。
兩條或多條直徑相同的管線銜接時(shí),建模難度較低。這里以城市地下管線中比較常見的“圓管——圓球——圓管”銜接結(jié)構(gòu)(見圖2)為例,對等徑管線的建模方法進(jìn)行簡要概述。
圖2 等徑管線銜接建模示意
如圖2,當(dāng)2 條直徑相同的管線相交于一處時(shí),進(jìn)行銜接建模。首先確定2 條管線的中軸線,延伸并使其相交于一點(diǎn),該交點(diǎn)即為銜接圓球的圓心,以管線的直徑作為銜接圓球的直徑。確定了圓心、直徑后,即可建立等徑管線銜接圓球的模型。然后從2 條管線向圓球方向繪制等徑圓管,保證圓管與圓球表面精緊密貼合,最終得到等徑管線銜接模型。在等徑管線的銜接建模中,不需要使用彎管,而是用圓球代替,這樣就極大的減少了運(yùn)算量。
對于2 條直徑不相同的管線,要想將兩者銜接起來,無法像上文一樣使用規(guī)則的圓球,而是要選用1 條不規(guī)則的彎管。彎管一頭開口較小,連接2 條管線中直徑稍小的一條;另一頭開口較大,連接2 條管線中直徑稍大的一條,見圖3。
圖3 異徑管線銜接建模示意
在三維建模時(shí),彎管通常為圓環(huán)體樣式,基于彎管的異徑管線銜接建模流程如下:首先確定圓環(huán)的基本參數(shù),如圓形坐標(biāo)、直徑,以及圓環(huán)與直管的夾角等,根據(jù)上述參數(shù)確定圓環(huán)的空間位置。然后如圖3 所示分解圓環(huán)體,使其成為多個(gè)大小不等的圓環(huán)體。按照上文所述的“正十邊形”方法,在圓環(huán)體內(nèi)畫出正十邊形,并保證正十邊形的10 個(gè)頂點(diǎn)均位于圓環(huán)體的底邊上[4]。做分片處理,求得每個(gè)平面三角形的頂點(diǎn)坐標(biāo)。使用多片頂點(diǎn)坐標(biāo)構(gòu)建Multipath 對象,可以得到圓柱體的模型。最后將多個(gè)直徑不同的圓柱體按照大小順序依次組合,即可得到一個(gè)漸變的組合彎管(見圖3)。
3.3.1 圓環(huán)圓心坐標(biāo)與半徑等參數(shù)的計(jì)算 在異徑管線銜接建模時(shí),采用抽象管線處理方法,將2 條在T3處相交的異徑管線簡化成圖4 所示的模型。
圖4 圓弧圓心角計(jì)算
在構(gòu)建T1L1和T2L2兩條直管的銜接模型時(shí),第一步要尋找管線銜接處彎管圓環(huán)的中心坐標(biāo)(O),以及該圓環(huán)的半徑(R)和直管夾角(θ)。根據(jù)這3 項(xiàng)參數(shù)可以確定圓環(huán)的空間位置,具體計(jì)算流程如下:
步驟1:將兩條直管分別延長,直到出現(xiàn)交點(diǎn)T3。求出T3的坐標(biāo)
計(jì)算交點(diǎn)T3與T1之間最短距離(S)
步驟2:以向量形式表示三維空間中T3與T1的距離
按照同樣的方法,以向量形式表示三維空間中T3與T2的距離
步驟3:分別用T1和T2的三維單位向量,表示圓環(huán)在三維空間中所處平面的法向量
步驟4:分別選擇2 條抽象管線T1T3和T2T3作為參照,求出垂直于T1T3管線并且指向圓環(huán)圓心O 的向量,表示為
同理,可求得垂直于T2T3管線并且指向圓環(huán)圓心O的向量,表示為
步驟5:根據(jù)圖4,易得圓環(huán)與直管相切處(L1和L2)到兩條直管相交點(diǎn)T3之間的距離S,據(jù)此可以求出這2個(gè)切點(diǎn)的空間坐標(biāo),分別表示為
根據(jù)向量T1和T2的位置關(guān)系,可以測出兩者之間的夾角θ,求出余弦值
步驟6:根據(jù)夾角θ 求出圓弧中心線所在圓弧的半徑r
步驟7:利用上述計(jì)算式求得的各項(xiàng)參數(shù),帶入到彎管圓環(huán)圓形坐標(biāo)的計(jì)算公式中
至此,可以得到圓環(huán)的圓形坐標(biāo)、半徑等參數(shù),為異徑管線的精確建模提供了數(shù)據(jù)支持,保證彎管無縫銜接2 條直徑不同的直線管。
3.3.2 首個(gè)圓柱體頂點(diǎn)坐標(biāo)的計(jì)算 在異徑管線的模型構(gòu)建中,除了通過上文計(jì)算求得圓環(huán)的圓心等參數(shù)外,還要進(jìn)一步繪制圓環(huán)的外表面,達(dá)到提高模型精度、保證直管與彎管無縫對接的效果。但是本研究使用的城市地下管線三維模型構(gòu)建軟件Arc GIS Engine 并未提供直接用于繪制圓環(huán)的相關(guān)功能?;诖耍狙芯刻峁┝肆硪环N思路:采用不斷分割的方式,將一個(gè)固定的圓弧分解成多個(gè)圓柱體;隨著分解出來的圓柱體數(shù)量不斷增加,可以將每個(gè)圓柱體看作一個(gè)正圓柱體[5]。由于這些圓柱體的直徑并不相等,因此仍然按照上文提供的圓管分解方法,將圓柱體表面分解成若干個(gè)四邊形,并且保證四邊形的4 個(gè)頂點(diǎn)均位于圓柱體上。求出各個(gè)頂點(diǎn)的坐標(biāo)后,繼續(xù)將四邊形分解成三角形,再將三角形按照順序排列,得到三角條帶,在此基礎(chǔ)上可以建立起彎管三維模型。
這里以第一個(gè)圓柱體為例,其立體圖和截面剖分圖見圖5。
圖5 圓柱體的立體圖和截面剖分圖
該圓柱體頂點(diǎn)坐標(biāo)的計(jì)算方法如下:根據(jù)上文計(jì)算方法,分別求得L1、L2和O 點(diǎn)的坐標(biāo)后,將3 個(gè)點(diǎn)連接起來,即可得到平面三角形L1L2O。在該三角形中使用余弦定理,可以計(jì)算出圓環(huán)的圓心角α,其表達(dá)式為
根據(jù)圓心角的大小,將圓環(huán)等分成m 段圓柱,則每一段圓柱的圓心角(Φ)可表示為
然后計(jì)算圓柱體上4 個(gè)頂點(diǎn)的具體坐標(biāo);把圓柱體的截面劃分成n 個(gè)等份,每一部分圓弧對應(yīng)的圓心角(ε)可表示為
假設(shè)首個(gè)圓柱是位于2 條直管中較細(xì)的直管處,那么在圓環(huán)與細(xì)管銜接的位置,圓環(huán)的半徑r0就是細(xì)管半徑,根據(jù)這一等式可以在兩者的銜接處建立起坐標(biāo)系。另外,把圓環(huán)的圓心O 作為圓柱體所在坐標(biāo)系的原點(diǎn),設(shè)圓環(huán)圓心與銜接處細(xì)管頂面圓心的連線方向?yàn)閤 軸,那么與x 軸垂直、指向圓環(huán)方向的直線即為y 軸,與x-y形成的平面垂直的平面軸線即為z 軸。在該三維坐標(biāo)系中,假設(shè)原點(diǎn)O的坐標(biāo)表示為O(x0、y0、z0),那么任意一個(gè)頂點(diǎn)A的坐標(biāo)可表示為A(x1、y1、z1),其中x1、y1、z1的值分別由以下等式求得
在求出頂點(diǎn)A 的三維坐標(biāo)后,可按照上述方法繼續(xù)求得其他3 個(gè)頂點(diǎn)B、C、D 的三維坐標(biāo),這樣就可以確定圓柱上所有頂點(diǎn)坐標(biāo)。
3.3.3 后續(xù)圓柱體頂點(diǎn)坐標(biāo)的計(jì)算 在計(jì)算得到首個(gè)圓柱的頂點(diǎn)坐標(biāo)后,后續(xù)其他圓柱的頂點(diǎn)坐標(biāo)計(jì)算方法與此類似。需要注意的是,后面的圓柱半徑呈現(xiàn)出遞增趨勢,因此在實(shí)際計(jì)算時(shí)還應(yīng)考慮半徑變化對頂點(diǎn)坐標(biāo)計(jì)算帶來的影響。這里簡要概述后續(xù)圓柱的頂點(diǎn)坐標(biāo)計(jì)算流程:
步驟1:分別獲取2 條直管的半徑,設(shè)較細(xì)的直管半徑為r1,較粗的直管半徑為R1。按照上文提供方法,對該圓環(huán)進(jìn)行劃分,將其分解成n 段。則每一段圓柱半徑的增加量?r 的計(jì)算公式為
步驟2:假設(shè)當(dāng)前已經(jīng)完成繪制的圓柱體個(gè)數(shù)為p,則當(dāng)前的圓柱半徑(rm+1)可用下式求出
在求出rm+1的值后,可以根據(jù)上文提供的方法計(jì)算出該圓柱4 個(gè)頂點(diǎn)的具體坐標(biāo)。在計(jì)算頂點(diǎn)坐標(biāo)時(shí)要注意,公式中的α 不是圓柱的圓心角,而是當(dāng)前圓柱之前所有圓柱圓心角的和。例如,在求解第3 個(gè)圓柱體的頂點(diǎn)坐標(biāo)時(shí),公式中α 為第1 個(gè)和第2 個(gè)圓柱的圓心角之和。
按照上述方法求出彎管處全部圓柱的頂點(diǎn)坐標(biāo)后,繼續(xù)將4 個(gè)頂點(diǎn)構(gòu)成的四邊形做拆除處理,得到2 個(gè)三角形。然后把所有的三角形按照順序連接,即可得到三角形帶。利用三角形帶建立Triangle Strip 結(jié)構(gòu)的Multipath 對象,即可繪制最終的彎管模型。根據(jù)上述計(jì)算方法可以發(fā)現(xiàn),異徑管線銜接建模中使用到的彎管,其精細(xì)程度主要取決于兩個(gè)因素,即劃分出來的圓柱個(gè)數(shù)、圓柱表面劃分的四邊形個(gè)數(shù)。彎管精細(xì)程度與這兩個(gè)因素呈正相關(guān),建模時(shí)要想得到足夠精確的彎管模型,必須要盡可能的劃分多個(gè)圓柱,并在每個(gè)圓柱上盡可能多的劃分四邊形,才能保證彎管與2 條異徑直管無縫銜接。當(dāng)然,彎管越精細(xì),意味著計(jì)算量越大,建模效率相應(yīng)降低,因此在實(shí)際建模中需要根據(jù)建模需求合理確定圓柱個(gè)數(shù)和四邊形個(gè)數(shù),在建模精度與建模效率上達(dá)到統(tǒng)籌兼顧。
城市地下管線在投入運(yùn)行以后,由于管材老化或外力破壞等因素的影響,可能會(huì)出現(xiàn)爆管情況。這時(shí)需要精確鎖定爆管位置,然后及時(shí)采取修復(fù)措施,將管線介質(zhì)泄漏帶來的負(fù)面影響降至最低?;贏rcGIS 建模的三維爆管分析技術(shù),通過建立幾何網(wǎng)絡(luò)模型的方式,用若干的點(diǎn)和線來表示地下管線的長度、流向。基于ArcGIS建模的爆管位置尋找流程為:
首先在建立起來的幾何網(wǎng)絡(luò)中設(shè)置一個(gè)網(wǎng)絡(luò)標(biāo)記,該標(biāo)記包含了多種特征元素,例如特征ID、特征Sub 等,因此每個(gè)網(wǎng)絡(luò)標(biāo)記可對應(yīng)唯一確定的爆管位置。然后利用沿線百分比參數(shù),找出爆管點(diǎn)所屬的爆管線,并標(biāo)記該爆管線的起止點(diǎn)。在幾何網(wǎng)絡(luò)模型中,管線可以顯示內(nèi)部介質(zhì)的流向,這樣就可以利用ArcGIS 提供的網(wǎng)絡(luò)流量追蹤接口,沿相反的方向查詢距離最近的節(jié)點(diǎn)。這樣一來,維修人員就可以及時(shí)關(guān)閉節(jié)點(diǎn)閥門,一方面是及時(shí)控制管線介質(zhì)泄漏,減少資源損失;另一方面也能為后續(xù)的管線維修作業(yè)創(chuàng)造有利條件。由此可見,基于ArcGIS 建模的三維爆管技術(shù),可以快速、準(zhǔn)確找到爆管位置,在城市地下管線的日常檢修和故障維修中發(fā)揮了重要作用。
基于GIS 技術(shù)構(gòu)建城市地下管線的三維模型,可以使各類管線的空間關(guān)系變得更加清晰,保證管線段與管件之間的更加適配,從而為下一步城市地下管線的施工提供重要依據(jù),本研究選擇Arc GIS Engine 軟件進(jìn)行了城市地下管網(wǎng)三維模型的構(gòu)建,并重點(diǎn)介紹了等徑管線和異徑管線的銜接建模方法。從實(shí)踐來看,在等徑管線的建模中,可以使用圓球銜接,需要保證圓球直徑與兩端管線直徑保持一致;在異徑管線的建模中,則需要使用彎管銜接。本研究提出了一種劃分圓柱,并在圓柱表面劃分四邊形的分解方法構(gòu)建彎管模型,通過計(jì)算合理確定圓柱及四邊形的個(gè)數(shù),使彎管精度達(dá)到建模要求,實(shí)現(xiàn)了異徑管線的順利銜接。