王 靜 ,解 超
(1.中國民航信息集團有限公司,北京 101318;2.中國交通通信信息中心,北京 100011;3.中交信有限責任公司,北京 100007)
近年來,隨著計算機、網絡技術在公路、鐵路、民航道路客運領域應用范圍的逐漸擴展,對出行的精確規劃已經成為常態。然而,相比在封閉體系中運行的火車、飛機,道路客運車輛與其他社會車輛共享行駛路徑,其行駛時間受路況、事故、天氣等因素影響較大,因此難以編制確定的車輛行程時間、里程表,導致乘客只知道上車的時間,卻不知道什么時候到站,更不可能知道車輛現在行進到了哪里,是否晚點,還有多久才能抵達目的地。這嚴重影響了乘客們的出行體驗,更為行程提前規劃、接駁轉乘與多種交通工具聯程聯運制造了障礙??梢姡狈珳实能囕v到站時間精準計算機制,已經成為了道路客運的最大痛點之一。相較之下,航空、鐵路都有嚴格的行程-時刻表體系,除個別的延誤情況外,基本做到了行程的可預期、可控制。航旅縱橫等應用在航空領域的發軔,更為用戶準確實時掌握交通工具精準動態提供了便捷的途徑。
針對上述問題,作者利用全國營運車輛聯網聯控系統的長途班線客運車輛GPS監測數據,結合道路客運聯網售票系統中的班次、票務數據,提出了一種計算長途班線客運車輛行程—時刻表的算法,實時獲取長途班線客運車輛運行動態時刻表以及旅客實時位置信息,在此基礎上,預測車輛到達特定車站時間、待行駛里程,服務于旅客的智慧出行和精準規劃。如圖1所示。

