gpt4 book ai didi

floating-point - 是否有适合压缩 GPS 航路点的算法?

转载 作者:行者123 更新时间:2023-12-02 19:19:18 25 4
gpt4 key购买 nike

我正在寻找有损压缩 GPS 航迹航路点的算法,其坐标为 EPSG:4326 CRS (通常的度数如 (75.223423,-10.123123))

简而言之,在清除元信息并使用 Ramer–Douglas–Peucker 算法进行简化后,我有一个有序的路点坐标序列,每个路点占用 16 个字节(2 x 8 字节 ).

利用航点有序的知识,并且大多数情况下航点之间的距离小于 0.01°(~1 km at equator),我做了一个假设,可能有某种此类序列的有损压缩算法。

你能帮我查一下吗

UPD:根据真实轨迹(分析了约 800 条轨迹),点之间的距离(以度为单位)如下所示。 P95 是所有距离的第 95 个百分位数。

LON    
avg: 0,000334560520818109
p95: 0,001239999999999240 # ~138 meters
max: 0,307273900000000000
LAT
avg: 0,000221987685948093
p95: 0,000839999999996621
max: 0,309625799999999000

最佳答案

您不需要八字节浮点格式来表示您期望的有效数字的数量以及可能值的有限范围。我首先将数据转换为一系列具有适当长度的整数,这些整数可以表示您的值的准确性和范围。看起来两个四字节整数就足够了。那里有两倍的压缩。

然后将每个点替换为该点与前一个点的差异,第一个点除外。现在整数应该更小,允许任何通用无损压缩器进一步减少。如果差异仅在 0.1° 左右,您还可以得到两倍。

这是一个简单的例子,这个点的预测是最后一个点。如果您的点序列代表一条路径,您可以在建模速度时做一些更复杂的事情。在这种情况下,您使用最后建模的速度传播最后一个点,并从当前点中减去它。

修正案

我发现WGS84引用系本身精确到只有2-5米。使用三字节整数,您可以获得赤道 2.4 米的分辨率。在差分和压缩之前,这提供了 62.5% 的减少。它还为您提供了纬度的自由位,因为它的范围是经度的一半。该位可用于标记这是绝对坐标还是根据最后一个坐标预测的。

关于floating-point - 是否有适合压缩 GPS 航路点的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63255514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com