行驶速度限定的浮动车地图匹配加速方法与流程

文档序号:12013614阅读:280来源:国知局
本发明属于导航定位和智能交通领域,具体涉及一种道路交通网络中的行驶速度限定的浮动车地图匹配加速方法。

背景技术:
当前智能交通领域中,浮动车已成为一种交通、出行信息采集的重要手段。随着互联网大数据时代的到来,面向交通的地理信息服务(GeographicInformationServices)需求也明显增强,关于交通、出行等信息也是其所供应地理信息数据的重要组成之一。而浮动车地图匹配方法则是实现交通及出行等信息数据挖掘的关键技术。所谓地图匹配是指通过GNSS(GlobalNavigationSatelliteSystem)轨迹数据所包含的位置信息,将轨迹点逐一匹配到浮动车辆所在的道路路段上,将轨迹数据恢复为浮动车在道路网络中的真实行驶路径。由于浮动车数据的采样间隔相对较大(40-100秒),为了恢复其中缺失的信息,浮动车数据地图匹配中需要大量计算相邻轨迹点的候选匹配路段之间的拓扑关联信息,这种拓扑关联信息一般为连接候选匹配路段之间的最短路径。在道路网络数据中大量计算最短路径花费时间比较长。而且对于大量浮动车数据而言,某些相同路径在一天内有可能被不同浮动车重复地行驶,这样会在不同车辆的轨迹匹配时造成重复计算路径,导致匹配速度降低的问题。名称为“利用地图栅格化的海量浮动车数据道路匹配快速算法”(作者:李宇光、李清泉,武汉大学学报(信息科学版),2014.39(6):p.724-733)的文献给出的浮动车地图匹配快速算法仅仅是对于单点的几何特征匹配时的加速策略,并未述及相邻轨迹点之间的关联匹配分析时的速度慢问题。公开号为CN103149576A的专利公开了一种“浮动车数据的地图匹配方法”,此专利虽然针对浮动车地图匹配中的最短路径计算有一些优化,但是,其最短路径的计算仍然是在匹配时进行,并且对于大量浮动车在匹配中不可避免的会有大量重复路径,这种大量数据匹配时重复路径计算带来的效率问题该专利并未涉及。

