基于手机定位数据的停留点提取方法与流程

文档序号:11524987阅读:439来源:国知局
基于手机定位数据的停留点提取方法与流程

本发明涉及交通规划领域,尤其涉及一种基于手机定位数据的停留点提取方法。



背景技术:

出行活动在交通中有着重要价值,出行活动数据是用于交通需求分析、制定交通规划的重要基础信息,是反映出行需求空间分布的重要参数,交通分配模型也要求准确的活动矩阵作为输入。由于传统的居民出行调查和路边询问等调查方式存在较大局限性,在实际应用中很难获取高质量的活动数据,因此,传统的出行活动数据调查方式不能准确地反映交通出行的实际情况,不利于交通规划的合理制定。随着手机定位技术的出现以及手机用户的快速增长,基于手机定位技术的新的活动获取方法逐渐受到重视,但使用手机定位相比于传统调查方式的主动性,其被动性导致不能直接通过定位数据获取得到出行信息,因此我们需求一种方法能够简单快速的获取到出行信息。当前的获取出行信息的流程大体是通过对目标对象进行定位,通过连续追踪其位置变化信息,在此基础上进行数据处理和建模分析,提炼出相应的出行活动信息。

具体到行程识别的算法方面主要有探索性方法和聚类法两大类。探索性方法首先考虑个体发生停留活动时的时空表现或定位设备的特征,以这些作为已知经验,设计算法对原始数据进行处理。具体算法包括基于记录间隙的方法,基于静止点的方法及基于缺失点的方法,基于方向特征的方法等,聚类法主要考虑轨迹数据一般以等时间间隔的方式采集,因此发生停留活动时将会有大量轨迹点聚集在某一位置附近,故可以使用聚类的方法进行识别。具体算法包括基于k-均值聚类、基于dbscan聚类。上述方法对于通过手机的定位方式获取到的定位数据进行停留点的识别是不适用的,因为手机的定位方式采用的是混合定位,在gps定位满足不了需求时会使用基站定位和wifi定位,导致收集到的数据中缺失数据较少且能够用户基本全天开机基本不会出现关闭定位功能的情况出现。由于室内的定位数据离散性明显,与室外定位数据具有较大差异,因此聚类方法对于这两种停留点会出现误判。



技术实现要素:

本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种基于手机定位数据的停留点提取方法。

本发明解决其技术问题所采用的技术方案是:基于手机定位数据的停留点提取方法,包括以下步骤:

1)首先设定一个标签flag,该标签代表是否进入室内,初始值为false,表示在室外;接下来寻找进入室内前的突变点:将定位数据进行投影变换,将地理坐标通过墨卡托投影变化公式变为平面坐标系;

2)对1)得到变换后的定位数据进行遍历,每次判断两个点,若前一个的定位漂移误差小于设定阈值而后一个点的定位漂移误差大于设定阈值时且速度值都不超过设定值,则认为后一个点为进入室内前的突变点cb,认为该突变点可能为进入室内的第一个点,转入步骤3);

3)以进入室内前的突变点cb为起始点,开始计算突变点cb后其之后预设时间范围内(室内移动的最短时间,一般不会低于5分钟)所有点的定位漂移误差和速度,若超过2/3的点的定位漂移误差大于定位漂移误差阈值且速度的平均值低于速度阈值,则确认cb(定位点)为进入室内的第一个点,并将flag的值改为true并进入步骤4);

4)寻找走出室内的突变点ca:遍历ca之后预设时间范围之内的所有的点,判断其每两个相邻点的定位漂移误差是否再次发生突变,若前一个的定位漂移误差大于阈值(60)而后一个点的定位漂移误差小于阈值(30)且速度值都不超过1m/s,则认为后一个点点为走出室内的突变点ca,并仿照2)计算预设时间范围所有点的定位漂移误差和速度并进行计算,满足条件则确认ca(定位点)为走出室内的第一个点,并将flag的值改为false,并进入5);

5)判断flag是否为true,将满足条件的所有的点都存于一个point点集pi中,作为候选停留点并给予初始编号编号;

6)重复步骤2)到5),当每次4)的条件满足,point点集中的编号i加1,直到所有轨迹点遍历完成;

