求两条轨迹间的hausdorff距离_轨迹数据压缩的DouglasPeucker算法

博客介绍了轨迹数据压缩的Douglas-Peucker(DP)算法,用于减少轨迹数据量而不影响精度。DP算法通过连接起点和终点形成直线,找出最大垂直距离点并递归处理,直至所有点都在误差阈值内。同时,文章讨论了求两条轨迹间的Hausdorff距离在轨迹分析中的应用。提供了实际的轨迹数据压缩案例和相关函数实现。
摘要由CSDN通过智能技术生成

点击蓝字关注我们

交通数据中会有很多的轨迹数据,轨迹数据一般是按秒采集,所以轨迹数据的量都是很大的,但是在进行数据分析时,轨迹数据量太大会影响运算效率,而且很多轨迹点是没有必要分析的。所以需要对数据进行压缩,轨迹数据压缩技术的主要目标是在不影响轨迹数据精度的情况下减小轨迹数据的大小。本次推送介绍一下轨迹数据压缩的Douglas-Peucker(DP)算法。

4f2df3b173aeb3d4049616f9c144b322.png

首先看一下郑宇博士《computing with spatial trajectories》一书中对DP算法的介绍。

f473c3dc6e3a66a4a075856131b93160.png

上图演示了Douglas-Peucker算法的前两个步骤。如图所示,在第一步(见图 (a)中,选择起点p0和终点p16,生成近似线段p0 p16。导出了从原始轨迹上的每个采样点到近似线段p0 p16的垂直欧几里德距离。由于某些垂直误差距离大于预先定义的误差距离阈值,因此选择与p0 p16偏差最大的采样点,即本例中的p9作为分割点。因此,在算法的第二步(见图(b))中,使用轨迹p0、p9、p16来近似原始轨迹。在这一步中,原问题被分成两个子问题,其中线段p0 p9是{p0, p1,…, p9}近似的子轨迹,而线段p9 p16则近似于另一个{p9, p10,…,p16}的子轨迹。

如图所示,在第一个子问题中,几个采样的位置点的垂直误差距离p0 p9大于预先定义的误差距离阈值。因此,选取与p0 p9偏差最大的采样定位点p5作为分割点,对分割子轨迹进行递归处理,直到所有采样定位点在误差阈值内与近似线段都有垂直距离。另一方面,在第二个子问题中,所有样本点到线段p9 p16的垂直距离都小于误差阈值。因此,没有必要进一步拆分。

以上就是书中对DP算法的说明,下面介绍DP算法具体的步骤:

(1)在轨迹曲线在曲线首尾两点A,B之间连接一条直线AB,该直线为曲线的弦;

(2)遍历曲线上其他所有点,求每个点到直线AB的距离,找到最大距离的点C,最大距离记为dmax;

(3)比较该距离dmax与预先定义的阈值Dmax大小,如果dmax

(4)若dmax>=Dmax,则使C点将曲线AB分为AC和CB两段,并分别对这两段进行(1)~(3)步处理;

(5)当所有曲线都处理完毕时,依次连接各个分割点形成的折线,即为原始曲线的路径。

3d748c34a90aef699d9e870c96e16b6b.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值