当前位置: 首页 > 专利查询>福州大学专利>正文

一种基于MapReduce的大规模公交乘客OD并行计算方法技术

技术编号:17516752 阅读:22 留言:0更新日期:2018-03-21 01:19
本发明专利技术涉及一种基于MapReduce的大规模公交乘客OD并行计算方法。该方法:首先,对原始公交数据预处理,并将处理后数据存储;而后,运用连续性公交出行链方法得到上车记录集合Sa和具有完整OD点的集合Sb;对集合Sa的上车站点数据根据乘客工作日和非工作日的出行特征以及历史出行站点频次来推算公交乘客出行下车站点;最后,依次对每个IC卡用户的出行OD记录按照刷卡时间顺序归并,完成大规模公交乘客OD并行计算的过程。本发明专利技术运用Hadoop的MapReduce并行计算框架和HBase数据库在出行链方法基础上结合乘客历史相似出行行为规律来并行计算大规模公交乘客OD点,不仅提高了大规模公交乘客OD点的计算效率,同时也提高了推算公交乘客OD点的准确率,具有较高的实用价值。

A MapReduce based parallel computing method for mass transit passenger OD

The present invention relates to a MapReduce based parallel computing method for mass transit passenger OD. The method: firstly, the original bus data preprocessing, data storage and processing; then, to get on the bus and has a complete record set Sa OD set Sb using the continuity of bus travel chain method; car site data set Sa according to their working and non working days travel features and historical travel site to calculate the frequency of bus passengers to get off the site; finally, in order to travel OD records for each user according to the time sequence of IC card card merge, to complete the process of large-scale OD parallel computing of the bus passengers. The invention uses Hadoop MapReduce parallel computing framework and HBase database based on trip chain method combining passenger travel behavior rules to calculate the history of similar large-scale OD parallel bus passengers, not only improve the computing efficiency of large-scale bus passengers at OD, but also improve the accuracy rate of bus passengers at OD, has a high practical value.

