Избавьтесь от прыжков GPS данных с помощью Pykalman

У меня есть данные GPS, которые я получаю из приложения для смартфона. Всякий раз, когда смартфон стоит на месте, очки GPS прыгают. Я понимаю, что сигнал неточный из-за приема в городе между зданиями и потери сигнала, когда он внутри.

Из этого поста я хотел дать снимок фильтру Калмана. Благодаря этой статье я смог опробовать алгоритм Рамера-Дугласа-Пекера на широте и долготе и попробовать пакет pykalman для получения данных о высоте. Также я попробовал пример pykalman, чтобы поиграть с фильтром.

Согласно этим показаниям, я предполагаю, что входные параметры неверны:

measurements = numpy.column_stack([longitude_list, latitude_list])
# F_k : state transition matrix
F = numpy.array([ [1, 0],
                  [0, 1] ])

# H_k : the observation matrix
H = numpy.array([ [1, 0],
                  [0, 1] ])

# R : covariance R of delta_k observation noise N(0, R)
R = numpy.diag([1e-4, 1e-4])

kf = kf.em(measurements, n_iter=100)
(filtered_state_means, filtered_state_covariances) = kf.filter(measurements)
(smoothed_state_means, smoothed_state_covariances) = kf.smooth(measurements)

Цифры ниже взяты из matplotlib. Слева вверху - итерация km.em(n_iter=2), справа вверху - итерация 10, слева внизу - итерация 50, справа внизу - итерация 100. Всякий раз, когда я пытаюсь подняться выше, у меня есть тайм-аут. Не похоже, что мой фильтр много работает в этом случае. На самом деле выводится одна и та же форма (сначала она может выглядеть иначе из-за оси масштаба).

Я что-то пропустил? Как я могу улучшить свои данные о прыжках с GPS?

Спасибо

0 ответов

Другие вопросы по тегам