具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
由于公交车是按照既定线路行驶的,相邻两站点间的公交线路是公交车按照线路行驶的最小分割单位。如果对相邻两站点间的线路进行抽象,并将其作为公交路况表达的原子单位,则站间旅行时间的计算过程可以简化为:公交GPS数据→站间抽象路况(即站间旅行时间延迟)。这不仅大大简化了计算过程(如省去了公交浮动车处理系统建设),而且还可以相应减小路段旅行时间计算和累加过程中引入的计算误差,改进后的公交到站计算模型如图2所示。
为此,本发明实施例提出了站间公交线路的抽象模型,即公交站点拓扑模型。该模型将以站点为点,站点之间的基于线路的连通关系作为边,组成拓扑有向图。站点间的旅行时间延迟作为边的权值。同时,提出了公交行驶模型,通过公交GPS点在拓扑模型中各站点间的转移关系,不断更新边的权值,从而形成站间旅行时间的动态更新和计算过程。此外,首次将公交车在站内的延迟作为一个参量进行描述,使得公交到站时间计算更加准确。
本发明实施例提供了一种基于公交GPS数据的公交到站预测方法,具体包括以下步骤:
步骤101、读入公交线路站点布设关系数据,建立公交站点拓扑关系。公交站点拓扑关系的主要作用是对站点和线路进行抽象表达,以简化公交站间旅行时间的计算过程,并建立计算的基础数据结构。建立过程包括:
1、输入电子地图和站点位置,按照就近匹配的原则将站点匹配到电子地图的路段上。
2、对公交站点及线路进行并站和并线处理。将匹配到同一路段上的同名且位置接近的站点聚类为同一个站点(并站处理),相邻两站间的若干条线路可以作并线处理。
对于很多并线并站的公交车而言,其行驶参数对彼此有极强的参考作用,为此,在站点拓扑关系的建立过程中,对站点名称相同,位置接近的公交站点作并站处理;相邻两站都相同(并站)的线路作并线处理。
以某城市的路网为例,考察609路(四惠站-建材城东里)、392路(西钓鱼台-西二旗北站)、375路(西直门-韩家川)三条线路在北京航空航天大学附近的行驶线路,如图3所示,可以形成如表1所示的数据内容。
表1
在表1中,对名称相同、站点位置相近的站点进行并站,如392路、375路和609路的北京航空航天大学站、成府路口南站可以并站处理,标记同样的公交站点ID;在北京航空航天大学站到城府路口南站区间,392路、375路和609路可以并线处理。
3、建立站点拓扑。根据公交站点ID建立站点拓扑图中的站点对象;按照线路遍历站点对象,根据站序建立站点对象之间的连接关系。例如,609路上行的第28站对应的站点对象的公交站点ID为S1001,第29站对应的站点对象的公交站点ID为S1002,则站点S1001到S1002存在一条有向边(属性为609路上行)。从而形成图4所示的站点拓扑图。
步骤102、接收公交实时GPS数据,按照设定的时间间隔计算并输出各线路公交车在站点内的停留时间(站内延迟)、从一站点出站到下一站点进站经历的时间(站间延迟)以及公交车从当前位置到下一站点的旅行时间(下一站延迟)。当实时GPS数据不足时,可采用历史上同一时刻的历史GPS数据作为补充。
如图5所示,在获取站内延迟、站间延迟及下一站延迟时,首先读入步骤101建立的站点拓扑,根据计算时间分配,判断是否为GPS数据的处理时间,如果是,则:
解析所述GPS数据,根据GPS数据与站点的相对位置,如果在进站点,则获取保存站间延迟,如果在出站点,则获取保存站内延迟。此外,获取并保存到下一站延迟;
否则输出所述站内延迟、站间延迟以及到下一站延迟。
一辆公交车在相邻两个站点之间的旅行时间,与稍前时段通过这两个站点的车辆所用旅行时间具有极大的相关性。根据前一时段的公交车经过两站点的旅行时间,可以得出经过两站点的旅行时间期望,从而对下一站的到站时间做出估计。
1、站内延迟和站间延迟的计算
设站点拓扑图中的站点集为S={si|i=1,2,…,M},公交车辆集为C={cj|j=1,2,…,N}。设车辆cj在站点si的站内延迟记为tsi(i,j),车辆cj从站点si到下一站sk的站间延迟记为ts2s(i,k,j)。
如图6所示,设一辆公交车cj在某一时段驶过站点si和sk,在si的进出站时刻分别是T1和T2,在sk的进出站时刻分别是T3和T4。则在si的站内延迟tsi(i,j)=T2-T1,到下一站sk的站间延迟是ts2s(i,k,j)=T3-T2。
在一个计算周期内,对于站点sF和下一站sO,会有多辆车驶过,从而形成一系列的站内延迟和站间延迟的计算结果,分别是Tsi(F)={tsi(i,j)|i=F}和Ts2s(F,O)={ts2s(i,k,j)|i=F,k=O}。
对Tsi(F)和Ts2s(F,O)进行剔除异常值的算术平均,即可以获得站点sF的站内延迟(记为N(F)),以及到下一站sO的站间延迟(记为J(F,O))。进一步的,可以对Tsi(F)和Ts2s(F,O)进行深一步的统计分析和数据挖掘,以提高站内延迟和站间延迟计算的准确性,包括根据车辆经过站点的时间先后顺序评估信息的时效性,等等。
其中,公交车上传的GPS信息一般附带有进出站和开关门信息,所以进出站的时刻可以基于此获得。
但是,当公交的GPS信息不能准确地提供进出站时刻时,本实施例进一步提供了如图7所示的基于线性插值的进出站时刻获取方法。如图7所示,设车站在O点位置,设定站点的范围为以O为圆心,半径为R的圆,GPS点落在此范围内视为在站内,该方法的目的在于在公交不附带进出站和开关门信息的前提下获取进出站时刻Ti和To。
在给定站点范围半径R的前提下,可以认为车辆的进站加减速和停车上下客的过程是在圆形的站点范围内完成的。设g1(v1,t1)(A点)是车辆进站前最后上传的GPS信息点,其中v1是该GPS信息点的即时速度,t1是该GPS信息的上传时刻;g2(v2,t2)(B点)是车辆出站后第一个上传的GPS信息点,站点范围内可能有GPS信息点,也可能没有。
设车辆从g1点到进站之前的这段距离是匀速直线行驶的,则车辆从g1点到进站之前行驶的时间是(Len(A,O)-R)/v1(Len(A,O)是A点与O点之间的直线距离),即进站时刻Ti=t1+(Len(A,O)-R)/v1;同理,可得出站时刻To=t2-(Len(B,O)-R)/v2。考虑到相邻两个GPS之间的行驶距离远远小于站间距离,所以上述方法成立。
2、到下一站点的旅行时间估计
如图8所示,在站间延迟J(F,O)发布的有效期内,有一辆公交车于T5时刻离开站点sF,则其预期到达下一站sO的时间是T7=T5+J(F,O),该车辆于T6时刻上传此刻的GPS数据,则该时刻车辆到下一站的旅行时间估计值为T7-T6。
步骤103、公交到站时间计算和查询。公交到站时间计算和查询用于向移动终端和互联网用户提供公交到站时间的查询服务。当用户查询某路公交车到第N站的旅行时间,设车辆目前正行驶于第i站和i+1站之间i<N,设车辆从当前位置到第i+1站的旅行时间是T0,则总体旅行时间为:
其中J(k,k+1)是第k站到第k+1站的站间延迟;N(k)是第k站站内延迟。
如图9所示,本实施例还提供了一种基于公交GPS数据的公交到站预测系统,包括:
拓扑关系建立装置90,用于根据读入的公交站点拓扑数据,建立公交站点的拓扑关系。
GPS数据读取模块91,用于接收公交实时GPS数据。
公交行驶模型建立装置92,用于根据所述公交实时GPS数据并按照设定的时间间隔,获取并输出拓扑关系中各线路公交车的站内延迟、站间延迟以及到下一站延迟。
公交到站时间查询装置93,用于完成对公交到站时间的查询。
本实施例大大简化了公交到站时间服务的实现原理,省去了公交路况系统的建设,省去了公交线路与电子地图匹配的大规模人工工作量;提出了基于站点拓扑图和公交行驶模型和公交到站时间查询的一整套的解决方案,在系统建设的过程中没有人工的工作量,降低系统部署和推广的代价;将公交车在站内的延迟作为一个参量进行描述,使得公交到站时间计算更加准确,还可以减小路段旅行时间计算和累加过程中引入的计算误差。
在一个较佳实施例中,对于站内延迟和站间延迟的计算,把所有线路车辆计算出的结果进行统计分析后,得出站点的站内延迟和到下一站的站间延迟。进一步的,可以对不同线路的车辆进行归类(例如,在同一站点的不同线路车辆由于上车乘客数量差异较大,站内延迟的差异经常也较大,此时,可对不同线路进行归类),以区分在站内延迟和站点延迟结果上的差异,获得更为准确的计算结果。
此外,当实时数据不足以计算出结果,可以引入历史数据;当车辆离站点较远时,站内/站间延迟的时效性可能不足以准确估计到站时间,此时可以引入对站内/站间延迟的估计(预测),以提高计算的准确性。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。