江 禹
(中鐵大橋科學研究院有限公司,武漢 430034)
鐵路養護維修GIS中里程與坐標的轉換
江 禹
(中鐵大橋科學研究院有限公司,武漢 430034)
為方便鐵路養護維修,實現設備與病害在地圖中的定位,以甘泉鐵路管養修信息系統開發為例,探討了里程與坐標相互轉換的方法。主要闡述了里程點坐標轉換的數學模型、計算方法和實現過程,并通過實例驗證了轉換的精度和可靠性。結果表明,該算法易于編程實現,轉換精度較高,適用于鐵路養護維修中設備與病害的定位。
GIS;坐標轉換;里程;鐵路
線性參照系統是從特定參照點沿著線性要素的相對距離來描述空間位置的坐標系統,在基于線性網絡的領域中得到廣泛應用,例如道路、河流、管線等。線性參照系統對空間位置的表達主要以線要素、參照原點和相對距離為基本要素,其中,參照原點和相對距離共同定義線性參照方[1]。為了方便地表達和檢索設備(橋梁、隧道、涵渠以及附屬設施等)及病害在鐵路線路中所處的位置,鐵路養護維修中設備及病害的位置通常以里程的方式表達。里程是典型的線性參照系統,以線路和中心里程值組合LM=(L,M)的方式來定義,因此,里程包含兩方面的信息:所屬線路和中心里程值。而在WebGIS中,通常采用Web墨卡托投影坐標系來定位要素,以二維坐標P=(X,Y)的方式表達,反映要素的真實地理位置和空間分布。里程是一維線性參照系,Web墨卡托投影坐標是二維平面坐標系,兩種坐標系完全不同,需要解決兩者的對應關系[2]。
甘泉鐵路管養修信息系統原始資料中所有的設備都是以里程的方式定義空間位置,為將設備在WebGIS中以點要素的方式定位在地圖上,需要將設備的里程轉換為Web墨卡托投影坐標,即里程點坐標正算。當管養維修人員巡檢設備時,為了方便檢索設備,并記錄病害的里程信息,需要將電子化巡檢設備通過GPS采集到的坐標轉換為里程,即里程點坐標反算。鐵路里程線性參照系需要建立在線要素和參照原點的基礎上,以相對于原點的距離表達空間位置,因此,鐵路線要素和參照原點是里程與坐標轉換的數據基礎。
1.1 里程點坐標正算
里程點坐標正算是將里程轉換為平面坐標,已知P點的里程是(L,M),為求取P點的平面坐標(Px,Py),主要步驟如下:
(1)查找鄰近控制點。遍歷所有控制點的里程值Mi,查找出P點與控制點的里程差|M-Mi|最小的控制點Cn,即鄰近控制點,其順序號為n,里程值為Mn。如果P點里程值大于鄰近控制點Cn,則P點位于鄰近控制點Cn的前進方向,否則位于后退方向。
(2)查找P點所在線段VmVm+1。如果P點位于Cn的前進方向,則P點的位置正向推算。從控制點Cn開始,依據Mj+1=Mj+Dj推算節點的里程,如果存在j,使得Mj<M≤Mj+1成立,則取m=j,Vm點里程值為Mm。如果P點位于Cn的后退方向,則P點的位置逆向推算。從控制點Cn開始,依據Mj-1=Mj-Dj,推算節點的里程,如果存在j,使得Mj-1<M≤Mj成立,則取m=j,Vm點里程值為Mm。
(3)計算P點平面坐標。已知線段VmVm+1兩端節點的里程分別為Mm和Mm+1,平面坐標分別為(Vmx,Vmy)和(V(m+1)x,V(m+1)y),VmVm+1之間的直線距離為D,可以通過線性內插求取P點的平面坐標(Px,Py),P點的坐標計算公式如式(1)所示。

1.2 里程點坐標反算
里程點坐標反算是將平面坐標轉換為里程,已知P點的平面坐標(Px,Py),為求取P點的里程(L,M),主要包含3個步驟。
1.2.1 判斷坐標點所屬線路[3]
要判斷定位點P所屬線路,即確定P點到地圖上各條線路距離最近的折線。在本文中定義:點到折線中各線段距離的最小值為點到折線距離。點P到折線L距離D的計算公式可表達為D=Min{Dpi},其中,Dpi為點P到折線中各線段的距離。
點到線段距離的計算與點到直線距離的計算二者之間存在一定的差別,求點到線段距離時需要考慮參考點在沿線段所在直線方向的投影點是否在線段上,若在線段上則可采用點到直線距離公式,如圖1a所示;否則,點到線段的距離為點到線段兩個端點距離的最小值,如圖1b和圖1c所示。