圖1 基于GPS的道路客運旅客在途位置辨識與到站時間精準預測技術路線圖
從2008年起,交通運輸部在班線客運、旅游包車和危險品運輸車等重點營運車輛(即“兩客一?!保┸囕v上安裝基于北斗衛星導航系統的車載機,并通過無線數據網絡將車輛的位置與行駛狀況信息實時回傳并記錄。截至2017年底,在重點營運車輛上的設備安裝率已達到100%,數據回傳率在99%以上。
重點營運車輛聯網聯控系統GPS數據格式分為歷史數據和實時數據兩種。

圖2 重點營運車輛軌跡數據示例
1.1.1 歷史數據
文件格式:重點營運車輛聯網聯控系統GPS歷史數據格式如圖3所示:
(1)聯網聯控系統車輛歷史數據文件統一采用文本文件格式($accesscode.data)。
(2)聯網聯控系統車輛歷史數據每天每小時保存為一個文件夾,以當天日期YYYYMMDD_txt 格式命名為根目錄,如2014年4月6日,保存數據的文件夾名為20140406_txt。根目錄下每小時數據保存為一個文件夾,格式為data_HH,如上午十時數據保存的文件夾名為data_10。
(3)文本文件中各字段之間使用符號(,)進行分割,每條記錄以回車符表示結束。
(4)每行數據中各字段的排列順序按照下一節中每種數據的序號排列。

圖3 重點營運車輛聯網聯控系統GPS歷史數據格式
1.1.2 實時數據
重點營運車輛聯網聯控系統GPS實時數據格式如表1所示:
長途客車GPS數據通過車載GPS終端在一定間隔內實時采集,數據主要包括線路編號、車輛編號、回傳時間、GPS坐標(經緯度)、定位狀態等。
長途客車在行駛過程中,由于隧道、立交橋等影響,易發生數據丟失、位置漂移等問題,因此,需要對長途客車GPS數據進行預處理,清洗掉漂移或異常的數據。

表1 重點營運車輛聯網聯控系統GPS實時數據格式表
為提高處理效率,基于GPS的道路客運旅客在途位置辨識與到站時間精準預測技術使用緩沖區方法對GPS漂移或異常數據進行過濾。過濾遠離道路的數據最有效的方法是在道路中線的基礎上構建緩沖區,然后刪除在緩沖區以外的數據。
1.2.1 兩級緩沖區法
為提高數據預處理過程的計算效率,引入了利用大小兩級緩沖區進行車輛位點過濾的方法,即先通過大緩沖區高速粗篩,剔除遠離目標道路的車輛數據,再通過小緩沖區細篩,剔除與道路距離較近,但不在道路上的車輛數據。
經分析,大約80%以上的車輛定位點都遠離道路300m以上,為了提高效率,過濾遠離道路點采用多(兩)級緩沖區技術,先利用大尺度上的緩沖區對絕大多數遠離道路500m以上的點進行過濾,然后利用小尺度上的緩沖區對距離道路500m以內的數據點進行過濾,提取出在道路上行駛的定位點。大小尺度上的緩沖區分別見圖4和圖5。

圖4 大尺度緩沖區

圖5 小尺度緩沖區
在這個過程中,最關鍵是確定小尺度緩沖區的范圍,從而最大程度地讓存在誤差的定位數據被包含在這個緩沖區中。根據誤差理論,設道路網的定位誤差為α,車輛定位誤差最大為β,高速公路單向路寬為w,由圖6可知,車輛GPS定位點離道路網的距離最大為,因此將緩沖區的半徑設為ρ。
一般認為道路網的精度α=5m,車輛定位誤差β=5m,從現有高速公路狀況來看,大部分單向路寬為10~16m,大型車輛車寬為2.5m,則ρ取值為13~16m。由于在不同地區,道路寬度標準與車輛GPS型號的差異可能導致定位精度和緩沖區大小有所差別,因此可以考慮分區域確定緩沖區半徑的具體值。這樣,可以使所設緩沖區既能較快地區分車輛所屬道路,又能最大程度包含行駛在道路上的車輛的定位數據。

圖6 道路、車輛的定位示意圖
注:按照《GB-1589-2004道路車輛外廓尺寸、軸荷及質量限值》的規定,車輛高度限值為4m,寬度限值為2.5m,故取2.5m為車輛寬度。
由于緩沖區在每次計算路況時都會使用且范圍相同,因此可以事先計算全國道路網的兩級緩沖區數據,保存為獨立圖層,在浮動車數據預處理操作時直接調用。同時,緩沖區還可以消除車輛進入服務區或收費站后的定位數據,排除這些情況的對路況計算的干擾。
在過濾過程中,需要判斷每一個動態數據點是否在緩沖區內,這時記錄下在緩沖區內的數據點被包含于哪個道路的緩沖區內,此信息將用于地圖匹配過程。在道路交叉點區域,還需要根據道路方向判斷。
1.2.2 方程式緩沖區法
為了進一步提高浮動車數據篩選過程的效率,在兩步緩沖區基礎上,又引入了一種適合于浮動車數據的高效緩沖區分析方法。
考慮到目前緩沖區表達方式的特點,若使用柵格法表達,雖然緩沖區分析簡單但占用存儲空間大;若使用矢量法表達,雖然存儲效率高但緩沖區分析涉及的幾何計算復雜。兩種表達方法都存在缺點,因此我們希望尋找第三種緩沖區表達方法,既存儲效率高又應用簡單。緩沖區分析主要是以距離為依據,因此方程式緩沖區需要與距離有關系,并且具有連續封閉的特點,當然最重要的特點是能用一個數學公式描述。而萬有引力的等值線恰好能滿足這些要求,為此我們借助萬有引力等值線公式的形式構造方程式緩沖區,用地理要素的一條引力等值線擬合與之最接近的緩沖區邊界,使緩沖區分析從一個包含復雜幾何運算的過程轉變成包含簡單代數運算的過程,從而提高計算效率。
下面分別給出了點和線段的緩沖區方程,具體推導過程不在本文中闡述。
(1)點(x0,y0)的緩沖區為

式中,r是緩沖區半徑。
(2)線段((x1,y1),(x2,y2))的緩沖區為

式中,r是緩沖區半徑;為線段的長度;t為向量((x1,y1),(x2,y2))與X軸的夾角;(xm,ym)為線段的中點是線段的線密度。
圖7中,左列為常規緩沖區,右列為方程式緩沖區,(a)、(b)為點的緩沖區,從里到外緩沖區半徑分別為20、40、60、80,(c)、(d)為線段的緩沖區,線段長400,從里到外緩沖區半徑分別為40、80、120、160。

圖7 常規緩沖區與方程式緩沖區的對比
下面以地理信息檢索為例,介紹方程式緩沖區的應用方法,即查詢在緩沖區內的地理要素。
點緩沖區。判斷某要素點 T(xt,yt)是否在點 A(x0,y0)半徑為r的緩沖區內時,將要素坐標代入公式(1)中得到,若不等式成立,則要素點T在點A的緩沖區內;若不成立,則要素點T在點A的緩沖區外。緩沖區半徑變化時只需要改變r的值重新計算即可。
線段緩沖區。判斷某要素點T(xt,yt)是否在線段AB半徑為r 的緩沖區內,A、B的坐標分別為(x1,y1),(x2,y2),將要素坐標代入公式(2)中得到,若不等式成立,則要素點T在線段AB的緩沖區內;若不成立,則要素點T在線段AB的緩沖區外。

表2 聯網聯控數據樣例表
曲線緩沖區。曲線Q(P1,P2,…Pn),判斷某要素點T(xt,yt)是否在曲線半徑為r的緩沖區內時,需要將要素坐標代入曲線所有子線段(Pt,Pt+1,t=1,2,…,n-1)的緩沖區不等式中進行判斷,只要有一個不等式成立,則要素點T在曲線Q的緩沖區內,反之則不在曲線Q的緩沖區內。
道路客運線路經停點精準識別與動態時刻表生成主要分為線路(班次)行駛軌跡精準識別、客運站精準位置提取和動態時刻表生成3個步驟,具體的技術路線圖如圖8所示:
(1)根據車輛班次表中的車牌號信息,從聯網聯控GPS數據中提取車輛軌跡數據(如表2)。
(2)通過識別和剔除時間紊亂點、異常定位點、臨時停車點與長時停車點,生成精確軌跡路線圖(見圖8)。
(1)依據原始車輛軌跡數據識別出長時間停車數據,通過聚類算法匯總大量車輛數據提取共性停車位置,即客運站(停車點)位置。

圖8 道路客運線路經停點精準識別與動態時刻表生成技術路線圖

圖9 線路行駛軌跡精準識別與提取
具體步驟如下:
A)坐標系轉換:將GPS定位數據從地理坐標系轉換到投影坐標系,便于后面步驟中的距離計算。
B)停車定位點篩選:從原始數據中篩選出速度零值點,為了剔除一些偶發因素(定位設備誤差、臨時停車)導致的速度零值點,添加距離、方向指標作為篩選條件。
C)停車定位點聚類:使用改進后的DB-SCAN 算法對步驟B)篩選出的停車定位點進行分類,將高密度的定位點集劃分到同一類中,分類后得到若干個點簇,并剔除噪聲點。
D)聚類中心計算:對任一個點簇Ci,提取簇心Pi(XPi,YPi),并通過車牌號字段統計點簇包含的車輛數VNi,得到簇心集合S。
E)客運站位置提取:將S中距離較近的簇心歸并到同一類中,得到S的多個子集Sk,使Sk中任意兩個簇心的距離不超過dc。合并Sk中的簇心,得到新的簇心(XSk,YSk),合并后剔除車輛數量小于Nmin或與道路中線距離小于dr的簇心,剩下的簇心即為客運站。
(2)根據車站位置與班次經停表數據庫、第三方電子地圖地名POI數據庫進行比對(圖10),確認各車站位置與班次經停表中車站名稱的對應關系,如表3所示。