7)依据point点集中的标号,依次计算候选停留点所围凸包的面积以及所拥有的轨迹点数量,最后计算单位面积内的点的数量是否超出阈值,若不超出,则将该候选停留点删除,最后,求出剩下的停留点的凸包的中心,该中心为最后的室内停留点;

8)根据步骤7)的point点集的质心,将point点集进行合并,合并后的候选停留点确认为室内停留点;

9)在原始轨迹数据点中去除步骤6)所得的全部point点集;

10)遍历步骤9)所得的数据,判断相邻两个点的速度和加速度是否产生突变,没有则并给予相同编号,若有突变则给予不同编号;

11)使用滑动窗口遍历步骤10)所得的数据中编号相同的轨迹数据,计算每个滑动窗口中的轨迹数据的平均速度,若平均速度大于2m/s,则窗口大小设为5分钟,若平均速度小于2m/s,则窗口大小设为1分钟;

12)找到滑动窗口里的数据的距离最远的两个点,若其距离小于距离阈值或该窗口的平均速度和平均加速度与前一个窗口的平均速度和平均加速度差异较大,那么则将窗口内的数据存于outpoint点集中,作为候选停留点,并进行标号;

13)重复步骤6)和步骤7)的方法,最后得到室外停留点。

按上述方案,所述步骤1)中的坐标变换和定位漂移误差的突变是通过以下方式实现的:

将地理坐标的经纬度转化为墨卡托投影坐标系,投影变换的公式为

c=2*pi*r=2*20037508.342789

式中,c为地球周长,pi为圆周率,r为地球半径,lon为经度,lat为纬度,x和y为变换后的经纬度值。

按上述方案,所述步骤1)中的定位漂移误差阈值如下,分别比较前一个轨迹点与后一个轨迹点的定位精度,若前一个的点位漂移误差阈值为30,后一个轨迹点的定位精度漂移误差阈值为60,且速度值都不超过1m/s。

按上述方案,所述步骤6)的求取凸包的中心是通过以下方式实现的:

根据point点集,以point点集中经度最小的点为顶点,以该顶点连接最外层的点得到多个多变形,其中多边形最小的为凸包,;将多边形以三角形进行分割,求出每个三角形的重心和面积,并累加每个三角形重心和面积的乘积,并除以总面积,总面积为每个三角形面积的和,最后得到point点集中的重心,即凸包的中心;

按上述方案,所述步骤7)的停留点合并是通过以下方式实现的:

1)比较每两个point点集中的质心的距离

式中,x和y为第一个质心的经纬度,x0和y0为第二个质心的经纬度,d为两点之间的距离;

2)若1)所得距离小于阈值,则将两点合并为一个点,合并的方法为求两个质心的平均经纬度,将平均值作为合并后的停留点的中心;若1)所得距离大于等于阈值,便找后两个点,前两个点作为最后的停留点被保存起来,直到point点集中的数据遍历完,最后得到包含所有停留点的集合。

按上述方案,所述步骤11)的窗口内的距离最远的点是通过以下方式实现的:

11.1)通过求凸包的方法求出滑动窗口内的多边形的顶点;

11.2)计算多边形经度方向上的端点。我们称之为ymin和ymax;

11.3)通过ymin和ymax构造两条水平切线。由于他们已经是一对对踵点,计算他们之间的距离并维护为一个当前最大值;

11.4)同时旋转两条线直到其中一条与多边形的一条边重合;

11.5)一个新的对踵点对此时产生。计算新的距离,并和当前最大值比较,若大于当前最大值则更新;

11.6)重复步骤11.4)和步骤11.5)的过程直到再次产生对踵点对(ymin,ymax);

11.7)输出确定最大直径的对踵点对;

11.8)计算该对踵点对的距离,若其距离小于距离阈值,则判断为候选停留点;

11.9)计算该窗口的平均速度和平均加速度,并将至保存起来

11.10)重复11.1)-11.9),若11.8)不满足,将上次11.9)计算的速度与上个窗口的平均速度和平均加速度进行计较,若他们的绝对差的值大于一定的阈值,同样判断为室外候选停留点。

