在 GPS 路径中检测 "brownian/random walk" 路径运动的算法

Algorithm to detect "brownian/random walk" movement in path in GPS path

我目前正在为 openstreetmap 做贡献,当我导入数据时,我经常可以看到这种点簇

它们是由于 GPS 不精确,当静态干扰信号接收时。我想以编程方式解决这个问题,用它们的质心替换这些点。我怎样才能检测到这种模式 给出点列表?

[ (x1, y1), (x2, y2), (x3, y3), (x4, y4), ... (xn, yn) ]

能够检测到一组属于所述 "random walk" 模式的点,这样我就可以用这些点的质心替换它们。我的直觉告诉我,该算法应该将点数和两点之间距离的阈值参数作为参数,之后我们开始考虑 "random walk".

这样的点列表

但我认为这是进行 GPS 跟踪时的常见问题,我希望我忽略了检测这些问题的最先进算法。

我建议进行简单的 ex post facto 趋势分析。保持预期路径的移动平均值,其中每个读数都被预测为前面各点速度的延伸,类似于

new_vector = 0.2 * current_vector + 0.8 * old_vector

在两个方向都这样做(第二个时间倒转)。

当你发现一系列的点在过去和未来都严重脱节,而且位置似乎没有太大偏差,那么你就确定了你的静止期。基本特征是一致的方向性变化。

这是否促使您找到解决方案?