圖1 點到線段距離
可以通過判斷A和B是否為鈍角,確定點和線段的關系屬于上述3種情況的哪一種。若a2>b2+p2,則A為鈍角,否則為銳角或者直角。依據相同的方法可以判B是否為鈍角。若A和B都不是鈍角,則屬于圖1a所示情況;若A是鈍角,則屬于圖1b所示情況;若B是鈍角,則屬于圖1c所示情況。綜合上述3種情況,點到線段的距離可表達為式(2)所示,其中第1種情況是通過海倫公式計算點到直線距離,l=(a+b+c)/2。

通過計算點P到折線L中各個線段的距離Dpi,可以得出點P到折線L的距離D=Min{Dpi}。若地圖中存在多條線路,則需要查找點P到折線L的距離Dj的最小值,對應的路線就是坐標點P的所屬路線。為了保證結果的有效性,需要設定閾值Mmax,當點P到所有折線距離的最小值都比Mmax大時,判斷P點不屬于地圖中的任何線路。
由于一條折線的組成線段很多,逐個計算點到線段的距離,計算量會較大。可以通過設定閾值,定義搜索圓的方式篩選需要參與計算的線段,減少計算量。以P點為圓心,R為半徑遍歷所有的折線節點,在搜索圓Op以內的節點關聯線段都參與點到線段距離的計算。如圖2所示,折線L1的節點V11,折線L2的節點V21和V22都在搜索圓Op以內,則與節點集合V={V11,V21,V22}相關聯的線段集合LV={V10V11,V11V12,V20V21,V21V22,V22V23}都要參與點到線段距離計算。
1.2.2 計算線路中相鄰節點的里程值
在確定坐標點所屬路線時,已經計算出P點到折線L的距離D,對應的線段為ViVi+1。要計算出P點的里程之前,首先需要推算出線段ViVi+1節點的里程值Mi和Mi+1。

圖2 篩選折線節點
根據Vi在線路中的順序號,向前進方向和后退方向查找最鄰近的控制點Ca和Cb(順序號分別為a和b),據Ca和Cb的里程值Ma和Mb推算Mi。如果Ca不存在,Cb存在,則Mi由后退方向控制點Cb向前推算;如果Ca存在,Cb不存在,則Mi由前進方向控制點Ca向后推算;如果Ca和Cb都存在,則Mi由兩個方向共同推算,如果兩個方向推算結果的差值小于設定的閾值,則按照反距離權重加權平均求取結果,如果差值超過閾值,則說明基礎數據有誤。其計算公式可以表達為式(3)所示。同理可以求取出節點Vi+1的里程值Mi+1。

1.2.3 計算坐標點的里程值
根據線段ViVi+1和P點與線段ViVi+1的位置關系,可以計算出P點的里程M。P點在直線ViVi+1上的投影為點Q,當Q位于Vi側延長線上,則P點里程M等于Vi點里程;當Q點位于Vi+1側延長線上,則P點里程M等于Vi+1點里程;當Q點位于線段ViVi+1內時,可以通過勾股定理計算出P點在線段內投影點所在位置,通過線性內插,可以求出投影點的里程,P點的里程就是投影點的里程[4]。綜合3種情況,P點的里程M可以表達為式(4)所示,其中,Lpi為定位點到節點Vi+1的距離。

2.1 數據基礎
已有的數據包括甘泉線(K20+902.940到K354+ 460.40)的線要素和沿線85個控制點(間隔約3~5 km)。線要素是通過車載GPS進行快速幾何線型采集所得,采用GPS單點動態定位方式,采樣頻率為1 HZ,采樣間隔約為30 m[5~6]。沿線控制點包含里程和平面坐標兩套參照系,選取其中的35個點作為線路里程控制點(間隔約10 km)。
車載GPS采集到甘泉鐵路線要素超過10 000個的采樣點,數據量較大,需要進行數據點的壓縮和簡化。由于實際的鐵路線路以直線和平滑曲線為主,不存在突變的拐點,可以使用道格拉斯-普克算法對折線的節點進行抽希[7]。該算法通過閾值的設置,可保留線要素較大彎曲形態上的特征點,從而整體上有效地保持了線要素的形態特征。簡化后的甘泉鐵路線要素節點數量約為簡化前的1/5,但線要素的整體形態特征得以保持。
從簡化的甘泉鐵路的線要素中提取出線要素的所有節點,按照連接順序存儲到數據庫中,并用人工處理的方法將35個線路里程控制點插入線路中,建立如表1所示的數據結構。表1中,X與Y字段是采樣點WGS84坐標系經過Web墨卡托投影后的平面坐標。里程字段不為空的記錄是線路里程控制點,為空的記錄是線要素的普通節點。距離字段是該記錄對應節點到前一個節點的直線距離,通過兩個節點的坐標差計算得出。

