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

时间:2012-04-03 13:20:01

标签: algorithm gps tracking

我的问题是我有一大堆来自汽车中使用的不同GPS记录仪的GPS轨迹。如果没有关闭这些便宜的设备,即使站着不动也会记录幻影:

enter image description here

正如您在上图中所看到的,大约一千个点在一种拥挤状态下可视化。现在我想删除所有这些点,以便在抖动开始之前来自左端的红色轨迹结束。 我的方法是在轨道中的每个点周围“绘制”两个或三个圆圈,检查这些圆圈中有多少个其他点并检查比率:

(#points / covered area) > threshold?

enter image description here

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

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

编辑:给定示例中的结果应如下所示: enter image description here

3 个答案:

答案 0 :(得分:2)

我的第一步是调查'运动所暗示的速度。您的固定车和高度的变化。如果其中任何一个变化太快或太慢(您必须在此处决定阈值),那么您可能会认为它们是由于GPS抖动造成的。

您的GPS设备会报告哪些信息(时间位置除外)?

编辑(在OP评论之后)

问题在于将日志的一部分描述为“汽车移动”。并且部分日志为“汽车不动,但GPS位置抖动”。我提出了一种方法,本杰明建议另一种方法。如果速度没有足够准确地区分,请尝试加速。尝试标题的变化率。如果这些简单的方法都不起作用,我认为现在是时候打破你的统计教科书并开始弄清楚随机过程的自相关等等。在这一点上,我悄悄溜走......

答案 1 :(得分:2)

与高性能Mark的答案类似,您可以查找在短数点内发生的线交叉。在道路上行驶时,最后n个点的路线很少与自身相交,但由于抖动,它在静止状态下会发生。单个交叉口可能是一个人在街区周围翻转或绕圈,但多个交叉点应该更少。对于抖动情况,交叉角度也会更加清晰。

答案 2 :(得分:0)

GPS点的数据间隔是多少,似乎这些都在几秒钟内完成。可能还有另一种方法可以添加到前面提到的逻辑中。

  

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

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