基于移动终端GPS定位数据记录计算个人通勤距离的方法与流程

文档序号:12821616阅读:576来源:国知局
基于移动终端GPS定位数据记录计算个人通勤距离的方法与流程
本发明属于计算机应用
技术领域
,特别涉及一种基于移动终端gps定位数据记录计算个人通勤距离的方法。
背景技术
:通勤是城市居民由于工作与居住地点分离而产生的出行行为,通勤出行是城市居民最基本和最重要的出行行为之一,对一个人的生活和工作具有重要影响,也影响着一个城市的经济和社会发展。近年来,随着城市的不断扩张和发展,居民职住分离现象加剧,通勤出行形势日益复杂,出行时间不断延长的问题开始凸现,尤其是早晚高峰通勤时段的交通拥堵已经成为城市交通最为突出的问题之一。改善居民通勤出行状况,缩短居民通勤时间,已经成为促进城市人居环境改善和城市交通可持续发展的必然要求。然而由于受到经济、技术、环境以及空间条件等制约,单纯依靠增加投资、进行大规模交通基础设施建设来解决城市交通问题的方法,已经不能适应目前城市交通快速发展的需要。因此对居民的出行需求和行为进行更加有效的引导和管理是对城市交通规划,甚至对城市建设中节约经济、优化环境以及空间合理利用等均产生重要影响。实践表明,个人对交通需求管理政策所反映出来的行为,经常是以个人出行效用最大化为目标。这就需要对个人通勤的特征进行分析,作为城市交通规划、建设和管理,以及城市社会学研究中的基础性工作。个人通勤距离是个人通勤特征中一个非常重要的指标。现有计算个人通勤距离的方法主要根据广泛采集到的用户定位数据加以分析、计算后得出通勤距离的方法,该方法在学术界和工业界已经具有广泛的应用。我国一些地方规划设计单位已经开始利用手机定位数据进行居民出行调查,并将结果用于建立城市交通规划。利用手机定位数据还可以从时间和空间两个维度可视化展示城市空间结构,为建立合理的城市空间规划提供指导。一些手机应用程序还通过利用手机定位数据来图形化展示城市活动,实现包括位置、行驶方向等旅游信息的获取。呼叫详细记录(cdr,calldetailrecord)数据是目前经常用于分析和计算个人通勤距离的手机定位数据来源。cdr是用户手机发生业务时的记录,其中的业务主要包括:1)用户在基站间切换,2)用户发短信,3)用户打电话等。根据cdr数据中涉及的基站位置可以估算出用户位置,再结合其他信息可以分析和计算出个人通勤距离。但是通过这些数据分析方法计算出的个人通勤距离的准确性和可靠性较低。首先,由于用户手机业务发生的时间并没有特定的规律,而且采集的数据是以定位精度较低的基站为单位的,因此根据这些数据计算出来的用户位置与实际位置存在较大的误差(百米级甚至千米级)。其次,由于用户在通勤的关键时间节点(从家出发、到达工作地点等)发生cdr业务事件的概率较低,再加上通过基站定位精度低,使得基于cdr分析和计算个人通勤距离的方法不符合用户个人真实的通勤状况,导致计算出的个人通勤距离不准确。此外,由于个人cdr数据往往较为稀疏,因此需要通过较长时间(往往需要数月)积累足够的数据才能得到有意义的结果,因此一般只能得到一段时间内的平均通勤距离。随着移动网络计算技术的发展,尤其是移动互联网技术的发展,智能移动终端(如智能手机)用户可以通过智能终端上的gps等传感器设备产生大量的用户位置、时间以及其他传感数据。利用用户使用gps定位时产生的位置数据(精度较高,误差范围在10到100米左右)来分析和计算个人通勤距离,与基于cdr基站定位数据的方法相比,具有较高的准确性。但是,现有利用gps定位数据计算个人通勤距离的方法仍然存在不符合用户实际情况的问题,准确性不够高。现有方法主要包括在计算出用户的热点位置(如家庭、公司)后,利用导航软件给出家庭和公司间的不同路径规划,再结合用户gps定位数据找出最佳匹配路径(依据最小距离误差或者最大路线支持率),这样得到的通勤结果往往与真实情况差别较远(参见博士论文:刘浩.基于移动终端众包数据的定位技术研究.北京:清华大学,2014:65-77)。聚类分析是研究分类问题时一种常用的多变量统计分析方法,在市场分析、生物基因分类、保单销售等领域都具有广泛的应用。聚类的计算方法主要有层次方法、划分方法、基于密度的方法以及基于网格的方法等多种方法。聚类的一般方法是首先确定两个对象之间相似程度的衡量标准,然后依据该标准对所有对象进行聚类,形成一系列由相似程度较高对象构成的聚合。由于事先很难确定用户定位数据的聚合个数,所以本发明不能采用划分方法。基于密度的方法主要是去除“噪声”,然后获取空间内一定区域内密度较大的聚合,这样会去除较多的用户定位数据,使得聚类结果并不可靠。基于网格的方法在处理不规则分布的数据时效果差,因此不太适合用于分析不是很规则的用户定位数据。层次聚类的方式简单、高效,主要有自下而上和自上而下两种方法。由于用户定位数据分布较分散,采用自下而上的层次聚类方法时计算次数更少,效率更高。本发明利用自下而上的层次聚类方法,基于两个物理位置之间的地理距离来计算两个定位记录间的相似程度,具有简单、直观、高效的特点。技术实现要素:本发明的目的是为了克服已有技术的不足之处,提出一种基于移动终端gps定位数据记录计算个人通勤距离的方法。本发明从广泛采集到的用户gps定位数据记录中计算用户的个人通勤距离,在短期内采集的gps数据记录量较少情况下仍然能够准确计算出个人通勤距离。本发明提出的一种基于移动终端gps定位数据记录计算个人通勤距离的方法,其特征在于,包括以下步骤:1)数据采集;以固定频率对某个移动终端的用户产生的gps定位数据记录进行采样,并在该用户地理位置发生变化时保存gps定位数据记录,收集一段时间内该用户产生的gps定位数据记录,每条定位数据记录包括:该用户的标识、经度、纬度以及当前定位数据记录发生的时间;2)计算中心点,建立中心点记录集;具体步骤如下:2.1)构建中断时刻数组及中心点记录集,初始化中断时刻数组及中心点记录集为空;2.2)按时间顺序依次排列步骤1)得到的该用户产生的gps定位数据记录;2.3)顺序遍历步骤2.2)中排列后的该用户gps定位数据记录,依次计算相邻两条gps定位数据记录的地理距离:如果当前gps定位数据记录和相邻下一条gps定位数据记录的地理距离大于指定距离阈值1,或者它们发生的时间差大于指定时间阈值,则将该相邻下一条gps定位数据记录的发生时间标记为一个中断时刻并将该时刻放入中断时刻数组里;计算相邻两条gps定位数据记录的地理距离具体方法如下:令相邻两条gps定位数据记录中经纬度坐标所对应的物理位置分别记为(lat1,lng1)和(lat2,lng2),其中,lat表示纬度,lng表示经度,计算两物理位置(lat1,lng1)和(lat2,lng2)所分别对应的弧度和其中γi=lngi/180*π,然后由球面余弦定律计算出这两个物理位置间的圆心角如式(1)所示:则(lat1,lng1)和(lat2,lng2)之间的地理距离表达式如式(2)所示:d=r*θ(2)其中,sin,cos,arccos分别为正弦,余弦,反余弦函数,r为地球平均半径;2.4)利用步骤2.3)得到的中断时刻数组,切分步骤2.2)中得到的排列后的该用户gps定位数据记录,得到一系列连续的切分记录集合,并将中断时刻所对应的gps定位数据记录划分到它所切分得到的下一个切分记录集合中;2.5)令步骤2.4)得到的每个切分记录集合中所有gps定位数据记录所对应的物理位置的经纬度坐标重心为该切分记录集合的中心点;以每个切分记录集合的中心点作为该用户所在的物理位置,并以该切分记录集合第一条gps定位数据记录的发生时间作为该中心点的发生时间,将用户标识、该中心点的经纬度坐标,以及该中心点的发生时间作为一条中心点记录存入中心点记录集;一个切分记录集合内,经纬度坐标重心计算方法如下:假设该切分记录集合所包含的gps定位数据记录所对应的物理位置的经纬度坐标分别为[(lat1,lng1),(lat2,lng2),…,(latn,lngn)],则该切分记录集合的经纬度坐标重心的经纬度坐标为表达式如式(3)所示:式(3)计算得到的经纬度坐标即为该切分记录集合的中心点的经纬度坐标;3)对中心点记录进行聚类,计算通勤关键点;具体步骤如下:3.1)构建聚合数组a,距离矩阵m;初始化聚合数组a,距离矩阵m为空;3.2)根据步骤2)得到的每个中心点的经纬度坐标,按照式(1)和式(2)计算每两条中心点记录之间的地理距离;根据所求得的地理距离的大小对所有中心点记录进行聚类,得到一系列聚合,并更新聚合数组a;3.3)利用式(3),计算出步骤3.2)更新后的聚合数组a中每个聚合的经纬度坐标重心作为该聚合对应的通勤关键点,所述通勤关键点包含了该用户家庭和工作地点位置的候选地点;4)确定用户家庭和工作地点的地理位置;对步骤3.2)更新后的聚合数组a中每个聚合按照该聚合中在夜晚发生的中心点记录数从多到少依次进行排序,取出发生在夜晚中心点记录数最多的聚合所对应的通勤关键点作为该用户家庭的地理位置;对聚合数组a中剩余的聚合,计算每个聚合中所含中心点记录数和对应通勤关键点到家庭距离的乘积,并选取乘积最大者所对应的通勤关键点作为该工作地点的地理位置;5)计算每天的通勤轨迹;计算用户每天上班的通勤轨迹作为该用户每天的通勤轨迹,具体步骤如下:5.1)将步骤2)得到的中心点记录集根据每条中心点记录的发生时间分割成每天的中心点记录集;5.2)按照时间顺序对步骤5.1)中得到的某一天的中心点记录集中的所有中心点记录进行排序,并构建轨迹数组,初始化轨迹数组为空;5.3)检查步骤5.2)所选定中心点记录集中当天在上午时段内发生的中心点记录所属的聚合,找到最后一次属于家庭所在聚合的中心点记录,将该中心点作为该用户当天上班通勤的起始点;5.4)按时间顺序,依次遍历上午时段的中心点记录中从上班通勤起始点发生时间开始的所有中心点记录,按顺序放入轨迹数组中,并判定该中心点记录是否属于工作地点所在的聚合:如果属于,则将该中心点作为用户当天上班通勤的结束点,用户当天上班通勤的轨迹数组建立完毕;依次连接轨迹数组中上班通勤起始点和结束点发生时间之间的中心点,形成用户当天的上班通勤轨迹;5.5)对剩余的其余每天的中心点记录集重复步骤5.2)到步骤5.4),得到该用户每天的上班通勤轨迹;6)计算每天的通勤距离;具体步骤如下:6.1)利用式(1)和式(2),依次计算从步骤5)中得到的每天的通勤轨迹中相邻两中心点的地理距离作为相邻两中心点的路径距离,如果该路径距离高于指定距离阈值3,距离阈值3>距离阈值1,则通过地图导航的路径规划,分别计算步行、骑行、驾车、公交主要交通方式的路径距离,选取其中路径距离的最小值作为这两中心点间的路径距离;6.2)对步骤6.1)计算得到的连续两中心点间的路径距离求和,并以路径距离之和作为用户当天的通勤距离;7)计算一段时间内的平均通勤距离;令pi表示步骤6)中计算出的用户第i天的通勤距离,则该用户一段时间内的平均通勤距离的表达式为:∑iαi·pi,其中αi为第i天通勤轨迹的权重,且∑iαi=1。本发明的特点及有益效果:(1)本发明对采集到的gps数据进行了预处理,通过使用连续点定位坐标的经纬度坐标重心来克服gps定位瞬时“偏移”现象所带来的定位误差,使得gps定位数据的位置更加准确;(2)本发明不根据导航软件给出的家庭和工作地点间的规划路径来估算通勤距离,而是首先计算出个人的通勤移动轨迹,然后再通过计算相邻轨迹点之间的距离和来得到通勤距离,这样得到的通勤距离更加符合用户通勤的实际情况;(3)本发明通过分析个人每天的通勤轨迹来计算当天的通勤距离,然后利用加权平均来求得一段时间内的平均通勤距离,更加适合于日益复杂的通勤出行形势,而现有方法利用导航软件给出的规划路径计算通勤距离的方法只能求出一段时间内的平均通勤距离。(4)本发明的方法对用户gps定位数据的质量、密度没有特定的要求,具有一定的通用性。与其它通用算法不同的是,本发明特别适用于频率和精度较高的数据,采集到的数据频率精度越高,得到的结果也会越准确。附图说明图1是本方法的总体流程图。图2是本发明方法中步骤2)的的流程图。具体实施方式本发明提出的一种基于移动终端gps定位数据记录计算个人通勤距离的方法,结合附图及实施例详细说明如下。本发明的方法主要基于以下原理:大部分人的工作地点、工作时间相对固定,通勤的方式、路线也相对规律。因此,在通过软件采集等方式收集到用户不同时间点的gps定位数据记录后,就可以首先分析出用户的家庭、工作地点的地理位置,然后再通过分析用户在家庭和工作地点间的gps定位数据记录,就可以得到用户通勤的轨迹。对得到的通勤轨迹加以分析就可以计算出用户个人通勤的准确距离。本发明的方法对用户gps定位数据的质量、密度没有特定的要求,具有一定的通用性。与其它通用算法不同的是,本发明特别适用于频率和精度较高的数据,采集到的数据频率精度越高,得到的结果也会越准确。本发明提出的一种基于移动终端gps定位数据记录计算个人通勤距离的方法,本实施例设计并实现了一个移动终端用户gps定位数据记录采集软件,能以固定频率采集gps定位数据记录,并在用户地理位置发生变化时保存gps定位数据记录。本发明并不局限于特定软件采集到的gps定位数据记录,本发明的算法适用于任何符合本发明条件的gps定位数据。本发明提到的阈值或个数选择,可以设定为任何值,这些值的设定只会影响结果精度,不会对方法本身造成影响。本发明提出的一种基于移动终端gps定位数据记录计算个人通勤距离的方法,总体流程如图1所示,包括以下步骤:1)数据采集;以固定频率(通常取值范围为每10秒钟一次到每20分钟一次,本实施例为每5分钟一次)对某个移动终端的用户产生的gps定位数据记录进行采样(进行数据采集的软件没有特别限制,本实施例采用的是自主设计的一个移动终端用户gps定位数据记录采集软件),并在该用户地理位置发生变化时保存gps定位数据记录,收集一段时间内(本实施例为3天)该用户产生的gps定位数据记录,每条定位数据记录包括:该用户的标识(手机号)、经度、纬度以及当前定位数据记录发生的时间。在本实施例中,把一条gps定位数据记录的经度、纬度记为一个[lat,lng]数据对,并把该用户产生的gps定位数据记录存储到mysql数据库。一条gps定位数据记录的数据格式如表1所示:表1用户gps定位数据记录的数据格式表字段描述类型长度举例uid用户标识字符串20字节18888888888time发生时间日期时间19字节2017-02-2811:59:59latitude纬度双精度浮点数8字节46.339202longitude经度双精度浮点数8字节121.3938332)计算中心点,建立中心点记录集,流程如图2所示;gps定位往往会出现一定的瞬时“偏移”,即当用户本身的实际物理坐标没有发生变化或者只发生了较小变化时,gps定位数据记录产生的经纬度坐标,即[lat,lng]数据对,发生了较大的变化,其中,lat表示纬度,lng表示经度;本发明使用连续的gps定位数据记录的经纬度坐标来克服偏移,具体步骤如下:2.1)构建中断时刻数组及中心点记录集,初始化中断时刻数组及中心点记录集为空;2.2)按时间顺序依次排列步骤1)得到的该用户产生的gps定位数据记录;2.3)顺序遍历步骤2.2)中排列后的该用户gps定位数据记录,依次计算相邻两条gps定位数据记录的地理距离:如果当前gps定位数据记录和相邻下一条gps定位数据记录的地理距离大于指定距离阈值1(通常取值范围为50米到200米,本实施例设为100米),或者它们发生的时间差大于指定时间阈值(通常取值范围为2分钟至30分钟,本实施例为5分钟),则将相邻下一条gps定位数据记录的发生时间标记为一个中断时刻并将该时刻放入中断时刻数组里;计算相邻两条gps定位数据记录的地理距离具体方法如下:令相邻两条gps定位数据记录中经纬度坐标所对应的物理位置分别记为(lat1,lng1)和(lat2,lng2),计算两物理位置(lat1,lng1)和(lat2,lng2)所分别对应的弧度和其中γi=lngi/180*π,然后由球面余弦定律计算出这两个物理位置间的圆心角如式(1)所示:则(lat1,lng1)和(lat2,lng2)之间的地理距离表达式如式(2)所示:d=r*θ(2)其中,sin,cos,arccos分别为正弦,余弦,反余弦函数,r为地球平均半径;2.4)利用步骤2.3)得到的中断时刻数组,切分步骤2.2)中得到的排列后的该用户所有gps定位数据记录,得到一系列连续的切分记录集合,并将中断时刻所对应的gps定位数据记录划分到它所切分得到的下一个切分记录集合中。例如,按时间顺序排列后的gps定位数据记录共有7条,依次记为:[(18811327399,2017-03-2707:79:03,46.339202,121.393713),(18811327399,2017-03-2708:01:02,46.339313,121.393833),(18811327399,2017-03-2708:04:12,46.339392,121.393686),(18811327399,2017-03-2708:09:13,46.339484,121.393344),(18811327399,2017-03-2708:11:31,46.339528,121.393347),(18811327399,2017-03-2708:12:21,46.339556,121.393233),(18811327399,2017-03-2708:16:45,46.339792,121.393812)]以第1条记录为例,18811327399为用户标识,2017-03-2707:79:03为gps定位数据记录发生的时间,46.339202代表纬度,121.393713代表经度。令第2,第4和第6条gps定位数据记录发生的时间为三个中断时刻,则中断时刻数组为[2017-03-2708:01:02,2017-03-2708:09:13,2017-03-2708:12:21];利用该中断时刻数组,切分所有gps定位数据记录,得到的切分记录集合为{(18811327399,2017-03-2707:79:03,46.339202,121.393713)},{(18811327399,2017-03-2708:01:02,46.339313,121.393833),(18811327399,2017-03-2708:04:12,46.339392,121.393686)},{(18811327399,2017-03-2708:09:13,46.339484,121.393344),(18811327399,2017-03-2708:11:31,46.339528,121.393347)}以及{(18811327399,2017-03-2708:12:21,46.339556,121.393233),(18811327399,2017-03-2708:16:45,46.339792,121.393812)}。2.5)令步骤2.4)得到的每个切分记录集合中所有gps定位数据记录所对应的物理位置的经纬度坐标重心为该切分记录集合的中心点。一个切分记录集合内,经纬度坐标重心通过如下方法计算:假设该切分记录集合所包含的gps定位数据记录所对应的物理位置的经纬度坐标分别为[(lat1,lng1),(lat2,lng2),…,(latn,lngn)],则该切分记录集合的经纬度坐标重心的经纬度坐标(即该切分记录集合的中心点的经纬度坐标)的表达式如式(3)所示:以每个切分记录集合的中心点作为该用户所在的物理位置,并以该切分记录集合第一条gps定位数据记录的发生时间作为该中心点的发生时间,将用户标识、该中心点的经纬度坐标,以及该中心点的发生时间作为一条中心点记录存入中心点记录集。计算得到的一条中心点记录的数据格式如表2所示:表2中心点记录的数据格式表字段描述类型长度举例uid用户标识字符串20字节18888888888longitude经度双精度浮点数8字节121.393833latitude纬度双精度浮点数8字节46.339202time发生时间日期时间20字节2017-02-2811:59:593)对中心点记录进行聚类,计算通勤关键点;具体步骤如下:3.1)构建聚合数组a,距离矩阵m;初始化聚合数组a,距离矩阵m为空;3.2)根据步骤2)得到的每个中心点的经纬度坐标,按照式(1)和式(2)计算每两条中心点记录之间的地理距离;根据所求得的地理距离的大小对所有中心点记录进行聚类(本实施例采用常规的聚类方法),得到一系列聚合,并更新聚合数组a;所述步骤3.2)中,根据所求得的地理距离的大小对所有中心点记录进行聚类,具体步骤如下:3.2.1)将每条中心点记录初始化为只拥有一个中心点(只包含一组经纬度坐标)的聚合cl,cl的表达式为{(latl,lngl),l},其中l为聚合的编号,l=0,1.2…n-1,n为中心点个数;初始化完成后,将所有聚合存入聚合数组a中,得到{c0,c1,…,cn-1};3.2.2)定义每两个聚合之间的距离为从两个聚合中各任意取一个中心点进行计算所得到的最大地理距离;按照式(1)和式(2)计算聚合数组a中每两个聚合之间的距离,并存入距离矩阵m中,m[i][j]表示聚合ci和聚合cj之间的距离;m的示例如下:3.2.3)遍历距离矩阵m中每个元素所代表的距离,在聚合数组a中找到最小的距离所对应的两个聚合cx和cy,判定cx和cy之间的距离与指定距离阈值2(常规取值范围是50米至200米,本实施例具体取值为100米)的关系,距离阈值2与距离阈值1的取值可以相同或不相同:3.2.3.1)如果cx和cy之间的距离大于或者等于指定距离阈值2,则聚类完成,转入步骤3.3);3.2.3.2)如果cx和cy之间的距离小于指定距离阈值2,则将聚合cx和cy合并为新的聚合,该新聚合的编号在聚合数组a的最后一个聚合编号后加1,记为cn,cn中包含cx和cy中的所有中心点;从聚合数组a中删除聚合cx和cy并插入聚合cn,更新聚合数组a;删除距离矩阵m中cx和cy代表的行和列,计算cn与更新后的聚合数组a中所有聚合的距离,并将计算出的距离作为新行与新列插入到矩阵m中,重新寻找在距离矩阵m中最小的距离及其所对应的聚合数组a中的两个聚合,并再次判定,直到找到距离矩阵m中最小的距离所对应的两个聚合之间的距离大于或者等于指定距离阈值2,则聚类完成,转入步骤3.3);;3.3)利用式(3),计算出步骤3.2)更新后的聚合数组a中每个聚合的经纬度坐标重心作为该聚合对应的通勤关键点,所得到的聚合的经纬度坐标重心(通勤关键点)包含了家庭和工作地点位置的候选地点。4)确定用户家庭和工作地点的地理位置;对经过步骤3.2)聚类完成后的聚合数组a中每个聚合按照该聚合中在夜晚(本实施例规定夜晚为晚9点到早6点)发生的中心点记录数从多到少依次进行排序,取出发生在夜晚中心点记录数最多的聚合所对应的通勤关键点作为该用户家庭的地理位置。对聚合数组a中剩余的聚合,计算每个聚合中所含中心点记录数和对应通勤关键点到家庭距离的乘积,并选取乘积最大者所对应的通勤关键点作为该工作地点的地理位置。这里基于社会学假设,工作地点往往在出现频率较高且离家庭较远的位置。计算出的用户家庭和工作地点的地理位置的数据格式如表3所示:表3家庭和工作地点的地理位置的数据格式表5)计算每天的通勤轨迹;计算每天的通勤轨迹可采用计算用户每天上班的通勤轨迹或者下班的通勤轨迹中的一种作为该用户每天的通勤轨迹,本实施例采用计算每天上班的通勤轨迹。具体步骤如下:5.1)将步骤2)得到的中心点记录集根据每条中心点记录的发生时间分割成每天的中心点记录集;5.2)按照时间顺序对步骤5.1)中得到的某一天的中心点记录集中的所有中心点记录进行排序,并构建轨迹数组,初始化轨迹数组为空;5.3)检查步骤5.2)所选定中心点记录集中当天在上午(本实施例定义上午为6点至11点)时段内发生的中心点记录所属的聚合,找到最后一次属于家庭所在聚合的中心点记录,将该中心点作为该用户当天上班通勤的起始点;5.4)按时间顺序,依次遍历上午时段的中心点记录中从上班通勤起始点发生时间开始的所有中心点记录,按顺序放入轨迹数组中,并判定该中心点记录是否属于工作地点所在的聚合:如果属于,则将该中心点作为用户当天上班通勤的结束点,用户当天上班通勤的轨迹数组建立完毕;依次连接轨迹数组中上班通勤起始点和结束点发生时间之间的中心点,形成用户当天的上班通勤轨迹;5.5)对剩余的其余每天的中心点记录集重复步骤5.2)到步骤5.4),得到该用户每天的上班通勤轨迹。本步骤中所述的每天的通勤轨迹计算方法为计算该用户每天的上班通勤轨迹,该计算方法也可用来计算用户的下班通勤轨迹,具体方法为:检查发生在下午时段(通常为下午4点至下午9点)的中心点记录的所属聚合,找到最后一次属于工作地点所在聚合的中心点记录,将该中心点作为该用户当天下班通勤的起始点;按时间顺序,依次遍历下午时段的中心点记录中从下班通勤起始点发生时间开始的所有中心点记录,按顺序放入轨迹数组中,并判定该中心点记录是否属于家庭所在的聚合:如果属于,则将该中心点作为用户当天下班通勤的结束点,用户当天下班通勤的轨迹数组建立完毕;依次连接轨迹数组中下班通勤起始点和结束点发生时间之间的中心点,形成用户当天的下班通勤轨迹。6)计算每天的通勤距离;具体步骤如下:6.1)利用式(1)和式(2),依次计算从步骤5)中得到的每天的通勤轨迹中相邻两中心点的地理距离作为相邻两中心点的路径距离。如果该路径距离高于指定距离阈值3,(通常取值范围为1km至3km,本例实施为1.5km),距离阈值3>距离阈值1,往往是由于该连续两中心点间的gps信号较差等原因造成的定位数据缺失,则通过地图导航的路径规划,分别计算步行、骑行、驾车、公交等主要交通方式的路径距离,基于个人在通勤时往往选择最短的路径的假设,选取其中路径距离的最小值作为这两中心点间的路径距离;6.2)对步骤6.1)计算得到的连续两中心点间的路径距离求和,并以路径距离之和作为用户当天的通勤距离;计算得到的用户某一天通勤距离的数据格式如表4所示:表4用户某一天通勤距离的数据格式7)计算一段时间内的平均通勤距离。令pi表示步骤6)中计算出的用户第i天的通勤距离,则该用户一段时间内的平均通勤距离的表达式为:∑iαi·pi,其中αi为第i天通勤轨迹的权重,且∑iαi=1。本例实施中,设置一段时间为3天,用户第一天的权重α1为0.2,通勤距离p1为11763.235883米,第二天的权重α2为0.5,通勤距离p2为10376.233588米,第三天的权重α3为0.3,通勤距离p3为9991.883265米,则该用户的平均距离为10538.328950米。计算得到的用户某一段时间的平均通勤距离的存储格式如表5所示:表5用户一段时间内的平均通勤距离数据存储格式表字段描述类型长度举例uid用户标识字符串20字节18888888888sdate起始日期日期10字节2017-03-01edate终止日期日期10字节2017-03-03adistance平均通勤距离双精度浮点数8字节10538.328950当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1