【技术实现步骤摘要】
一种基于MapReduce的大规模公交乘客OD并行计算方法
本专利技术涉及一种基于MapReduce的大规模公交乘客OD并行计算方法。
技术介绍
随着定位技术的成熟,位置传感器硬件得到广泛普及,城市中客运车辆都装备有车载定位系统,公交车实时的位置信息以及其他状态信息能够被轻易获得。由传感器采集得到的数据具有时效性强、范围广、数据量大等特点,通过数据挖掘技术手段我们能够从中计算出有价值的信息。Hadoop是目前在大数据领域中比较成熟,应用最为广泛的分布式计算平台,主要由分布式文件存储系统HDFS和分布式计算框架MapReduce组成,在处理海量数据时具有高可靠性、高扩展性、高效性和高容错性。HBase是一个构建在HDFS上的分布式面向列的数据库,可以存储海量数据,基于行键有较高的查询效率。公交车辆轨迹数据和IC卡刷卡数据中蕴藏着城市客流、城市居民出行规律、城市居民的乘车需求等有用的信息。现有根据公交车辆轨迹数据和公交IC卡刷卡数据推算公交乘客OD(Origin-Destination)点的方法包括:基于概率论的站点吸引度法、基于居民出行规律的出行链方法。这些方法大都基于传统的关系型数据库计算,在数据量较小,如几条线路或是较小量用户出行模式分析的情况下具有较好的效果。然而随着公交数据量与日俱增,传统关系型数据存储系统在存储计算大规模的数据时已经捉襟见时,用传统的推算公交乘客OD点的方法已不能满足当下快速推算大规模公交乘客OD点的需求。
技术实现思路
本专利技术的目的在于提供一种基于MapReduce的大规模公交乘客OD并行计算方法,该方法运用Hadoop的MapReduce并行计算框架和HBase数据库在出行链方法基础上结合乘客历史相似出行行为规律来并行计算大规模公交乘客OD点,不仅提高了大规模公交乘客OD点的计算效率,同时也提高了推算公交乘客OD点的准确率,具有较高的实用价值。为实现上述目的,本专利技术的技术方案是:一种基于MapReduce的大规模公交乘客OD并行计算方法,包括如下步骤,步骤S1:对原始公交数据包括IC卡数据、公交车辆GPS数据、公交车辆信息数据以及公交线路站点数据进行预处理;步骤S2:将预处理过IC卡数据、公交车辆GPS数据存储到HBase数据库;将公交车辆信息数据和公交线路站点数据存储到HDFS;步骤S3:根据MapReduce的特点,在Map函数中依次读取每条IC卡记录,获取其相关信息,根据车辆编号及其刷卡时间等信息获取到相应车辆进出站数据,再结合公交线路站点数据计算出该IC卡持有者乘坐公交出行的上车站点,即O点;步骤S4:在Reduce函数中对能够计算得到O点的IC卡记录,以IC卡号为单位进行归并,以键值对的形式输出到HDFS;步骤S5:在步骤S4的基础上,在新的Map函数中,依次读取每个用户已计算出O点的所有IC卡记录,将该些用户按照连续出行链方法推算得到出行D点的刷卡记录添加到集合Sb,而未能推算出D点刷卡记录添加到集合Sa;其中,出行D点即乘客公交出行的下车站点;步骤S6:在步骤S5的基础上,对集合Sa的刷卡记录,在Map函数中根据居民工作日和非工作日的出行特征,以及历史出行站点频次来推算乘客公交出行的下车站点;步骤S7:在Reduce函数中,按照刷卡时间对每个IC卡号的出行OD记录进行排序,并以IC卡号为键,以出行OD记录为值输出,完成大规模公交乘客OD并行计算过程。在本专利技术一实施例中,所述步骤S1中,对原始公交数据进行预处理包括:步骤S11:删除原始公交IC卡数据中不必要的字段,即保留IC卡号、刷卡时间、线路编号、公交车辆编号字段信息;步骤S12:删除原始公交车辆GPS数据中不必要字段,即保留GPS设备编号、线路编号、行驶方向、GPS时间、进出站标志、纬度、经度、站点编号字段信息;步骤S13:整理公交车辆信息数据,根据车辆编号和车辆GPS设备编号对应关系,即根据一个公交车辆编号找到对应的车辆GPS设备编号;步骤S14:整理公交线路及公交站点数据,转换公交站点的经纬度坐标系为WGS-84坐标系,同时转换公交站点经纬度信息为墨卡托平面坐标。在本专利技术一实施例中,所述步骤S2,具体包括:步骤S21:在HBase数据库中创建表IC_Card,包含列簇IC_Info,将IC卡数据以IC卡号和刷卡时间为组合行键,分别以IC卡号、刷卡时间、线路编号、公交车辆编号为属性值添加到列簇IC_Info;步骤S22:在HBase数据库中创建表Bus_Avl,包含列簇AVL_Info,将公交车辆GPS数据以GPS设备编号和GPS时间为组合行键,分别以GPS设备编号、线路编号、行驶方向、GPS时间、进出站标志、纬度、经度、站点编号为属性值添加到列簇AVL_Info;步骤S23:将公交车辆信息数据以车辆编号为键,以车辆GPS设备编号为属性值,创建文件Bus_Info并存储到HDFS;步骤S24:将公交线路站点数据以线路编号为键,以该条线路所有的站点为属性值,创建文件Line_Info并存储到HDFS。在本专利技术一实施例中,所述步骤S3,具体包括:步骤S31:在Map函数中,从表IC_Card中读取一条IC卡记录,并获取其IC卡号、公交线路编号、刷卡时间、公交车辆编号信息;步骤S32:根据公交车辆编号从文件Bus_Info中获得相应公交车辆GPS设备编号;步骤S33:根据车辆GPS设备编号和刷卡时间对Bus_Avl表进行索引,查询出刷卡时间前3分钟,后7分钟时间段内该公交车辆所有进出站数据;步骤S34:遍历所有进出站数据,依次判断刷卡时间是否大于第一条车辆进站时间并且小于第二条车辆进站时间,若是,则计算刷卡时间与两次进站之间出站时间的时间差绝对值Δt1和刷卡时间与后进站时间的时间差绝对值Δt2;若Δt1<Δt2,返回第一条进站数据的行驶方向、经纬度信息,否则返回第二条进站数据的行驶方向、经纬度信息;若刷卡时间不符合条件,则开始读取下一条刷卡记录;步骤S35:根据步骤S31获取的线路编号和步骤S34获取的车辆行驶方向从文件Line_Info中获取对应的站点集合Station,包括每个站点的站点编号、站点名称、平面坐标信息;步骤S36:将步骤S34获取的车辆进站经纬度信息转换为墨卡托平面坐标;步骤S37:计算步骤S36获取的车辆位置信息与集合Station中每个站点的距离,并获得最小距离dmin,dmin所对应的公交站点即为该条IC卡记录的O点;步骤S38:判断该条刷卡记录是否是最后一条,若是,在结束该map任务,若不是,则读取下一条刷卡记录,进入下一条刷卡记录上车站点推算过程;在本专利技术一实施例中,所述步骤S4,具体包括:步骤S41:在Reduce函数中,以IC卡号为单位,将该IC卡卡号的所有上车记录按照刷卡时间排序;步骤S42:以IC卡号为键,以该IC卡用户的所有O点记录为属性值,以键值对形式输出到HDFS。在本专利技术一实施例中,所述步骤S5,具体包括:步骤S51:在步骤S4的基础上,Map函数中读取一个IC卡用户的所有上车记录;步骤S52:读取第i条上车记录,判断第i+1条数据是否存在,若不存在,则将第i条上车记录添加到集合Sa;若存在,则读取第i条和第i+1条上车记录;步骤S53:在步骤S5本文档来自技高网...
一种基于MapReduce的大规模公交乘客OD并行计算方法