本发明产生的有益效果是:本发明根据手机获取到的定位数据、陀螺仪数据、个人社会经济属性数据自动识别居民的停留点,识别结果准确,能为交通规划、交通需求预测提供有效的数据参考。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明实施例的方法流程图。

图2是本发明实施例的求取停留点凸包的中心的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

如图1所示,基于手机定位数据的停留点提取方法,包括以下步骤:

步骤一:将定位数据进行投影变换后进行遍历,每次判断两个点,若前一个的定位漂移误差小于阈值而后一个点的定位漂移误差大于阈值时,则认为该点可能为进入室内前的突变点;

步骤二:以突变点为起始点,开始计算其5分钟之后所有点的定位漂移误差和速度,若超过2/3的点的定位漂移误差大于定位漂移误差阈值和速度的平均值低于速度阈值,则确认进入室内,并给予一个标签,将满足标签的点都存于一个point点集中,作为候选停留点并给予编号;

步骤三:继续判断之后的两个相邻点,判断是否信号点是否再次发生突变,若前一个的定位漂移误差大于阈值而后一个点的定位漂移误差小于阈值时,则认为该点可能为走出室内的突变点;

步骤四:以突变点为起始点,开始计算其5分钟之后所有点的定位漂移误差和速度,若超过2/3的点的定位漂移误差小于定位漂移误差阈值和速度的平均值大于速度阈值,则确认走出,改变步骤二的标签;

步骤五:重复步骤一到四,每完成一次步骤二到四的判断,point点集中的编号加1,直到所有轨迹点遍历完成;

步骤六:依据point点集中的标号,依次计算候选停留点所围凸包的面积以及所拥有的轨迹点数量,最后计算单位面积内的点的数量是否超出阈值,若不超出,则将该候选停留点删除,最后,求出剩下的停留点的凸包的中心,该中心为最后的室内停留点;

步骤七:根据步骤六的point点集的质心,将point点集中进行合并,合并后的候选停留点确认为室内停留点;

步骤一的坐标变换和定位漂移误差的突变是通过以下方式实现的:

1)将地理坐标的经纬度转化为墨卡托投影坐标系,投影变换的公式为:

c=2*pi*r=2*20037508.342789

式中,c为地球周长,pi为圆周率,r为地球半径,lon为经度,lat为纬度,x和y为变换后的经纬度值

2)遍历数据,分别比较前一个轨迹点与后一个轨迹点的定位精度,若前一个的点位精度小于30,而后一个轨迹点的定位精度大于60,且速度值都不超过1m/s,则后一个点为突变点。

步骤六的求取停留点凸包的中心是通过以下方式实现的:

1)删除point点集中经纬度坐标相同的点;

2)在所有point点中选取纬度坐标最小的一点h,当作基点。如果存在多个点的纬度坐标都为最小值,则选取经度坐标最小的一点。然后按照其它各点p和基点构成的向量<h,p>;与经度轴的夹角进行排序,夹角由大至小进行顺时针扫描,反之则进行逆时针扫描,计算时使用夹角的余弦值即可

式中,b为和c为其他两点与基点的距离,a为另外两点的距离,cosa为其他两点与几点构成的夹角余弦;

以图2为例,基点为h,根据夹角由小至大排序后依次为h,k,c,d,l,f,g,e,i,b,a,j。下面进行逆时针扫描。

3)线段<h,k>;一定在凸包上,接着加入c。假设线段<k,c>;也在凸包上,因为就h,k,c三点而言,它们的凸包就是由此三点所组成。但是接下来加入d时会发现,线段<k,d>;才会在凸包上,所以将线段<k,c>;排除,c点不可能是凸包。

4)即当加入一点时,必须考虑到前面的线段是否会出现在凸包上。从基点开始,凸包上每条相临的线段的旋转方向应该一致,并与扫描的方向相反。如果发现新加的点使得新线段与上线段的旋转方向发生变化,则可判定上一点必然不在凸包上。实现时可用向量叉积进行判断,设新加入的点为pn+1,上一点为pn,再上一点为pn-1。

