Подтвердить что ты не робот

Стратегии обнаружения и удаления загромождения агрегатов точек GPS?

Моя проблема в том, что у меня есть большой набор GPS-треков от разных регистраторов GPS, используемых в автомобилях. Если не отключить эти дешевые устройства, запишите phantom движения даже при стоянии:

enter image description here

Как вы можете видеть на изображении выше, около тысячи точек визуализируются в виде перегруженности. Теперь я хочу удалить все эти точки, чтобы красный трек, идущий слева, заканчивался до начала дрожания. Мой подход состоит в том, чтобы "нарисовать" два или три круга вокруг каждой точки трека, проверить, сколько других точек расположено в этих кругах, и проверить соотношение:

(#points / covered area) > threshold?

enter image description here

Если порог превышает определенное соотношение (фиолетовые круги), я мог бы удалить все точки внутри. Итак: простой способ, но имеет огромные недостатки, например. время вычисления, удаляя "невинные" дорожки, проходящие только по кругу, не обнаруживает выбросы, подобные одиночным точкам в нижней части изображения).

Я ищу лучший способ обнаружить большие кучи точек, как на картинке. Он не должен удалять ложные срабатывания (возможно, 5 или 10 баллов, эти скопления не имеют для меня значения). Кроме того, он не должен упрощать остальную часть трека!

Изменить: Результат в данном примере должен выглядеть так: enter image description here

4b9b3361

Ответ 1

Мой первый шаг состоял бы в том, чтобы исследовать скорости, связанные с "движениями" вашего неподвижного автомобиля и изменениями высоты. Если какое-либо из этих изменений происходит слишком быстро или слишком медленно (вам придется решать пороговые значения здесь), то вы, вероятно, можете сделать вывод, что они вызваны джиттером GPS.

Какую информацию, отличную от позиции во времени, сообщает ваше устройство GPS?

EDIT (после комментария OP)

Проблема состоит в том, чтобы охарактеризовать часть журнала как "движение автомобиля" и часть журнала, поскольку "автомобиль не двигается, а местоположение GPS дрожит". Я предложил один подход, предложил Бенджамин другой. Если скорость не различается достаточно точно, попробуйте ускорение. Попробуйте скорость изменения курса. Если ни один из этих простых подходов не работает, я думаю, вам пора разбить свои учебники по статистике и начать выяснять автокорреляцию случайных процессов и тому подобное. В этот момент я спокойно убираюсь...

Ответ 2

Как и в случае с ответом High Performance Mark, вы можете искать пересечения линий, которые происходят в коротком числе точек. При движении по дороге маршрут последних n пунктов редко пересекается с самим собой, но это происходит в вашей стационарной ситуации из-за джиттера. Единственным пересечением может быть лицо, удвоение или кружение вокруг блока, но несколько пересечений должны быть более редкими. Угол пересечения также будет более резким для случая дрожания.

Ответ 3

Каков интервал данных точек GPS, кажется, что они находятся в секундах. Возможно, есть еще один способ добавить к ранее упомянутой логике.

sum_of_distance (d0, d1, d2.... dn) >= 80% от суммы_состояния (d0, dn)

Это значение от 0 до n может выполнять итерацию в меньших и больших кусках, поскольку пройденное расстояние в этом диапазоне не будет большим. Таким образом, вы можете выполнить итерацию поначалу из 60 пунктов данных, и в пределах этих данных повторяется 10-ти данных на каждой итерации.