【技术保护点】
一种基于MapReduce的大规模公交乘客OD并行计算方法,其特征在于:包括如下步骤,步骤S1:对原始公交数据包括IC卡数据、公交车辆GPS数据、公交车辆信息数据以及公交线路站点数据进行预处理;步骤S2:将预处理过IC卡数据、公交车辆GPS数据存储到HBase数据库;将公交车辆信息数据和公交线路站点数据存储到HDFS;步骤S3:根据MapReduce的特点,在Map函数中依次读取每条IC卡记录,获取其相关信息,根据车辆编号及其刷卡时间等信息获取到相应车辆进出站数据,再结合公交线路站点数据计算出该IC卡持有者乘坐公交出行的上车站点,即O点;步骤S4:在Reduce函数中对能够计算得到O点的IC卡记录,以IC卡号为单位进行归并,以键值对的形式输出到HDFS;步骤S5:在步骤S4的基础上,在新的Map函数中,依次读取每个用户已计算出O点的所有IC卡记录,将该些用户按照连续出行链方法推算得到出行D点的刷卡记录添加到集合Sb,而未能推算出D点刷卡记录添加到集合Sa;其中,出行D点即乘客公交出行的下车站点;步骤S6:在步骤S5的基础上,对集合Sa的刷卡记录,在Map函数中根据居民工作日和非工作日的出行特征,以及历史出行站点频次来推算乘客公交出行的下车站点;步骤S7:在Reduce函数中,按照刷卡时间对每个IC卡号的出行OD记录进行排序,并以IC卡号为键,以出行OD记录为值输出,完成大规模公交乘客OD并行计算过程。...