技术实现要素:
针对现有技术中存在的上述技术问题,本发明提出了一种行驶速度限定的浮动车地图匹配加速方法,在浮动车地图匹配过程中能够极大加快匹配计算的速度,利于节省浮动车地图匹配的时间开销。为了实现上述目的,本发明采用如下技术方案:行驶速度限定的浮动车地图匹配加速方法,包括如下步骤:S1、计算浮动车地图匹配的最短路径上界B:S11、从道路网络中所有道路弧段的限速值中取出最大限速值vmax,将该最大限速值vmax上浮40%得到速度阈值v限阈,v限阈=(1+0.4)*vmax;S12、根据待匹配浮动车轨迹的采样时间间隔T,计算相邻轨迹点在道路网络中的最短路径上界B,B=v限阈*T;S2、对道路网络进行分割:首先计算道路网络的最小外接矩形,然后对道路网络进行格网分割,设定道路网络节点的数量为N、分割阈值为M,N、M均为自然数,且N大于M,计算大于N/M的最小偶数m;找到m的一个因子分解m=m1*m2,使得m1和m2满足m1与m2之比和道路网络的最小外接矩形长宽比最接近,令m1为行数目,m2为列数目,建立基准格网;每个基准格网内道路网络节点的数量不大于M个;将每个基准格网的边界向外拓展长度为B的宽度后得到扩展格网,计算每个扩展格网内部所包含的道路弧段与节点;S3、在步骤S2得到的每个扩展格网内的道路网络中,通过改进后的dijkstra算法计算小于步骤S12得到的最短路径上界B的所有最短路径:S31、初始化扩展格网内道路网络G(V,E)中所有节点对的最短距离表d及前驱节点对表pre,其中,V表示道路网络中所有节点集,E表示道路网络中所有道路弧段集;如果节点对(v,w)的两节点不是同一节点且通过一条弧段直接相连,则其距离标号d(v,w)设为弧段长度l(v,w),并将这些节点对(v,w)放入权重最小优先队列Q中,其在优先队列Q中的优先权重为d(v,w),前驱节点对pre(v,w)=0;如果节点对(v,w)的两节点不是同一节点且不通过一条弧段直接相连,则将距离标号d(v,w)设为64位浮点数可表达的最大浮点数dbM;如果节点对(v,w)的两节点为同一节点,则距离标号d(v,w)设为0;S32、重复执行步骤S33~S34,直到优先队列Q为空、或者优先队列Q的最小权重值大于步骤S12得到的最短路径上界B时,转到步骤S35;S33、从优先队列Q中得到权重最小的节点对(v,w),将其从优先队列Q中去除;S34、对于道路网络中从w出发的道路弧段(w,u),计算d(v,w)+l(w,u):如果d(v,w)+l(w,u)<d(v,u),并且d(v,u)是最大浮点数dbM,则将节点对的距离标号d(v,u)改为d(v,w)+l(w,u),并将节点对(v,u)加入优先队列Q中,其前驱节点对pre(v,u)=(v,w);如果d(v,w)+l(w,u)<d(v,u),并且d(v,u)不是最大浮点数dbM,则将节点对的距离标号d(v,u)改为d(v,w)+l(w,u),将其在优先队列Q中的优先权重也重设为d(v,u),其前驱节点对pre(v,u)=(v,w);S35、保存扩展格网内道路网络中的所有节点对的最短距离表d和前驱节点对表pre;S4、在前后轨迹点的候选路段对之间关联匹配中,首先根据坐标计算前后轨迹点属于哪个基准格网Ri,然后根据步骤S3确定该基准格网Ri内道路网络中的所有节点对的最短距离表d和前驱节点对表的位置;S5、设定前后轨迹点对应的候选路段对为(e1,e2),取弧段e1的终止节点v1,e2的起始节点v2,同时计算前一轨迹点到e1的垂足沿弧段e1到v1的距离l1,v2沿弧段e2至后一轨迹点到e2的垂足的距离l2;S6、以起始点v1、终止点v2为一节点对(v1,v2),在基准格网Ri的所有节点对的最短距离表d中直接查询出其最短路径距离为dsp,则前一轨迹点在e1上的垂足到后一节点在e2上的垂足的距离为l1+l2+dsp;S7、在基准格网Ri的所有节点对的前驱节点对表中,回溯恢复v1到v2的最短路径:S71、将v2放入一个队列H中,H初始化为空,从队列H尾插入v2;S72、取出节点对(v1,v2)的前驱节点对pre(v1,v2)=(v1,x),将x从队列H尾插入;S73、将步骤S72中节点对(v1,v2)替换为取出的(v1,x),重复执行步骤S72,直到取出节点对的前驱为0终止;终止后将v1从队列H尾插入;S74、将队列H中的节点序反向,即为v1至v2的最短路径。本发明具有如下优点:本发明根据城市路网中路段行驶速度阈值和浮动车采样间隔估算出一个相邻轨迹点在道路网络中行驶的最短路径上界,并以此最短路径上界预先计算道路网络中所有节点对的最短路径;在浮动车的地图匹配过程中估计前后轨迹点的候选路段对匹配可能性时,涉及到的最短路径分析只需通过查询预处理的结果即可得到,极大节省了浮动车地图匹配的时间开销,此外,通过格网分割控制道路网络的节点规模,其预处理时间也会在一个较短的时间内完成。另外,由于本发明中所有对最短路径的计算是以B为上界的,因此预处理的时间开销也并不大,一般1万个节点路网的以4000米的长度为上界的所有对最短路径求解在1-2分钟左右,对于浮动车地图匹配应用的城市道路网络该预处理方法的时间开销也不大。附图说明图1为本发明中道路网络分割示意图。具体实施方式下面结合附图以及具体实施方式对本发明作进一步详细说明:本发明方法分为预处理和匹配查询两个部分,将匹配中非常耗时的最短路径计算放在预处理阶段完成,而实时匹配时则只需根据起始终止节点查询出最短路径。通过估算匹配中会用的所有最短路径的上界,可以将预处理阶段中对所有最短路径的计算控制在这个上界以内,这样预处理的时间开销也就会在一个相对较短的时间(5-10分钟)内完成。具体的,本发明中的行驶速度限定的浮动车地图匹配加速方法,包括如下步骤:1、预处理阶段,主要是在浮动车数据匹配前完成S1、计算浮动车地图匹配的最短路径上界B:S11、从道路网络中所有道路弧段的限速值中取出最大限速值vmax,将该最大限速值vmax上浮40%得到速度阈值v限阈,v限阈=(1+0.4)*vmax;S12、根据待匹配浮动车轨迹的采样时间间隔T,计算相邻轨迹点在道路网络中的最短路径上界B,B=v限阈*T。S2、对道路网络进行分割:首先计算道路网络的最小外接矩形,然后对道路网络进行格网分割,设定道路网络节点的数量为N、分割阈值为M,N、M均为自然数,且N大于M,计算大于N/M的最小偶数m;找到m的一个因子分解m=m1*m2,使得m1和m2满足m1与m2之比和道路网络的最小外接矩形长宽比最接近,令m1为行数目,m2为列数目,建立基准格网1;每个基准格网1内道路网络节点的数量不大于M个;将每个基准格网的边界向外拓展长度为B的宽度后得到扩展格网2,计算每个扩展格网内部所包含的道路弧段与节点,如图1所示。通过格网分割控制道路网络的节点规模,其预处理时间会在一个较短的时间内完成。确定每个基准格网对应的扩展格网内的道路网络,并计算此道路网络中长度小于上界B的所有对最短路径,这样在基准格网内查询到的起始、终止节点即使分别在不同基准格网内的节点对,其最短路径长度只要小于B,则其结果一定可以在预处理计算的结果中查询得到。S3、在步骤S2得到的每个扩展格网2内的道路网络中,通过改进后的dijkstra算法计算小于步骤S12得到的最短路径上界B的所有最短路径:S31、初始化扩展格网内道路网络G(V,E)中所有节点对的最短距离表d及前驱节点对表pre,其中,V表示道路网络中所有节点集,E表示道路网络中所有道路弧段集;如果节点对(v,w)的两节点不是同一节点且通过一条弧段直接相连,则其距离标号d(v,w)设为弧段长度l(v,w),并将这些节点对(v,w)放入权重最小优先队列Q中,其在优先队列Q中的优先权重为d(v,w),前驱节点对pre(v,w)=0;如果节点对(v,w)的两节点不是同一节点且不通过一条弧段直接相连,则将距离标号d(v,w)设为64位浮点数可表达的最大浮点数dbM;如果节点对(v,w)的两节点为同一节点,则距离标号d(v,w)设为0;S32、重复执行步骤S33~S34,直到优先队列Q为空、或者优先队列Q的最小权重值大于步骤S12得到的最短路径上界B时,转到步骤S35;S33、从优先队列Q中得到权重最小的节点对(v,w),将其从优先队列Q中去除;S34、对于道路网络中从w出发的道路弧段(w,u),计算d(v,w)+l(w,u):如果d(v,w)+l(w,u)<d(v,u),并且d(v,u)是最大浮点数dbM,则将节点对的距离标号d(v,u)改为d(v,w)+l(w,u),并将节点对(v,u)加入优先队列Q中,其前驱节点对pre(v,u)=(v,w);如果d(v,w)+l(w,u)<d(v,u),并且d(v,u)不是最大浮点数dbM,则将节点对的距离标号d(v,u)改为d(v,w)+l(w,u),将其在优先队列Q中的优先权重也重设为d(v,u),其前驱节点对pre(v,u)=(v,w);S35、保存扩展格网内道路网络中的所有节点对的最短距离表d和前驱节点对表pre。由于步骤S3中所有对最短路径的计算是以B为上界的,因此预处理的时间开销也并不大,一般1万个节点路网的最短路径求解在5分钟左右,对于浮动车地图匹配应用的城市道路网络该预处理方法的时间开销也不大。2、匹配查询部分,在前后轨迹点的候选路段对之间关联匹配中,最短路径可以直接根据预处理部分的结果来查找S4、首先根据坐标计算前后轨迹点属于哪个基准格网Ri,然后根据步骤S3确定该基准格网Ri内道路网络中的所有节点对的最短距离表d和前驱节点对表的位置;S5、设定前后轨迹点对应的候选路段对为(e1,e2),取弧段e1的终止节点v1,e2的起始节点v2,同时计算前一轨迹点到e1的垂足沿弧段e1到v1的距离l1,v2沿弧段e2至后一轨迹点到e2的垂足的距离l2;S6、以起始点v1、终止点v2为一节点对(v1,v2),在基准格网Ri的所有节点对的最短距离表d中直接查询出其最短路径距离为dsp,则前一轨迹点在e1上的垂足到后一节点在e2上的垂足的距离为l1+l2+dsp;S7、在基准格网Ri的所有节点对的前驱节点对表中,回溯恢复v1到v2的最短路径:S71、将v2放入一个队列H中,H初始化为空,从队列H尾插入v2;S72、取出节点对(v1,v2)的前驱节点对pre(v1,v2)=(v1,x),将x从队列H尾插入;S73、将步骤S72中节点对(v1,v2)替换为取出的(v1,x),重复执行步骤S72,直到取出节点对的前驱为0终止;终止后将v1从队列H尾插入;S74、将队列H中的节点序反向,即为v1至v2的最短路径。在浮动车地图匹配过程中,通过直接查询预处理结果,得到前后GNSS轨迹点关联路段之间的最短路径,可以对海量浮动车地图匹配方法实现高性能的加速。当然,以上说明仅仅为本发明的较佳实施例,本发明并不限于列举上述实施例,应当说明的是,任何熟悉本领域的技术人员在本说明书的教导下,所做出的所有等同替代、明显变形形式,均落在本说明书的实质范围之内,理应受到本发明的保护。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1