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