基于MapReduce计算框架的浮动车数据与道路匹配的方法技术

技术编号:11136015 阅读:80 留言:0更新日期:2015-03-12 13:01
本发明专利技术提供一种基于MapReduce计算框架的浮动车数据与道路匹配的方法,包括下述步骤:步骤一,将路网划分为网格;步骤二,利用MapReduce分布式计算框架将线段定位到网格上;步骤三,利用MapReduce分布式计算框架将浮动车数据定位到网格上;步骤四,在同一网格内,利用MapReduce分布式计算框架,将代表浮动车数据的点定位到线段上。本发明专利技术通过对分布式存储和计算架构的利用,并利用数据裁剪技术将系统中匹配算法的复杂度尽量降低,使得对数据的处理能力和处理规模都有极大的提升。

【技术实现步骤摘要】

本专利技术涉及交通控制领域,尤其是一种道路拥堵情况的分析方法。
技术介绍
道路拥堵问题已经成为制约经济发展的重要因素,也大大降低了人民群众的生活素质。如何有效的解决交通拥堵问题,不只是要多修路,多疏导。相应的道路拥堵分析和拥堵模式预判也有极大的实际意义。遗憾的是,许多城市的政府部门并没有将各个道路的历史拥堵状况记录下来,没有历史的拥堵信息,难以施加相应的分析学习算法,得到所需的拥堵信息的模式信息。
技术实现思路
本专利技术的目的克服现有技术中存在的不足,提供一种基于MapReduce计算框架的浮动车数据与道路匹配的方法,通过对分布式存储和计算架构的利用,并利用数据裁剪技术将系统中匹配算法的复杂度尽量降低,使得对数据的处理能力和处理规模都有极大的提升。本专利技术采用的技术方案是:一种基于MapReduce计算框架的浮动车数据与道路匹配的方法,包括下述步骤:步骤一,将路网划分为网格;步骤二,利用MapReduce分布式计算框架将线段定位到网格上;步骤三,利用MapReduce分布式计算框架将代表浮动车数据的点定位到网格上;步骤四,在同一网格内,利用MapReduce分布式计算框架,将代表浮动车数据的点定位到线段上。进一步地,所述步骤一中,具体根据历史统计数据,通过罗杰斯特回归的算法来使得路网划分的尺度最优化,最优化的标准是各个网格所分配得到的浮动车尽量均匀,也就是每个网格所分配得到的浮动车数据的条数的方差尽量小,且网格数尽量少。进一步地,所述步骤二中,具体的方法为:<br>先进行步骤二的Map过程,算法如下:步骤2-1,计算线段两端点各自所在的网格ID,如果两个网格ID相同则该线段属于该网格,直接创建Key/Value键值对,将网格ID作为Key,将线段作为Value;步骤2-2,如果线段两端点所在的网格ID不同,首先利用线段两端点计算出其可能相交的网格矩阵,之后计算该线段向量与线段始端点和各个网格端点组成的向量的点乘积,如果点乘积大于零,则将该网格端点表示为1,如果点乘积小于0,则将该网格端点表示为0;步骤2-3,在网格矩阵各个端点组成的矩阵中出现0、1变化的部分所属的网格,就是该线段向量与之相交的网格,该线段就属于相应的网格ID,将该些网格ID作为Key,而将该线段作为Value;之后启动步骤二的Reduce过程。进一步地,步骤三中,将网格ID作为Key,将代表浮动车数据的点作为Value。进一步地,步骤四中,具体的方法为:将线段ID作为Key,将浮动车数据作为Value;在数据导入时,将线段的数据存放在每个计算节点的内存中;在计算过程中使用向量计算代表浮动车数据的点到线段的距离,将代表浮动车数据的点ID作为Key,将距离以及相对应的线段作为Value;经过一次Map和Reduce过程之后,获得距离代表浮动车数据的点最近的线段的ID,因而将该点定位到该条线段上,形成<代表浮动车数据的点ID,线段ID>对;之后再经过一次Map过程,将<代表浮动车数据的点ID,线段ID >对转换成<线段ID,代表浮动车数据的点ID >对;经过Reduce过程,可以将点归属到相应的线段上,进而归属到相应的路段上。本专利技术的优点在于:本方法能够使得系统中匹配算法的复杂度尽量降低,从而提高系统的性能和可扩展性。可以解决十亿乃至百亿级时序浮动车信息定位到路段问题。通过对分布式存储和计算架构的利用,使得对数据的处理能力和处理规模都有极大的提升。附图说明图1为本专利技术的线段与多网格相交示意图。图2为本专利技术的流程图。具体实施方式下面结合具体附图和实施例对本专利技术作进一步说明。为了判明道路拥堵问题,本专利技术采用了利用浮动车数据来计算道路拥堵状况的方案。浮动车主要组成是出租车,由于出租车行车路线随机化的特点,其采集的数据遍布城市的几乎所有道路。对分析和计算道路当时的拥堵状况有较大的信息量。本专利技术以一个分布式列存储数据库作为存储介质并利用MapReduce作为其分布式计算框架。在本专利技术的系统中,收集了2万余台浮动车一年的历史数据,数据的产生频率是每30秒一条。浮动车数据中关键字段如下:a)浮动车的车辆标识;b)数据采集的时间戳;c)浮动车当前经度;d)浮动车当前维度;e)浮动车当前的速度大小;f)浮动车当前的速度方向;g)浮动车当前运营状态;此外,系统还拥有这些浮动车所营运的城市的路网的矢量信息,路网中的道路由路段组成,路段的几何表示是一个Pline(多线段),Pline是有大量线段组成的折线。系统拥有20亿条浮动车数据和80万条线段组成的路网。本专利技术是为了解决将海量浮动车数据定位到复杂路网上的问题。本专利技术的主要思路是,将路网划分网格,之后将线段与浮动车数据映射到相应的网格上。然后通过本网格内的线段和浮动车数据进行匹配从而大大减少计算复杂度。本方法的主要步骤如下:步骤一,首先,将路网划分为网格;系统中网格的划分是根据历史数据统计后获得,通过罗杰斯特回归算法来使得路网划分的尺度最优化,最优化的标准是各个网格所分配得到的浮动车尽量均匀,也就是每个网格所分配得到的浮动车数据的条数的方差尽量小,且网格数尽量少。各网格为矩形网格。步骤二,其次,利用MapReduce分布式计算框架将线段定位到网格上;在线段划分的Map-Reduce过程中,将线段作为输入,之后将网格ID作为Key,将线段作为Value。Key/Value可称为键值对。Key即为键值项,Value即为键值。先进行步骤二的Map(Map即映射)过程,算法如下:步骤2-1,计算线段两端点各自所在的网格ID,如果两个网格ID相同则该线段属于该网格,直接创建Key/Value组,将网格ID作为Key,将线段作为Value;网格ID是指网格的编号。本文中ID代表编号。步骤2-2,如果线段两端点所在的网格ID不同,则如图1所示,首先利用线段两端点计算出其可能相交的网格矩阵,之后计算该线段向量PQ与线段始端点P和各个网格端点组成的向量的点乘积,如果点乘积大于零,则将该网格端点表示为1,如果点乘积小于0,则将该网格端点表示为0;步骤2-3,在网格矩阵各个端点组成的矩阵中出现0、1变化的部分所属的网格(图1中黑色圆圈标识),就是该线段向量PQ与之相交的网格,该线段就属于相应的网格ID,将该些网格ID作为Key,而将该线段作为Value。通过一次线段的扫描Map,就可以建立起网格ID与线段的对应关系。这其中,线段可以属于多个网格,其原因是该线段可能与多个网格相交。之后启动步骤二的Reduce(Reduce即化简)过程,这之前也可以适当的设置shuffle过程,将属于同一个网格ID的线段放在一起。步骤三,接着,利用MapReduce分布式计算框架将浮动车数据定位到网格上;此步骤中,将本文档来自技高网...