表1 線路節點數據表 (單位/m)
2.2 實現
按照上述的轉換算法,以Microsoft SQL Server2008為數據庫管理平臺,后臺使用.NET程序語言,前端使用HTML+CSS+JS,并基于百度地圖JavaScript API開發了甘泉鐵路管養修信息系統中相應的坐標轉換模塊,該模塊主要包含里程與坐標轉換的正算和反算的功能。其中,坐標正算的功能是:輸入設備所在的線路和中心里程,可以計算出設備的經緯度坐標,并在地圖上標識出來;坐標反算的功能是:鼠標在地圖上任意點擊一個位置,即可以判斷該點所屬的線路,并給出在該線路上的里程值。
2.3 精度驗證
為驗證里程與坐標轉換模型及算法的精度和有效性,從甘泉鐵路沿線選取5個里程樁用于里程與坐標轉換的正算驗證,5個里程樁用于反算驗證[8]。正算驗證結果如表2所示,偏距是計算坐標與實測坐標的距離值,由于算法的保證,計算出來坐標一定在線路上,所以偏距是計算坐標與實測坐標沿線路方向的距離。反算驗證結果如表3所示,里程差為計算里程值減去實際里程值。

表2 里程與坐標轉換正算結果表 (單位/m)

表3 里程與坐標轉換反算結果表 (單位/m)
誤差分析:5組正算結果中,計算坐標與實測坐標的偏距最大值為24.234 m。5組反算結果中,計算里程與實際里程差值的絕對值最大為21.263 m。誤差的主要來源是基礎數據,基礎數據的誤差都會帶入到轉換誤差中,主要包括以下幾個方面:
(1)甘泉鐵路的線要素是GPS單點定位的方式采集離散點連成折線所得,折線節點的點位精度為米級。
(2)原始數據采樣的間隔約為30 m,用折線模擬實際的曲線,存在模型誤差,并且為減少數據量和計算量,采用道格拉斯-普克算法抽希了采樣點,使得采樣點的間隔變大。
(3)由于條件的限制,部分采樣點結果的穩定性較差,跳躍性較大。原始數據在部分區域存在點的位置明顯偏離線路的情況,在數據處理過程中需要剔除這些粗差點。原始數據在部分區域存在丟失采樣點的情況,使得采樣點間隔變大,存在丟失線要素形態特征點的可能。以上情況都會使得線路基礎數據的精度損失。
鐵路養護維修GIS和電子化巡檢養護過程中,一維線性參照系中的里程與二維平面參照系中的坐標轉換是一項重要的功能。本文在考慮鐵路幾何線性特征的基礎上,建立了里程與坐標之間轉換的模型,提出了較為有效和實用的正算和反算的具體算法,并在甘泉鐵路管養修信息系統開發中實現了該功能模塊。通過鐵路線要素數據采集和里程控制點的插入(建立參考原點),在數據層上建立了甘泉鐵路的里程線性參照系;運用本文提出的算法和編制的程序實現了系統中里程與平面坐標的相互轉換;通過已知的控制點對轉換的結果進行有效性檢驗和精度驗證。
本文提出的數據采集和處理方法比較簡單有效,計算模型和算法比較有效且易于實現,其轉換精度基本能滿足鐵路養護維修中設備定位和病害定位的需求,可為相關的信息系統開發提供借鑒。
[1]高 勇,張 晶,張 毅,等.一種基于地標的線性參照方法[J].北京大學學報(自然科學版),2010,46(1):109-114.
[2]劉星辰,楊武年.基于VB的道路中樁坐標數據計算[J].地理空間信息,2013,11(6):135-138.
[3]郝忠孝,王玉東,何云斌.空間數據庫平面線段近鄰查詢問題研究[J].計算機研究與發展,2008(9):1539-1545.
[4]李愛民,趙遠方,姚付良.基于公路GIS的中線里程值實時顯示算法[J].北京測繪,2010 (3):27-29.
[5]孟曉林,姚連璧,朱照宏,等.公路地理信息系統中坐標與里程的轉換[J].同濟大學學報(自然科學版),1999,27(5):603-607.
[6]孟曉林.適用于公路網規劃和公路管理的地理信息系統(HGIS)[J].測繪學報,1998(4):370-370.
[7]于 靖,陳 剛,張 笑,等.面向自然岸線抽稀的改進道格拉斯—普克算法[J].測繪科學,2015(4):23-27.
[8]李德光.鐵路線路中線空間坐標與里程換算模型的研究[D].成都:西南交通大學,2012.
責任編輯 王 浩
Conversion between coordinates and mileage in GIS of railway maintenance and repair
JIANG Yu
( China Railway Bridge Science Research Institute,Co.Ltd.,Wuhan 430034,China)
To facilitate the maintenance and repair of railways and locate equipment and disease in the map,the Maintenance and Repair Information System of Gan-Quan Railway was selected as an example and inter conversion method between mileage and coordinate was discussed.This article mainly expounded the mathematical model,calculation method and implementation process of conversion,verifed the accuracy and reliability of this method with example.The results showed that the conversion method was easy to program and the conversion precision was relatively high.So that it was suitable for the location of equipment and diseases in the railway maintenance and repair.
GIS;coordinate transformation;mileage;railway
U216.42:TP39
A
1005-8451(2016)08-0031-05
2016-01-20
神華集團科技創新項目(SHGF-12-49)。
江 禹,助理工程師。