【问题标题】:Ramer-Douglas-Peucker Algorithm with GPS带 GPS 的 Ramer-Douglas-Peucker 算法
【发布时间】:2018-11-18 07:28:48
【问题描述】:

我有 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 算法的输入,但在我的情况下,不存在保留距离的变换。

【问题讨论】:

  • 我查看了算法并且可以遵循但我不知道您的意思-----保留距离的转换不存在。我猜你在谈论北极和南极附近的边缘情况?但是,您提供的点看起来很标准(并且没有足够的点来真正运行算法)。

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


【解决方案1】:

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

我的假设是您想要简化靠近任一极点的 GPS 轨迹。 (这搞砸了 Ramer-Douglas-Peucker 导致坐标到处乱跳)

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

有针对此类情况的特定算法。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 2015-03-08
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多