Алгоритм Рамера-Дугласа-Пекера с GPS - PullRequest
0 голосов
/ 08 июня 2018

У меня есть данные 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']))

МожетЯ применяю алгоритм Рамера-Дугласа-Пекера к нему?

Я всегда вижу массив координат x, y в качестве входных данных алгоритма RDP, но в моем случае преобразование, которое сохраняет расстояния, не существует.

1 Ответ

0 голосов
/ 14 июня 2018

Дрянной ответ: Да, вы можете применить алгоритм.Однако вывод, вероятно, не тот, который вы хотите ...

Я предполагаю, что вы хотите упростить GPS-траектории, которые близки к любому из полюсов.(Который приводит в замешательство Рамера-Дугласа-Пейкера, из-за чего координаты перепрыгивают повсюду)

Существует ряд исследований, посвященных упрощению траекторий для различных применений.Например, имеет ли значение, если высота / высота сохраняется?Важна ли скорость (например, скорость вдоль траектории)?

Существуют специальные алгоритмы для таких случаев.

Простой подход, который, вероятно, имеет дело с замечаниями, упомянутыми выше, состоит в том, чтобы просто преобразоватьширота / долгота в координаты XYZ, а затем применить алгоритм RDP.

(Смотрите этот ответ, чтобы узнать, как преобразовать в XYZ: Ответ от Стивена Куана )

...