检测和删除 GPS 点的杂乱聚合的策略?

Posted

技术标签:

【中文标题】检测和删除 GPS 点的杂乱聚合的策略?【英文标题】:Strategies to detect and delete cluttering aggregations of GPS points? 【发布时间】:2012-04-17 03:47:41 【问题描述】:

我的问题是我有大量来自汽车中使用的不同 GPS 记录器的 GPS 轨迹。如果不关闭这些廉价设备,即使静止不动也会记录幻影运动:

正如您在上图中所见,大约有一千个点在某种拥塞中可视化。现在我想删除所有这些点,以便来自左侧的红色轨道在抖动开始之前结束。 我的方法是围绕轨道中的每个点“画”两个或三个圆圈,检查这些圆圈内还有多少其他点并检查比率:

(#points / covered area) > threshold?

如果阈值超过一定比例(紫色圆圈),我可以删除其中的所有点。所以:简单的方法,但有很大的缺点,例如计算时间,删除仅通过圆圈的“无辜”轨迹,不会检测到像图片底部的单点这样的异常值)。

我正在寻找一种更好的方法来检测图片中的大量点。它不应该消除误报(可能是 5 或 10 分,这些聚合对我来说无关紧要)。此外,它不应该简化轨道的其余部分!

编辑: 给定示例中的结果应如下所示:

【问题讨论】:

+1 用于可视化,尽管我认为可以通过更具体地解释您自己的考虑来改进这个问题。否则这似乎有点宽泛。 在这里工作的开源算法***.com/questions/4480434/… 【参考方案1】:

GPS Points 的数据间隔是多少,好像都是以秒为单位的。可能还有另一种方法可以添加到前面提到的逻辑中。

sum_of_distance(d0,d1,d2....dn)>=sum_of_distance(d0,dn)的80%

这个第 0 到第 n 个值可以在越来越大的块中迭代,因为在该范围内的行进距离不会太多。因此,您最初可以迭代可能是 60 个数据点,然后在该数据中每次迭代迭代 10 个数据。

【讨论】:

【参考方案2】:

我的第一步是调查静止汽车的“运动”和高度变化所暗示的速度。如果这些变化中的任何一个变化太快或太慢(您必须在此处确定阈值),那么您可能会得出结论,它们是由 GPS 抖动引起的。

除了时间位置之外,您的 GPS 设备还报告哪些信息?

编辑(在 OP 评论之后)

问题是将日志的一部分描述为“汽车移动”,将日志的一部分描述为“汽车不动,但 GPS 位置抖动”。我提出了一种方法,本杰明提出了另一种方法。如果速度识别不够准确,请尝试加速。尝试航向变化率。如果这些简单的方法都不起作用,我认为是时候翻开统计教科书并开始弄清楚随机过程等的自相关了。这时我悄悄溜走了……

【讨论】:

这是一个很好的观点,我也想到了这一点。尝试的门槛可能是 3 公里/小时。除时间和位置外,记录器仅提供有关计算数据(速度、加速度和航向)的信息。这是一个剥离的 NMEA RMC,没有关于信号质量或卫星数据的信息。 我检查了 gpx 文件:抖动包含超过 10 kph 的速度,所以这种方法不起作用! :(【参考方案3】:

与 High Performance Mark 的回答类似,您可以查找在少量点内发生的线交叉点。在道路上行驶时,最后 n 个点的路线很少与自身相交,但由于抖动,它在您的静止情况下会发生。单个十字路口可以是一个人向后或绕一个街区转,但多个十字路口应该很少见。对于抖动情况,相交角也会更锐利。

【讨论】:

+1:我喜欢这个答案,因为它提出了一个快速、可立即实施的解决方案,可能会奏效。太棒了。 关于“误报”交叉点 - 查看点间距,我会说时间分辨率约为一秒。要在那个时间尺度上反复自相交你的路径,你必须成为一条追逐自己尾巴的狗。

以上是关于检测和删除 GPS 点的杂乱聚合的策略?的主要内容,如果未能解决你的问题,请参考以下文章

链路聚合

Linux链路聚合

实验四 链路聚合

第十二期小型网络构建-链路聚合

Linux6/Centos6 聚合链路

路由基础之链路聚合和DHCP全局的地址池的配置