【技术特征摘要】
1.一种基于MapReduce的大规模公交乘客OD并行计算方法,其特征在于:包括如下步骤,步骤S1:对原始公交数据包括IC卡数据、公交车辆GPS数据、公交车辆信息数据以及公交线路站点数据进行预处理;步骤S2:将预处理过IC卡数据、公交车辆GPS数据存储到HBase数据库;将公交车辆信息数据和公交线路站点数据存储到HDFS;步骤S3:根据MapReduce的特点,在Map函数中依次读取每条IC卡记录,获取其相关信息,根据车辆编号及其刷卡时间等信息获取到相应车辆进出站数据,再结合公交线路站点数据计算出该IC卡持有者乘坐公交出行的上车站点,即O点;步骤S4:在Reduce函数中对能够计算得到O点的IC卡记录,以IC卡号为单位进行归并,以键值对的形式输出到HDFS;步骤S5:在步骤S4的基础上,在新的Map函数中,依次读取每个用户已计算出O点的所有IC卡记录,将该些用户按照连续出行链方法推算得到出行D点的刷卡记录添加到集合Sb,而未能推算出D点刷卡记录添加到集合Sa;其中,出行D点即乘客公交出行的下车站点;步骤S6:在步骤S5的基础上,对集合Sa的刷卡记录,在Map函数中根据居民工作日和非工作日的出行特征,以及历史出行站点频次来推算乘客公交出行的下车站点;步骤S7:在Reduce函数中,按照刷卡时间对每个IC卡号的出行OD记录进行排序,并以IC卡号为键,以出行OD记录为值输出,完成大规模公交乘客OD并行计算过程。2.根据权利要求1所述的一种基于MapReduce的大规模公交乘客OD并行计算方法,其特征在于:所述步骤S1中,对原始公交数据进行预处理包括:步骤S11:删除原始公交IC卡数据中不必要的字段,即保留IC卡号、刷卡时间、线路编号、公交车辆编号字段信息;步骤S12:删除原始公交车辆GPS数据中不必要字段,即保留GPS设备编号、线路编号、行驶方向、GPS时间、进出站标志、纬度、经度、站点编号字段信息;步骤S13:整理公交车辆信息数据,根据车辆编号和车辆GPS设备编号对应关系,即根据一个公交车辆编号找到对应的车辆GPS设备编号;步骤S14:整理公交线路及公交站点数据,转换公交站点的经纬度坐标系为WGS-84坐标系,同时转换公交站点经纬度信息为墨卡托平面坐标。3.根据权利要求1所述的一种基于MapReduce的大规模公交乘客OD并行计算方法,其特征在于:所述步骤S2,具体包括:步骤S21:在HBase数据库中创建表IC_Card,包含列簇IC_Info,将IC卡数据以IC卡号和刷卡时间为组合行键,分别以IC卡号、刷卡时间、线路编号、公交车辆编号为属性值添加到列簇IC_Info;步骤S22:在HBase数据库中创建表Bus_Avl,包含列簇AVL_Info,将公交车辆GPS数据以GPS设备编号和GPS时间为组合行键,分别以GPS设备编号、线路编号、行驶方向、GPS时间、进出站标志、纬度、经度、站点编号为属性值添加到列簇AVL_Info;步骤S23:将公交车辆信息数据以车辆编号为键,以车辆GPS设备编号为属性值,创建文件Bus_Info并存储到HDFS;步骤S24:将公交线路站点数据以线路编号为键,以该条线路所有的站点为属性值,创建文件Line_Info并存储到HDFS。4.根据权利要求3所述的一种基于MapReduce的大规模公交乘客OD并行计算方法,其特征在于:所述步骤S3,具体包括:步骤S31:在Map函数中,从表IC_Card中读取一条IC卡记录,并获取其IC卡号、公交线路编号、刷卡时间、公交车辆编号信息;步骤S32:根据公交车辆编号从文件Bus_Info中获得相应公交车辆GPS设备编号;步骤S33:根据车辆GPS设备编号和刷卡时间对Bus_Avl表进行索引,查询出刷卡时间前3分钟,后7分钟时间段内该公交车辆所有进出站数据;步骤S34:遍历所有进出站数据,依次判断刷卡时间是否大于第一条车辆进站时间并且小于第二条车辆进站时间,若是,则计算刷卡时间与两次进站之间出站时间的时间差绝对值Δt1和刷卡时间与后进站时间的时间差绝对值Δt2;若Δt1<Δt2,返回第一条进站数据的行驶方向、经纬度信息,否则返回第二条进站数据的行驶方向、经纬度信息;若刷卡时间不符合条件,则开始读取下一条刷卡记录;步骤S35:根据步骤S31获取的线路编号和步骤S34获取的车辆行驶方向从文件Line_Info中获取对应的站点集合Station,包括每个站点的站点编号、站点名称、平面坐标信息;步骤S36:将步骤S34获取的车辆进站经纬度信息转换为墨卡托平面坐标;步骤S37:计算步骤S36获取的车辆位置信息与集合Station中每个站点的距离,并获得最小距离dmin,dmin所对应的公交站点即为该条IC卡记录的O点;步骤S38:判断该条刷卡记录是否是最后一条,若是,在结束该map任务,若不是,则读取下...

【专利技术属性】
技术研发人员:邬群勇苏克云邹智杰
申请(专利权)人:福州大学
类型:发明
国别省市:福建,35

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

1