带有GPS的Ramer-Douglas-Peucker算法

时间:2018-06-08 09:12:24

标签: python python-3.x gps transformation douglas-peucker

我的GPS数据可以靠近北极/南极,可以移动数千公里。

如果我用例如:

构建距离矩阵
from geographiclib.geodesic import Geodesic

p1_lat, p1_lon = 43.374880, -78.119956
p2_lat, p2_lon = 43.374868, -78.119666
geod = Geodesic.WGS84

g = geod.Inverse(p1_lat, p1_lon, p2_lat, p2_lon)

print("Distance is {:.2f}m".format(g['s12']))

我可以在上面应用Ramer-Douglas-Peucker算法吗?

我总是看到一组x,y坐标作为RDP算法的输入,但在我的情况下,保留距离的转换并不存在。

1 个答案:

答案 0 :(得分:0)

俗气的回答:是的,你可以应用算法。但是,输出可能不是你想要的......

我的假设是你希望简化接近任一极点的GPS轨迹。 (搞砸了Ramer-Douglas-Peucker导致坐标跳到了整个地方)

有大量研究致力于简化不同应用的轨迹。例如,保持高度/高度是否重要?速度是否重要(如沿着轨迹的速度)?

这种情况有特定的算法。

一个简单的方法,可能很好地处理上面提到的考虑因素,就是将lat / long转换为X-Y-Z坐标,然后应用RDP算法。

(请参阅此答案,了解如何转换为XYZ:Answer from Stephen Quan