一種生成鐵路線路經緯度坐標的方法和系統與流程
2023-05-18 18:58:16

本發明涉及鐵路行業鐵路信息化領域,尤其涉及生成鐵路線路經緯度坐標的方法和系統。
背景技術:
在地理信息系統(gis,geographicinformationsystem)中,地圖由各種圖元組成。圖元按照位置形狀不同分為點圖元、線圖元和面圖元三類。點圖元用一個經緯度坐標(以下簡稱坐標)來表示位置信息。線圖元用一個坐標序列來表示位置信息。面圖元用一個首尾相接的坐標序列所圍成的閉合區域來表示位置信息。在gis中,鐵路線路是一種線圖元,用一個坐標序列表示。在鐵路地理信息化領域,鐵路線路信息一般包括線路名稱、線路編號(簡稱線路號)、行別(用來區分複線、或多線鐵路)、公裡標、坐標等屬性。
目前生成鐵路線路坐標的方法主要有兩種,一種是由專業人員使用測量設備沿鐵路線路手動測量記錄,該方法有以下缺點:第一、測量工作量巨大,需要大量的專業測量人員;第二、測量人員需要攜帶測量設備徒步沿線測量,工作強度很大;第三、測量人員在運營的鐵路線路上進行測量作業時需要時刻注意安全,存在安全隱患。
另一種方法是在機車上安裝專業測量設備,由機車在被測線路上運行,測量設備自動記錄線路的坐標信息。該方法解決了專業人員手動測量方法存在的三種缺點,但存在以下缺點:第一、測量得到的坐標信息沒有和線路公裡標進行關聯,並且目前還沒發現一種很好的自動關聯方法來進行坐標和公裡標的自動關聯;第二、需要採購昂貴的專業測量設備、並且需要專業人員安裝、隨車操作專業設備進行測量,費用巨大。
另外這兩種方法還存在一個線路坐標信息日常維護的共同問題,當有新線路建成需要新增線路坐標信息,或者因既有線路改造發生線路坐標變化需要更新坐標信息時,都要及時採集坐標數據,更新線路坐標信息。
技術實現要素:
以下給出一個或多個方面的簡要概述以提供對這些方面的基本理解。此概述不是所有構想到的方面的詳盡綜覽,並且既非旨在指認出所有方面的關鍵性或決定性要素亦非試圖界定任何或所有方面的範圍。其唯一的目的是要以簡化形式給出一個或多個方面的一些概念以為稍後給出的更加詳細的描述之序。
本發明的目的在於解決上述技術問題,提供了一種生成鐵路線路經緯度坐標的方法和系統,利用從lmd系統獲取的機車經緯度坐標和運行線路信息,利用統計學原理和大數據技術自動生成鐵路線路經緯度坐標。
本發明的技術方案為:本發明揭示了一種生成鐵路線路經緯度坐標的方法,包括:
步驟1:設置需要生成線路經緯度坐標的鐵路線路的線路號、行別、數據時間段,其中同一日期、線路號和行別的記錄保存在同一個記錄文件中;
步驟2:設置線路坐標點間距,基於線路坐標點間距和線路最大公裡標生成線路點序列;
步驟3:生成坐標統計數組用於保存線路點序列的坐標統計信息;
步驟4:根據設置的線路號、行別、數據時間段確定要使用的記錄文件的列表;
步驟5:讀取列表中的每一記錄文件中的每一條記錄,根據記錄的公裡標確定坐標統計數組的元素並基於數組中的元素以及機車經緯度坐標計算線路坐標點的平均經度和平均緯度;
步驟6:從所有記錄中剔除噪點記錄;
步驟7:以剔除噪點記錄後的所有記錄為對象,按照步驟5重新計算線路坐標點的平均經度和平均緯度;
步驟8:保存線路坐標點的平均經度、平均緯度和公裡標,得到鐵路線路的經緯度坐標。
根據本發明的生成鐵路線路經緯度坐標的方法的一實施例,坐標統計數組的元素是一個結構體,包括了記錄條數、經度累計、緯度累計、平均經度、平均緯度的欄位。
根據本發明的生成鐵路線路經緯度坐標的方法的一實施例,步驟6的剔除噪點記錄進一步包括:
若記錄中的經度和平均經度的差值或者緯度和平均緯度的差值大於一閾值,則將該記錄判定為噪點記錄。
根據本發明的生成鐵路線路經緯度坐標的方法的一實施例,步驟6的剔除噪點記錄進一步包括:
將所有記錄中距離平均經度、平均緯度的坐標點的距離最大的前設定比例中的記錄作為噪點記錄做剔除處理。
根據本發明的生成鐵路線路經緯度坐標的方法的一實施例,步驟6的剔除噪點記錄進一步包括:
將所有記錄中經度最大的前設定比例中的記錄、經度最小的前設定比例中的記錄、緯度最大的前設定比例中的記錄、以及緯度最小的前設定比例中的記錄均作為噪點記錄做剔除處理。
本發明還揭示了一種生成鐵路線路經緯度坐標的系統,包括:
預處理模塊,設置需要生成線路經緯度坐標的鐵路線路的線路號、行別、數據時間段,其中同一日期、線路號和行別的記錄保存在同一個記錄文件中;
線路點序列生成模塊,設置線路坐標點間距,基於線路坐標點間距和線路最大公裡標生成線路點序列;
坐標統計數組生成模塊,生成坐標統計數組用於保存線路點序列的坐標統計信息;
記錄文件列表生成模塊,根據設置的線路號、行別、數據時間段確定要使用的記錄文件的列表;
平均經緯度首次計算模塊,讀取列表中的每一記錄文件中的每一條記錄,根據記錄的公裡標確定坐標統計數組的元素並基於數組中的元素以及機車經緯度坐標計算線路坐標點的平均經度和平均緯度;
噪點剔除模塊,從所有記錄中剔除噪點記錄;
平均經緯度再次計算模塊,以剔除噪點記錄後的所有記錄為對象,根據記錄的公裡標確定坐標統計數組的元素並基於數組中的元素以及機車經緯度坐標計算線路坐標點的平均經度和平均緯度;
經緯度坐標獲得模塊,保存線路坐標點的平均經度、平均緯度和公裡標,得到鐵路線路的經緯度坐標。
根據本發明的生成鐵路線路經緯度坐標的系統的一實施例,坐標統計數組的元素是一個結構體,包括了記錄條數、經度累計、緯度累計、平均經度、平均緯度的欄位。
根據本發明的生成鐵路線路經緯度坐標的系統的一實施例,噪點剔除模塊的處理是若記錄中的經度和平均經度的差值或者緯度和平均緯度的差值大於一閾值,則將該記錄判定為噪點記錄。
根據本發明的生成鐵路線路經緯度坐標的系統的一實施例,噪點剔除模塊的處理是將所有記錄中距離平均經度、平均緯度的坐標點的距離最大的前設定比例中的記錄作為噪點記錄做剔除處理。
根據本發明的生成鐵路線路經緯度坐標的系統的一實施例,噪點剔除模塊的處理是將所有記錄中經度最大的前設定比例中的記錄、經度最小的前設定比例中的記錄、緯度最大的前設定比例中的記錄、以及緯度最小的前設定比例中的記錄均作為噪點記錄做剔除處理。
本發明還揭示了一種存儲介質,存儲介質上存儲有電腦程式指令,所述程序指令用於執行如前所述的生成鐵路線路經緯度坐標的方法中的步驟。
本發明還揭示了一種計算機系統,包括處理器和存儲器,存儲器上存儲有電腦程式指令,所述程序指令在處理器中運行以執行如前所述的生成鐵路線路經緯度坐標的方法中的步驟。
本發明對比現有技術有如下的有益效果:本發明是利用從lmd系統獲取的機車經緯度坐標和運行線路信息,利用統計學原理和大數據技術自動生成鐵路線路經緯度坐標,其中利用統計學原理和大數據解決了普通衛星模塊定位精度不夠的問題,利用機車上安裝的衛星定位模塊獲取機車當前位置的經緯度坐標,利用lkj獲取機車當前運行的鐵路線路號、行別、公裡標並以此建立經緯度坐標和線路公裡標之間的關聯,解決了鐵路線路坐標和公裡標進行關聯的問題。相比傳統技術,本發明不需要專業坐標測量人員,節省了人力成本,不需要專業坐標測量設備,節省了測量設備費用。
附圖說明
圖1示出了本發明的生成鐵路線路經緯度坐標的方法的實施例的流程圖。
圖2示出了本發明的生成鐵路線路經緯度坐標的系統的實施例的原理圖。
具體實施方式
在結合以下附圖閱讀本公開的實施例的詳細描述之後,能夠更好地理解本發明的上述特徵和優點。在附圖中,各組件不一定是按比例繪製,並且具有類似的相關特性或特徵的組件可能具有相同或相近的附圖標記。
生成鐵路線路經緯度坐標的方法的第一實施例
圖1示出了本發明的生成鐵路線路經緯度坐標的方法的實施例的流程。請參見圖1,下面是對本實施例的方法的實施步驟的詳細描述。
步驟s1:設置需要生成線路經緯度坐標的鐵路線路的線路號、行別、數據時間段,其中同一日期、線路號和行別的記錄保存在同一個記錄文件中。
在本步驟前有一個數據積累的處理,機車上一般都裝有衛星定位模塊和lkj裝置,車載tsc(機車車載無線傳輸裝置)定時從衛星定位模塊採集經緯度坐標,從lkj裝置採集線路號、行別、公裡標等機車運行線路信息,並將這兩種信息一起發往地面lmd(lkj設備運行監測管理系統)系統。
從lmd系統獲取機車經緯度坐標、線路號、行別、公裡標等記錄數據,將獲取到的記錄數據按照一定格式保存到記錄文件中,其中同一日期、線路號和行別的記錄保存在同一個文件中。這些文件中的數據就是本實施例的生成鐵路線路坐標信息的來源。其中lkj為非必要設備,可由其它能夠提供機車當前運行線路信息的設備如tax(機車安全信息綜合監測裝置)、cmd(中國機車遠程監測與診斷系統)車載設備等代替。車載衛星定位模塊為非必要設備,可由其它能夠提供機車當前經緯度坐標的設備如經緯度專業測量設備、手機等代替。lmd為非必要系統,可由lais(列車運行狀態信息系統)、cmd系統等能夠提供機車運行線路信息或經緯度信息的應用系統代替。
數據時間段表示使用開始日期到結束日期間的數據來生成線路坐標信息。
步驟s2:設置線路坐標點間距,基於線路坐標點間距和線路最大公裡標生成線路點序列。
線路坐標點間距d表示公裡標每隔多少米產生一個坐標點,根據間距d和線路最大公裡標m生成鐵路線路點序列p(序列中的線路點pi,0≤i≤m/d),線路點pi的公裡標為i*d,單位為米。
步驟s3:生成坐標統計數組用於保存線路點序列的坐標統計信息。
線路點序列p的每個線路點pi的坐標統計信息保存在坐標統計數組a的元素a[i],元素是一個結構體,結構體數據成員和用途說明如下表1。
表1坐標統計數據元素結構:
說明:採用億分之一度為單位是因為整型比浮點數計算速度快很多
步驟s4:根據設置的線路號、行別、數據時間段確定要使用的記錄文件的列表。
步驟s5:讀取列表中的每一記錄文件中的每一條記錄,根據記錄的公裡標確定坐標統計數組的元素並基於數組中的元素以及機車經緯度坐標計算線路坐標點的平均經度和平均緯度。
在這一步驟中,對記錄文件中的每條記錄按照以下步驟進行處理,直到所有記錄處理完成。
根據記錄的公裡標確定坐標統計數組元素,計算公式為:
坐標統計元素下標i=(記錄公裡標+作標點間距d/2)/d;(符號"/"表示整除)
然後對a[i]做以下操作:
a[i].記錄條數=a[i].記錄條數+1;
a[i].累計經度=a[i].累計經度+記錄的經度;
a[i].記錄條數=a[i].累計緯度+記錄的緯度。
接著計算平均經度和平均緯度,計算方式為:
對坐標統計數據a的每個元素,如果a[i].記錄條數>0,則令:
a[i].平均經度=a[i].累計經度/a[i].記錄條數;
a[i].平均緯度=a[i].累計緯度/a[i].記錄條數。
步驟s6:從所有記錄中剔除噪點記錄。
在第一實施例中,剔除噪點記錄的具體方式為:
首先設定噪點篩選條件s,對於某條記錄,如果滿足|記錄經度-平均經度|>s或者|記錄緯度-平均經緯度|>s,則認為該記錄為噪點記錄,否則為正常記錄。例如篩選條件s取值100000。
然後根據設定的篩選條件s剔除噪點記錄,具體方式為:
對於列表中的所有記錄文件中的每一記錄,其對應坐標統計數組元素a[i],對a[i]做以下操作:
如果|記錄經度-a[i].平均經度|>=篩選條件s或者|記錄緯度-a[i].平均緯度|>=篩選條件s,則該記錄為噪點記錄。對噪點記錄做以下處理:
a[i].記錄條數=a[i].記錄條數-1;
a[i].累計經度=a[i].累計經度-記錄的經度;
a[i].記錄條數=a[i].累計緯度-記錄的緯度。
步驟s7:以剔除噪點記錄後的所有記錄為對象,按照步驟s5重新計算線路坐標點的平均經度和平均緯度。
步驟s8:保存線路坐標點的平均經度、平均緯度和公裡標,得到鐵路線路的經緯度坐標。
坐標統計數組a中元素a[i]的平均經度、平均緯度即為線路點pi的坐標,將公裡標i*d和平均經度、緯度按順序保存即得到了鐵路線路經緯度坐標。
生成鐵路線路經緯度坐標的方法的第二實施例
圖1示出了本發明的生成鐵路線路經緯度坐標的方法的實施例的流程。請參見圖1,下面是對本實施例的方法的實施步驟的詳細描述。
步驟s1:設置需要生成線路經緯度坐標的鐵路線路的線路號、行別、數據時間段,其中同一日期、線路號和行別的記錄保存在同一個記錄文件中。
在本步驟前有一個數據積累的處理,機車上一般都裝有衛星定位模塊和lkj裝置,車載tsc定時從衛星定位模塊採集經緯度坐標,從lkj裝置採集線路號、行別、公裡標等機車運行線路信息,並將這兩種信息一起發往地面lmd系統。
從lmd系統獲取機車經緯度坐標、線路號、行別、公裡標等記錄數據,將獲取到的記錄數據按照一定格式保存到記錄文件中,其中同一日期、線路號和行別的記錄保存在同一個文件中。這些文件中的數據就是本實施例的生成鐵路線路坐標信息的來源。其中lkj為非必要設備,可由其它能夠提供機車當前運行線路信息的設備如tax、cmd車載設備等代替。車載衛星定位模塊為非必要設備,可由其它能夠提供機車當前經緯度坐標的設備如經緯度專業測量設備、手機等代替。lmd為非必要系統,可由lais、cmd系統等能夠提供機車運行線路信息或經緯度信息的應用系統代替。
數據時間段表示使用開始日期到結束日期間的數據來生成線路坐標信息。
步驟s2:設置線路坐標點間距,基於線路坐標點間距和線路最大公裡標生成線路點序列。
線路坐標點間距d表示公裡標每隔多少米產生一個坐標點,根據間距d和線路最大公裡標m生成鐵路線路點序列p(序列中的線路點pi,0≤i≤m/d),線路點pi的公裡標為i*d,單位為米。
步驟s3:生成坐標統計數組用於保存線路點序列的坐標統計信息。
線路點序列p的每個線路點pi的坐標統計信息保存在坐標統計數組a的元素a[i],元素是一個結構體,結構體數據成員和用途說明如下表1。
表1坐標統計數據元素結構:
說明:採用億分之一度為單位是因為整型比浮點數計算速度快很多
步驟s4:根據設置的線路號、行別、數據時間段確定要使用的記錄文件的列表。
步驟s5:讀取列表中的每一記錄文件中的每一條記錄,根據記錄的公裡標確定坐標統計數組的元素並基於數組中的元素以及機車經緯度坐標計算線路坐標點的平均經度和平均緯度。
在這一步驟中,對記錄文件中的每條記錄按照以下步驟進行處理,直到所有記錄處理完成。
根據記錄的公裡標確定坐標統計數組元素,計算公式為:
坐標統計元素下標i=(記錄公裡標+作標點間距d/2)/d;(符號"/"表示整除)
然後對a[i]做以下操作:
a[i].記錄條數=a[i].記錄條數+1;
a[i].累計經度=a[i].累計經度+記錄的經度;
a[i].記錄條數=a[i].累計緯度+記錄的緯度。
接著計算平均經度和平均緯度,計算方式為:
對坐標統計數據a的每個元素,如果a[i].記錄條數>0,則令:
a[i].平均經度=a[i].累計經度/a[i].記錄條數;
a[i].平均緯度=a[i].累計緯度/a[i].記錄條數。
步驟s6:從所有記錄中剔除噪點記錄。
在第二實施例中,剔除噪點記錄的具體方式為:
將與pi點相關的所有記錄中,距離a[i]平均經度、平均緯度坐標點的距離最大的前40%條記錄剔除(百分比可設定)。
步驟s7:以剔除噪點記錄後的所有記錄為對象,按照步驟s5重新計算線路坐標點的平均經度和平均緯度。
步驟s8:保存線路坐標點的平均經度、平均緯度和公裡標,得到鐵路線路的經緯度坐標。
坐標統計數組a中元素a[i]的平均經度、平均緯度即為線路點pi的坐標,將公裡標i*d和平均經度、緯度按順序保存即得到了鐵路線路經緯度坐標。
生成鐵路線路經緯度坐標的方法的第三實施例
圖1示出了本發明的生成鐵路線路經緯度坐標的方法的實施例的流程。請參見圖1,下面是對本實施例的方法的實施步驟的詳細描述。
步驟s1:設置需要生成線路經緯度坐標的鐵路線路的線路號、行別、數據時間段,其中同一日期、線路號和行別的記錄保存在同一個記錄文件中。
在本步驟前有一個數據積累的處理,機車上一般都裝有衛星定位模塊和lkj裝置,車載tsc定時從衛星定位模塊採集經緯度坐標,從lkj裝置採集線路號、行別、公裡標等機車運行線路信息,並將這兩種信息一起發往地面lmd系統。
從lmd系統獲取機車經緯度坐標、線路號、行別、公裡標等記錄數據,將獲取到的記錄數據按照一定格式保存到記錄文件中,其中同一日期、線路號和行別的記錄保存在同一個文件中。這些文件中的數據就是本實施例的生成鐵路線路坐標信息的來源。其中lkj為非必要設備,可由其它能夠提供機車當前運行線路信息的設備如tax、cmd車載設備等代替。車載衛星定位模塊為非必要設備,可由其它能夠提供機車當前經緯度坐標的設備如經緯度專業測量設備、手機等代替。lmd為非必要系統,可由lais、cmd系統等能夠提供機車運行線路信息或經緯度信息的應用系統代替。
數據時間段表示使用開始日期到結束日期間的數據來生成線路坐標信息。
步驟s2:設置線路坐標點間距,基於線路坐標點間距和線路最大公裡標生成線路點序列。
線路坐標點間距d表示公裡標每隔多少米產生一個坐標點,根據間距d和線路最大公裡標m生成鐵路線路點序列p(序列中的線路點pi,0≤i≤m/d),線路點pi的公裡標為i*d,單位為米。
步驟s3:生成坐標統計數組用於保存線路點序列的坐標統計信息。
線路點序列p的每個線路點pi的坐標統計信息保存在坐標統計數組a的元素a[i],元素是一個結構體,結構體數據成員和用途說明如下表1。
表1坐標統計數據元素結構:
說明:採用億分之一度為單位是因為整型比浮點數計算速度快很多
步驟s4:根據設置的線路號、行別、數據時間段確定要使用的記錄文件的列表。
步驟s5:讀取列表中的每一記錄文件中的每一條記錄,根據記錄的公裡標確定坐標統計數組的元素並基於數組中的元素以及機車經緯度坐標計算線路坐標點的平均經度和平均緯度。
在這一步驟中,對記錄文件中的每條記錄按照以下步驟進行處理,直到所有記錄處理完成。
根據記錄的公裡標確定坐標統計數組元素,計算公式為:
坐標統計元素下標i=(記錄公裡標+作標點間距d/2)/d;(符號"/"表示整除)
然後對a[i]做以下操作:
a[i].記錄條數=a[i].記錄條數+1;
a[i].累計經度=a[i].累計經度+記錄的經度;
a[i].記錄條數=a[i].累計緯度+記錄的緯度。
接著計算平均經度和平均緯度,計算方式為:
對坐標統計數據a的每個元素,如果a[i].記錄條數>0,則令:
a[i].平均經度=a[i].累計經度/a[i].記錄條數;
a[i].平均緯度=a[i].累計緯度/a[i].記錄條數。
步驟s6:從所有記錄中剔除噪點記錄。
在第三實施例中,剔除噪點記錄的具體方式為:
將與pi點相關的所有記錄中,經度最大的前10%條記錄,經度最小的前10%條記錄,緯度最大的前10%條記錄,緯度最小的前10%條記錄剔除(百分比可設定)。
步驟s7:以剔除噪點記錄後的所有記錄為對象,按照步驟s5重新計算線路坐標點的平均經度和平均緯度。
步驟s8:保存線路坐標點的平均經度、平均緯度和公裡標,得到鐵路線路的經緯度坐標。
坐標統計數組a中元素a[i]的平均經度、平均緯度即為線路點pi的坐標,將公裡標i*d和平均經度、緯度按順序保存即得到了鐵路線路經緯度坐標。
生成鐵路線路經緯度坐標的系統的第一實施例
圖2示出了本發明的生成鐵路線路經緯度坐標的系統的原理。請參見圖2,本實施例的系統包括:預處理模塊、線路點序列生成模塊、坐標統計數組生成模塊、記錄文件列表生成模塊、平均經緯度首次計算模塊、噪點剔除模塊、平均經緯度再次計算模塊、經緯度坐標獲得模塊。
預處理模塊用於設置需要生成線路經緯度坐標的鐵路線路的線路號、行別、數據時間段,其中同一日期、線路號和行別的記錄保存在同一個記錄文件中。
在預處理模塊運行前有一個數據積累的處理,機車上一般都裝有衛星定位模塊和lkj裝置,車載tsc定時從衛星定位模塊採集經緯度坐標,從lkj裝置採集線路號、行別、公裡標等機車運行線路信息,並將這兩種信息一起發往地面lmd系統。
從lmd系統獲取機車經緯度坐標、線路號、行別、公裡標等記錄數據,將獲取到的記錄數據按照一定格式保存到記錄文件中,其中同一日期、線路號和行別的記錄保存在同一個文件中。這些文件中的數據就是本實施例的生成鐵路線路坐標信息的來源。其中lkj為非必要設備,可由其它能夠提供機車當前運行線路信息的設備如tax、cmd車載設備等代替。車載衛星定位模塊為非必要設備,可由其它能夠提供機車當前經緯度坐標的設備如經緯度專業測量設備、手機等代替。lmd為非必要系統,可由lais、cmd系統等能夠提供機車運行線路信息或經緯度信息的應用系統代替。
數據時間段表示使用開始日期到結束日期間的數據來生成線路坐標信息。
線路點序列生成模塊設置線路坐標點間距,基於線路坐標點間距和線路最大公裡標生成線路點序列。
線路坐標點間距d表示公裡標每隔多少米產生一個坐標點,根據間距d和線路最大公裡標m生成鐵路線路點序列p(序列中的線路點pi,0≤i≤m/d),線路點pi的公裡標為i*d,單位為米。
坐標統計數組生成模塊生成坐標統計數組用於保存線路點序列的坐標統計信息。
線路點序列p的每個線路點pi的坐標統計信息保存在坐標統計數組a的元素a[i],元素是一個結構體,結構體數據成員和用途說明如下表1。
表1坐標統計數據元素結構:
說明:採用億分之一度為單位是因為整型比浮點數計算速度快很多
記錄文件列表生成模塊根據設置的線路號、行別、數據時間段確定要使用的記錄文件的列表。
平均經緯度首次計算模塊讀取列表中的每一記錄文件中的每一條記錄,根據記錄的公裡標確定坐標統計數組的元素並基於數組中的元素以及機車經緯度坐標計算線路坐標點的平均經度和平均緯度。
在這一模塊中,對記錄文件中的每條記錄按照以下步驟進行處理,直到所有記錄處理完成。
根據記錄的公裡標確定坐標統計數組元素,計算公式為:
坐標統計元素下標i=(記錄公裡標+作標點間距d/2)/d;(符號"/"表示整除)
然後對a[i]做以下操作:
a[i].記錄條數=a[i].記錄條數+1;
a[i].累計經度=a[i].累計經度+記錄的經度;
a[i].記錄條數=a[i].累計緯度+記錄的緯度。
接著計算平均經度和平均緯度,計算方式為:
對坐標統計數據a的每個元素,如果a[i].記錄條數>0,則令:
a[i].平均經度=a[i].累計經度/a[i].記錄條數;
a[i].平均緯度=a[i].累計緯度/a[i].記錄條數。
噪點剔除模塊從所有記錄中剔除噪點記錄。
在第一實施例中,剔除噪點記錄的具體方式為:
首先設定噪點篩選條件s,對於某條記錄,如果滿足|記錄經度-平均經度|>s或者|記錄緯度-平均經緯度|>s,則認為該記錄為噪點記錄,否則為正常記錄。例如篩選條件s取值100000。
然後根據設定的篩選條件s剔除噪點記錄,具體方式為:
對於列表中的所有記錄文件中的每一記錄,其對應坐標統計數組元素a[i],對a[i]做以下操作:
如果|記錄經度-a[i].平均經度|>=篩選條件s或者|記錄緯度-a[i].平均緯度|>=篩選條件s,則該記錄為噪點記錄。對噪點記錄做以下處理:
a[i].記錄條數=a[i].記錄條數-1;
a[i].累計經度=a[i].累計經度-記錄的經度;
a[i].記錄條數=a[i].累計緯度-記錄的緯度。
平均經緯度再次計算模塊以剔除噪點記錄後的所有記錄為對象,按照平均經緯度首次計算模塊中的處理方式重新計算線路坐標點的平均經度和平均緯度。
經緯度坐標獲得模塊保存線路坐標點的平均經度、平均緯度和公裡標,得到鐵路線路的經緯度坐標。
坐標統計數組a中元素a[i]的平均經度、平均緯度即為線路點pi的坐標,將公裡標i*d和平均經度、緯度按順序保存即得到了鐵路線路經緯度坐標。
生成鐵路線路經緯度坐標的系統的第二實施例
圖2示出了本發明的生成鐵路線路經緯度坐標的系統的原理。請參見圖2,本實施例的系統包括:預處理模塊、線路點序列生成模塊、坐標統計數組生成模塊、記錄文件列表生成模塊、平均經緯度首次計算模塊、噪點剔除模塊、平均經緯度再次計算模塊、經緯度坐標獲得模塊。
預處理模塊用於設置需要生成線路經緯度坐標的鐵路線路的線路號、行別、數據時間段,其中同一日期、線路號和行別的記錄保存在同一個記錄文件中。
在預處理模塊運行前有一個數據積累的處理,機車上一般都裝有衛星定位模塊和lkj裝置,車載tsc定時從衛星定位模塊採集經緯度坐標,從lkj裝置採集線路號、行別、公裡標等機車運行線路信息,並將這兩種信息一起發往地面lmd系統。
從lmd系統獲取機車經緯度坐標、線路號、行別、公裡標等記錄數據,將獲取到的記錄數據按照一定格式保存到記錄文件中,其中同一日期、線路號和行別的記錄保存在同一個文件中。這些文件中的數據就是本實施例的生成鐵路線路坐標信息的來源。其中lkj為非必要設備,可由其它能夠提供機車當前運行線路信息的設備如tax、cmd車載設備等代替。車載衛星定位模塊為非必要設備,可由其它能夠提供機車當前經緯度坐標的設備如經緯度專業測量設備、手機等代替。lmd為非必要系統,可由lais、cmd系統等能夠提供機車運行線路信息或經緯度信息的應用系統代替。
數據時間段表示使用開始日期到結束日期間的數據來生成線路坐標信息。
線路點序列生成模塊設置線路坐標點間距,基於線路坐標點間距和線路最大公裡標生成線路點序列。
線路坐標點間距d表示公裡標每隔多少米產生一個坐標點,根據間距d和線路最大公裡標m生成鐵路線路點序列p(序列中的線路點pi,0≤i≤m/d),線路點pi的公裡標為i*d,單位為米。
坐標統計數組生成模塊生成坐標統計數組用於保存線路點序列的坐標統計信息。
線路點序列p的每個線路點pi的坐標統計信息保存在坐標統計數組a的元素a[i],元素是一個結構體,結構體數據成員和用途說明如下表1。
表1坐標統計數據元素結構:
說明:採用億分之一度為單位是因為整型比浮點數計算速度快很多
記錄文件列表生成模塊根據設置的線路號、行別、數據時間段確定要使用的記錄文件的列表。
平均經緯度首次計算模塊讀取列表中的每一記錄文件中的每一條記錄,根據記錄的公裡標確定坐標統計數組的元素並基於數組中的元素以及機車經緯度坐標計算線路坐標點的平均經度和平均緯度。
在這一模塊中,對記錄文件中的每條記錄按照以下步驟進行處理,直到所有記錄處理完成。
根據記錄的公裡標確定坐標統計數組元素,計算公式為:
坐標統計元素下標i=(記錄公裡標+作標點間距d/2)/d;(符號"/"表示整除)
然後對a[i]做以下操作:
a[i].記錄條數=a[i].記錄條數+1;
a[i].累計經度=a[i].累計經度+記錄的經度;
a[i].記錄條數=a[i].累計緯度+記錄的緯度。
接著計算平均經度和平均緯度,計算方式為:
對坐標統計數據a的每個元素,如果a[i].記錄條數>0,則令:
a[i].平均經度=a[i].累計經度/a[i].記錄條數;
a[i].平均緯度=a[i].累計緯度/a[i].記錄條數。
噪點剔除模塊從所有記錄中剔除噪點記錄。
在第二實施例中,剔除噪點記錄的具體方式為:
將與pi點相關的所有記錄中,距離a[i]平均經度、平均緯度坐標點的距離最大的前40%條記錄剔除(百分比可設定)。
平均經緯度再次計算模塊以剔除噪點記錄後的所有記錄為對象,按照平均經緯度首次計算模塊中的處理方式重新計算線路坐標點的平均經度和平均緯度。
經緯度坐標獲得模塊保存線路坐標點的平均經度、平均緯度和公裡標,得到鐵路線路的經緯度坐標。
坐標統計數組a中元素a[i]的平均經度、平均緯度即為線路點pi的坐標,將公裡標i*d和平均經度、緯度按順序保存即得到了鐵路線路經緯度坐標。
生成鐵路線路經緯度坐標的系統的第三實施例
圖2示出了本發明的生成鐵路線路經緯度坐標的系統的原理。請參見圖2,本實施例的系統包括:預處理模塊、線路點序列生成模塊、坐標統計數組生成模塊、記錄文件列表生成模塊、平均經緯度首次計算模塊、噪點剔除模塊、平均經緯度再次計算模塊、經緯度坐標獲得模塊。
預處理模塊用於設置需要生成線路經緯度坐標的鐵路線路的線路號、行別、數據時間段,其中同一日期、線路號和行別的記錄保存在同一個記錄文件中。
在預處理模塊運行前有一個數據積累的處理,機車上一般都裝有衛星定位模塊和lkj裝置,車載tsc定時從衛星定位模塊採集經緯度坐標,從lkj裝置採集線路號、行別、公裡標等機車運行線路信息,並將這兩種信息一起發往地面lmd系統。
從lmd系統獲取機車經緯度坐標、線路號、行別、公裡標等記錄數據,將獲取到的記錄數據按照一定格式保存到記錄文件中,其中同一日期、線路號和行別的記錄保存在同一個文件中。這些文件中的數據就是本實施例的生成鐵路線路坐標信息的來源。其中lkj為非必要設備,可由其它能夠提供機車當前運行線路信息的設備如tax、cmd車載設備等代替。車載衛星定位模塊為非必要設備,可由其它能夠提供機車當前經緯度坐標的設備如經緯度專業測量設備、手機等代替。lmd為非必要系統,可由lais、cmd系統等能夠提供機車運行線路信息或經緯度信息的應用系統代替。
數據時間段表示使用開始日期到結束日期間的數據來生成線路坐標信息。
線路點序列生成模塊設置線路坐標點間距,基於線路坐標點間距和線路最大公裡標生成線路點序列。
線路坐標點間距d表示公裡標每隔多少米產生一個坐標點,根據間距d和線路最大公裡標m生成鐵路線路點序列p(序列中的線路點pi,0≤i≤m/d),線路點pi的公裡標為i*d,單位為米。
坐標統計數組生成模塊生成坐標統計數組用於保存線路點序列的坐標統計信息。
線路點序列p的每個線路點pi的坐標統計信息保存在坐標統計數組a的元素a[i],元素是一個結構體,結構體數據成員和用途說明如下表1。
表1坐標統計數據元素結構:
說明:採用億分之一度為單位是因為整型比浮點數計算速度快很多
記錄文件列表生成模塊根據設置的線路號、行別、數據時間段確定要使用的記錄文件的列表。
平均經緯度首次計算模塊讀取列表中的每一記錄文件中的每一條記錄,根據記錄的公裡標確定坐標統計數組的元素並基於數組中的元素以及機車經緯度坐標計算線路坐標點的平均經度和平均緯度。
在這一模塊中,對記錄文件中的每條記錄按照以下步驟進行處理,直到所有記錄處理完成。
根據記錄的公裡標確定坐標統計數組元素,計算公式為:
坐標統計元素下標i=(記錄公裡標+作標點間距d/2)/d;(符號"/"表示整除)
然後對a[i]做以下操作:
a[i].記錄條數=a[i].記錄條數+1;
a[i].累計經度=a[i].累計經度+記錄的經度;
a[i].記錄條數=a[i].累計緯度+記錄的緯度。
接著計算平均經度和平均緯度,計算方式為:
對坐標統計數據a的每個元素,如果a[i].記錄條數>0,則令:
a[i].平均經度=a[i].累計經度/a[i].記錄條數;
a[i].平均緯度=a[i].累計緯度/a[i].記錄條數。
噪點剔除模塊從所有記錄中剔除噪點記錄。
在第三實施例中,剔除噪點記錄的具體方式為:
將與pi點相關的所有記錄中,經度最大的前10%條記錄,經度最小的前10%條記錄,緯度最大的前10%條記錄,緯度最小的前10%條記錄剔除(百分比可設定)。
平均經緯度再次計算模塊以剔除噪點記錄後的所有記錄為對象,依照平均經緯度首次計算模塊中的處理重新計算線路坐標點的平均經度和平均緯度。
經緯度坐標獲得模塊保存線路坐標點的平均經度、平均緯度和公裡標,得到鐵路線路的經緯度坐標。
坐標統計數組a中元素a[i]的平均經度、平均緯度即為線路點pi的坐標,將公裡標i*d和平均經度、緯度按順序保存即得到了鐵路線路經緯度坐標。
此外,本發明還公開了一種計算機可讀存儲介質,存儲介質上存儲有電腦程式指令,所述程序指令用於執行如前述生成鐵路線路經緯度坐標的第一實施例至第三實施例的步驟。
本發明還公開了一種計算機系統,包括存儲器和處理器,存儲器上存儲有電腦程式指令,所述程序指令在處理器中運行以執行如前述生成鐵路線路經緯度坐標的第一實施例至第三實施例的步驟。
儘管為使解釋簡單化將上述方法圖示並描述為一系列動作,但是應理解並領會,這些方法不受動作的次序所限,因為根據一個或多個實施例,一些動作可按不同次序發生和/或與來自本文中圖示和描述或本文中未圖示和描述但本領域技術人員可以理解的其他動作並發地發生。
本領域技術人員將進一步領會,結合本文中所公開的實施例來描述的各種解說性邏輯板塊、模塊、電路、和算法步驟可實現為電子硬體、計算機軟體、或這兩者的組合。為清楚地解說硬體與軟體的這一可互換性,各種解說性組件、框、模塊、電路、和步驟在上面是以其功能性的形式作一般化描述的。此類功能性是被實現為硬體還是軟體取決於具體應用和施加於整體系統的設計約束。技術人員對於每種特定應用可用不同的方式來實現所描述的功能性,但這樣的實現決策不應被解讀成導致脫離了本發明的範圍。
結合本文所公開的實施例描述的各種解說性邏輯板塊、模塊、和電路可用通用處理器、數位訊號處理器(dsp)、專用集成電路(asic)、現場可編程門陣列(fpga)或其它可編程邏輯器件、分立的門或電晶體邏輯、分立的硬體組件、或其設計成執行本文所描述功能的任何組合來實現或執行。通用處理器可以是微處理器,但在替換方案中,該處理器可以是任何常規的處理器、控制器、微控制器、或狀態機。處理器還可以被實現為計算設備的組合,例如dsp與微處理器的組合、多個微處理器、與dsp核心協作的一個或多個微處理器、或任何其他此類配置。
結合本文中公開的實施例描述的方法或算法的步驟可直接在硬體中、在由處理器執行的軟體模塊中、或在這兩者的組合中體現。軟體模塊可駐留在ram存儲器、快閃記憶體、rom存儲器、eprom存儲器、eeprom存儲器、寄存器、硬碟、可移動盤、cd-rom、或本領域中所知的任何其他形式的存儲介質中。示例性存儲介質耦合到處理器以使得該處理器能從/向該存儲介質讀取和寫入信息。在替換方案中,存儲介質可以被整合到處理器。處理器和存儲介質可駐留在asic中。asic可駐留在用戶終端中。在替換方案中,處理器和存儲介質可作為分立組件駐留在用戶終端中。
在一個或多個示例性實施例中,所描述的功能可在硬體、軟體、固件或其任何組合中實現。如果在軟體中實現為電腦程式產品,則各功能可以作為一條或更多條指令或代碼存儲在計算機可讀介質上或藉其進行傳送。計算機可讀介質包括計算機存儲介質和通信介質兩者,其包括促成電腦程式從一地向另一地轉移的任何介質。存儲介質可以是能被計算機訪問的任何可用介質。作為示例而非限定,這樣的計算機可讀介質可包括ram、rom、eeprom、cd-rom或其它光碟存儲、磁碟存儲或其它磁存儲設備、或能被用來攜帶或存儲指令或數據結構形式的合意程序代碼且能被計算機訪問的任何其它介質。任何連接也被正當地稱為計算機可讀介質。例如,如果軟體是使用同軸電纜、光纖電纜、雙絞線、數字訂戶線(dsl)、或諸如紅外、無線電、以及微波之類的無線技術從web網站、伺服器、或其它遠程源傳送而來,則該同軸電纜、光纖電纜、雙絞線、dsl、或諸如紅外、無線電、以及微波之類的無線技術就被包括在介質的定義之中。如本文中所使用的盤(disk)和碟(disc)包括壓縮碟(cd)、雷射碟、光碟、數字多用碟(dvd)、軟盤和藍光碟,其中盤(disk)往往以磁的方式再現數據,而碟(disc)用雷射以光學方式再現數據。上述的組合也應被包括在計算機可讀介質的範圍內。
提供對本公開的先前描述是為使得本領域任何技術人員皆能夠製作或使用本公開。對本公開的各種修改對本領域技術人員來說都將是顯而易見的,且本文中所定義的普適原理可被應用到其他變體而不會脫離本公開的精神或範圍。由此,本公開並非旨在被限定於本文中所描述的示例和設計,而是應被授予與本文中所公開的原理和新穎性特徵相一致的最廣範圍。