圖10 電子地圖POI庫車站位置點
在確定班次各經停站的名稱、位置的對應關系后,即可根據班次軌跡計算道路客運班次對應的里程-時刻表格,即:

表3 車站名稱與經緯度對應表
按照班次行駛路線,每1分鐘記錄一個采樣點,記錄經緯度、計劃到達時刻、從起點出發的行駛時間、從起點出發行駛里程及該點對應的經停站在數據庫中生成特定班次對應的里程-時刻表格(見表4)。

表4 班次里程—時刻表
該方法實現軌跡與車站位置點的匹配,使用準確的采樣方法計算班次時刻-里程表,并可通過同一班次對應的多日車輛軌跡數據的整合減少不確定因素影響,提高班次時刻-里程表的精度。
獲取旅客在途位置可通過兩種途徑:一是根據用戶前端(手機等)GPS定位數據獲取用戶實時空間位置(經緯度信息)。二是根據用戶購票訂單信息建立用戶與特定車次的關系,再通過班次信息獲取運營車輛的車牌號碼(圖11),之后通過前文所述的重點營運車輛聯網聯控系統GPS實時數據數據接口獲取對應車牌車輛的實時位置,從而獲取旅客實時位置。

圖11 用戶訂票信息與班次時刻表信息與軌跡關聯
(1)獲取旅客在途位置后,根據依照票務信息關聯到的班次數據,查詢對應班次的動態里程-時刻表(見表2,圖11)。
(2)利用勾股法計算動態里程-時刻表中與當前位置最接近的記錄,設當前點位置(Xc,Yc),即在動態里程-時刻表中查找點(Xi,Yi),使 ΔDc-i=[(Xc-Xi)2+(Yc-Yi)2]1/2為最小,即可確定車輛當前在班次軌跡上的位置。
(3)之后根據點(Xi,Yi)對應的時刻和車輛行駛里程數據,與動態里程-時刻表中計劃到達站的時刻和車輛行駛里程數據比較,即可計算得到車輛到達特定目的地站點的時間。同時,還可以根據乘客需要,在車輛到達目的地站點前的一定時間(或里程),向旅客發送提醒信息(圖12)。

圖12 車輛到達時間計算及旅客到站提醒
通過以上方法,在GPS車載機采集的數據可以覆蓋車輛運營軌跡的情況下,即可精確獲取車輛的動態里程-時刻表,并根據該表格計算旅客的精確在途位置并預測其到達時間。同時,系統可通過同一班次對應的多日車輛軌跡數據的整合減少不確定因素及軌跡數據缺失的影響,提高班次時刻-里程表的精度與可信度。
在此基礎上,作者將建立獲取無車牌信息的班次時刻-里程表的機制:根據經停站位置,對無車牌信息的班次數據進行分析,根據軌跡數據推算出其對應的車牌號,繪制無車牌信息班次的線路軌跡、無位置數據經停站位置及時刻-里程表。從而進一步通過已獲得的經停站位置數據,對全部班線客運車輛數據進行篩選,獲得軌跡與已知班次經停站位置相匹配的車輛車牌號,即確定無車牌信息的班次對應運營車輛的車牌號信息,實現全部班次時刻-里程表的計算與輸出。■