孔德立
(中鐵第五勘察設(shè)計院集團有限公司 北京市 102600)
鐵路定線是在地形圖或地面上選定線路的方向,確定線路的空間位置,并布置各種建筑物,是鐵路勘測設(shè)計中決定全局的重要工作[1]。線路的空間是由它的平面和縱斷面決定的。線路平面是線路中心線在水平面上的投影,表示線路平面位置;線路縱斷面是沿線路中心線所作的鉛垂剖面展直后線路中心線的立面圖,表示線路的起伏情況[2]。
在鐵路定線時,需要根據(jù)平面位置確定線路的起伏情況,那么確定地面線是非常關(guān)鍵的。由于地形圖比較大,在三維數(shù)模[3]時的數(shù)據(jù)量就非常大,再根據(jù)線位確定出地面線,那么效率就非常低了。同時線路定線時,需要頻繁的確定地面線,設(shè)計人員每移動一次線位,都需要等待較長的時間,降低了生產(chǎn)效率。因此,為保證設(shè)計的順暢性,快速提取地面點是關(guān)鍵的一步。
設(shè)計人員在鐵路選線設(shè)計時,由于鐵路線路較長,橫跨的地形圖比較多,設(shè)計人員一般都是在AutoCAD下根據(jù)需要附加當(dāng)前需要的地形圖作為外部參照[4]的。而設(shè)計時,又需要全線的數(shù)據(jù)生成地面點,那么對地形圖的數(shù)據(jù)進(jìn)行過濾、簡化處理就十分必要。
首先建立一個數(shù)據(jù)庫文件,用于存儲地形圖中等高線上的點,稱為“.dgxpt”文件。選擇多個連續(xù)的地形圖文件后,設(shè)置過濾條件對源數(shù)據(jù)進(jìn)行過濾。過濾條件有采集實體所在圖層、采集實體類型、高程點范圍、塊實體名、等高線采集步長。其中高程采集范圍用于剔除無效高程數(shù)據(jù);等高線步長用于獲取等高線上的點。等高線上的點往往比較密,一般為1米一個點,而設(shè)計時,5米或者10米一個點就能滿足設(shè)計需求,且能大大減少數(shù)據(jù)量。
下面是對相同的數(shù)據(jù)量的地形圖,分別針對5m、10m、20m步長,得到dgxpt文件的大小是10341kb、5077kb、732kb。由此可見,設(shè)置等高線采集點步長對原始數(shù)據(jù)點影響是比較大的。
數(shù)據(jù)采用后,利用類似于四叉樹的思想就行分組,也就是將一個矩形范圍劃分為四個小的子范圍。收集到所有點后,會得到所有點的一個最大范圍矩形包圍框;然后將這個最大范圍包圍框分成四個塊;然后再將每個塊繼續(xù)劃分為四個子塊,直到最小子塊邊長大于一定長度時,分塊結(jié)束。在分塊過程中,如果子塊內(nèi)沒有點數(shù)據(jù),那么將不會繼續(xù)分塊。
圖1中,灰色塊內(nèi)是含有數(shù)據(jù)的最小范圍,跟選擇地形圖的實際情況是一致的。數(shù)據(jù)在檢索時,首先判段當(dāng)前設(shè)計線段是否在塊范圍內(nèi),如果不在,則跳過;如果在,則用同樣的方法判斷子塊;如果子塊是最小范圍,且與設(shè)計線段有相交,那么取出數(shù)據(jù),參與計算。
(1)數(shù)據(jù)塊結(jié)構(gòu):


圖1:數(shù)據(jù)分塊后顯示圖

(2)遞歸生成子塊的偽代碼:

(3)將點放置到對應(yīng)的最小子塊中:


圖2:處理過程流程圖

通過以上4步操作,就可以完成數(shù)據(jù)結(jié)構(gòu)的建立。將數(shù)據(jù)保存成XML格式。


調(diào)整線路平面時,都是局部線位的調(diào)整,然而局部線位是未知的;所以當(dāng)線位發(fā)生調(diào)整時,僅對變動的部分進(jìn)行地面線更新。加載及處理數(shù)據(jù)時,也是僅對局部的數(shù)據(jù)進(jìn)行處理[5]。
中線分塊原則,按直線和曲線分塊,其中曲線采用一定步長的直線模擬[6]。這樣,中線全是由直線構(gòu)成,這條用直線模擬而成的中線,稱為近似中線。地面線將由近似中線切割而成。近似中線與三角網(wǎng)切割時,每一條直線段和該直線段切割三角網(wǎng)得到的結(jié)果都被記錄下來。當(dāng)平面線位發(fā)生調(diào)整時,將重新生成近似中線,并且與三角網(wǎng)進(jìn)行切割。調(diào)整后的近似中線和原來的近似中線進(jìn)行比較(也就是近似中線的每條直線段進(jìn)行比較),如果直線段相同,說明這條直線段沒發(fā)生變化,否則說明發(fā)生了變化,需要重新與三角網(wǎng)進(jìn)行切割。
由于中線是由直線和曲線兩部分組成,曲線部分采用一定長度的直線進(jìn)行模擬。這樣中線全部由直線線段組成。當(dāng)設(shè)計人員移動交點JD[i]來調(diào)整平面位置時,只影響JD[i-2]、JD[i-1]、JD[i]、JD[i+1]、JD[i+2]相關(guān)的位置。根據(jù)近似中線,生成一個構(gòu)網(wǎng)范圍,構(gòu)建三角網(wǎng)時,僅對構(gòu)網(wǎng)范圍內(nèi)的點構(gòu)建三角網(wǎng)。平面調(diào)整時,只要不超出構(gòu)網(wǎng)的范圍,即可一次構(gòu)網(wǎng)后,重復(fù)使用。
每次切割的結(jié)果都保存在一個結(jié)構(gòu)中,結(jié)構(gòu)中不僅保存切割的點,也保存切割線的起終點。當(dāng)平面發(fā)生變化,需要再次切割地面線時,都會找出發(fā)生變化的切割點,僅處理發(fā)生變化的切割點即可。
第一步,將地形圖中的等高線按照一定步長,生成數(shù)據(jù)文件。
第二步,根據(jù)當(dāng)前中線形成近似中線,再根據(jù)近似中線得到構(gòu)網(wǎng)范圍。
第三步,根據(jù)數(shù)據(jù)文件和構(gòu)網(wǎng)范圍,構(gòu)建三角網(wǎng)。在構(gòu)網(wǎng)時,僅將與構(gòu)網(wǎng)范圍重合數(shù)據(jù)加入。
第四步,調(diào)整平面。當(dāng)調(diào)整平面后,超出目前的構(gòu)網(wǎng)范圍,則需要重新構(gòu)建三角網(wǎng);否則不需要重新構(gòu)網(wǎng)。
第五步,根據(jù)當(dāng)前平面得到近似中線?;刂恋诙剑貜?fù)。處理過程如圖2所示。
為了提高切割地面線的效率,在不影響設(shè)計精度的情況下,解決方案主要集中在精簡原始數(shù)據(jù)量和優(yōu)化切割方法上。在數(shù)據(jù)量和精度要求都比較高的情況下,解決方案的處理結(jié)果是比較理想的,已成功應(yīng)用于工程實踐。