【技术保护点】
一种基于MapReduce计算框架的浮动车数据与道路匹配的方法,其特征在于,包括下述步骤:步骤一,将路网划分为网格;步骤二,利用MapReduce分布式计算框架将线段定位到网格上;步骤三,利用MapReduce分布式计算框架将代表浮动车数据的点定位到网格上;步骤四,在同一网格内,利用MapReduce分布式计算框架,将代表浮动车数据的点定位到线段上。

【技术特征摘要】
1.一种基于MapReduce计算框架的浮动车数据与道路匹配的方法,其特征在于,包括下述步骤:
步骤一,将路网划分为网格;
步骤二,利用MapReduce分布式计算框架将线段定位到网格上;
步骤三,利用MapReduce分布式计算框架将代表浮动车数据的点定位到网格上;
步骤四,在同一网格内,利用MapReduce分布式计算框架,将代表浮动车数据的点定位到线段上。
2.如权利要求1所述的基于MapReduce计算框架的浮动车数据与道路匹配的方法,其特征在于:
所述步骤一中,具体根据历史统计数据,通过罗杰斯特回归算法来使得路网划分的尺度最优化,最优化的标准是各个网格所分配得到的浮动车尽量均匀,也就是每个网格所分配得到的浮动车数据的条数的方差尽量小,且网格数尽量少。
3.如权利要求1所述的基于MapReduce计算框架的浮动车数据与道路匹配的方法,其特征在于:
所述步骤二中,具体的方法为:
先进行步骤二的Map过程,算法如下:
步骤2-1,计算线段两端点各自所在的网格ID,如果两个网格ID相同则该线段属于该网格,直接创建Key/Value键值对,将网格ID作为Key,将线段作为Value;
步骤2-2,如果线段两端点所在的网格ID不同,首先利用线段两端点计算出其可能相交的网格矩阵,之后计算该线段向量与线段始端点和各个网格端点组成的向量的点乘积,如果点乘积大于零,则将...

【专利技术属性】
技术研发人员:刘斌程子轩赵旦谱王艳军台宪青
申请(专利权)人:江苏物联网研究发展中心
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1