顺时针扫描时,如果向量<pn-1,pn>;与<pn,pn+1>;的叉积为正(逆时针扫描判断是否为负),则将上一点删除。删除过程需要回溯,将之前所有叉积符号相反的点都删除,然后将新点加入凸包。叉积的计算公式为

a=<pn-1,pn>=(xn-xn-1,yn-yn-1)

b=<pn,pn+1>=(xn+1-xn,yn+1-yn)

a×b=((xn-xn-1)*(yn+1-yn)+(yn-yn-1)*(xn+1-xn))

式中x和y分别代表p的经纬度

5)在上图中,加入k点时,由于线段<h,c>要旋转到<h,k>的角度,为顺时针旋转,所以c点不在凸包上,应该删除,保留k点。接着加入d点,由于线段<k,d>要旋转到<h,k>的角度,为逆时针旋转,故d点保留。按照上述步骤进行扫描,直到点集中所有的点都遍历完成,即得到凸包。

6)求出凸包所构成的多边形的面积,凸包的面积的计算,以某个点位顶点,遍历凸包的其他点,两两与顶点组成三角形,将每个三角形的面积累加起来,三角形的面积公式为统计point点集中的点数n,计算单位面积点的密度,删除不满足密度阈值的候选停留点,密度公式为:

式中abc为顶点与其他两点组成的三角行三边的长度,sum为求和,den为点密度

7)把多边形划分成多个三角形,求每个三角形的重心,重心坐标为:

式中,x0,x1,x2为三角形三个顶点的经度,y0,y1,y2为三角形三个顶点的纬度

三角形面积用叉积求,把面积作为权值,分别乘以重心坐标的x和y值,分别将求出的x,y值的加权平均数除以总面积,即多边形面积的重心坐标,该重心坐标作为室内停留点。

步骤七的停留点合并是通过以下方式实现的:

1)比较每两个point点集中的质心的距离

式中,x和y为第一个质心的经纬度,x0和y0为第二个质心的经纬度,d为两点之间的距离

2)若1)所得距离小于阈值,则将两点合并为一个点,合并的方法为求两个质心的平均经纬度,将平均值作为合并后的停留点的中心,否则便找后两个点,直到point点集中的数据遍历完

步骤八:在原始轨迹数据点中去除步骤五所得的point点集

步骤九:遍历步骤八所得的数据,判断相邻两个点的速度和加速度是否产生突变,没有则并给予相同编号,若有突变则给予不同编号

步骤十:使用滑动窗口遍历步骤九所得的数据中编号相同的轨迹数据,计算每个滑动窗口中的轨迹数据的平均速度,若平均速度大于2m/s,则窗口大小为5分钟,若平均速度小于2m/s,则窗口大小为1分钟

步骤十一:找到滑动窗口里的数据的距离最远的两个点,若其距离小于距离阈值或该窗口的平均速度和平均加速度与前一个窗口的平均速度和平均加速度差异较大,那么则将窗口内的数据存于outpoint点集中,作为候选停留点,并进行标号

步骤十二:重复步骤六和步骤七,最后得到室外停留点

所述步骤十一的窗口内的距离最远的点是通过以下方式实现的:

1)通过求凸包的方法求出滑动窗口内的多边形的顶点;

2)计算多边形经度方向上的端点。我们称之为ymin和ymax;

3)通过ymin和ymax构造两条水平切线。由于他们已经是一对对踵点,计算他们之间的距离并维护为一个当前最大值

4)同时旋转两条线直到其中一条与多边形的一条边重合

5)一个新的对踵点对此时产生。计算新的距离,并和当前最大值比较,大于当前最大值则更新;

6)重复步骤4和步骤5的过程直到再次产生对踵点对(ymin,ymax);

7)输出确定最大直径的对踵点对;

8)计算该对踵点对的距离,若其距离小于距离阈值,则判断为候选停留点;

9)计算该窗口的平均速度和平均加速度,并将至保存起来;

10)重复1)-9),若8)不满足,将上次9)计算的速度与上个窗口的平均速度和平均加速度进行计较,若他们的绝对差的值大于一定的阈值,同样判断为室外候选停留点。

应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1