У меня есть сырые места GPS для трека, и мне нужно набрать максимальную скорость. Простые методы (рассчитайте скорость между 2 точками, возьмите макс.) Дадут бессмысленные большие числа из-за неточности GPS, точка скачет вокруг. Можете ли вы предложить хороший готовый алгоритм для решения этой проблемы?
gps
movement-data
JaakL
источник
источник
Ответы:
Конечно, чтобы набрать скорость, нужно успеть . Таким образом, вы можете упорядочить свои точки по времени в электронной таблице, например, со столбцами {Time, X, Y}, увеличив время.
Вот пример, где устройство GPS почти завершило цепь против часовой стрелки:
Эти точки не были получены через равные промежутки времени. Поэтому на одной карте невозможно оценить скорость. (Однако, чтобы помочь вам визуализировать эту поездку, я позаботился о том, чтобы собирать значения GPS почти с одинаковыми интервалами, чтобы вы могли видеть, что поездка началась быстро и замедлилась в двух промежуточных точках и в конце.)
Поскольку вас интересует скорость, вычислите расстояния между последовательными рядами, а также разницу во времени. Разделение расстояний на разницу во времени дает мгновенные оценки скорости. Это все, что нужно сделать. Давайте посмотрим на график зависимости этих оценок от времени:
Красные точки отображают скорости, в то время как серая кривая - грубая плавность, исключительно для того, чтобы направлять взгляд. Время максимальной скорости и сама максимальная скорость понятны из графика и легко получаются из данных до сих пор, если вы используете электронную таблицу или простые функции сводки данных в ГИС. Однако эти оценки скорости являются подозрительными, поскольку в точках GPS явно присутствует некоторая ошибка измерения.
Один из способов справиться с ошибкой измерения - это накопить расстояния между несколькими периодами времени и использовать их для оценки времени. Например, если ранее вычисленные данные {Разница во времени, Расстояние}
затем истекшее время и общее расстояние за два периода времени получаются путем сложения каждой пары последовательных строк:
Пересчитайте скорости для накопленных времен и расстояний.
Этот расчет можно выполнить для любого числа периодов времени, получая все более плавные и надежные графики за счет усреднения оценок скорости за более длительные периоды времени. Вот графики тех же данных, рассчитанные для 3 и 5 периодов времени соответственно:
Обратите внимание, как максимальная скорость уменьшается с величиной сглаживания. Это всегда будет происходить. Единого правильного ответа не существует: насколько вы сглаживаете, зависит от изменчивости измерений и от того, в какие периоды времени вы хотите оценить скорости. В этом примере вы можете сообщить о максимальной скорости до 2,5 (на основе последовательных точек GPS), но она будет несколько ненадежной из-за ошибок в местоположениях GPS. Вы можете сообщить о максимальной скорости до 2,1 на основе пятипериодного сглаживания.
Это простой метод, но не обязательно лучший. Если мы разложим ошибку местоположения GPS на компонент вдоль пути и другой компонент, перпендикулярный пути, мы увидим, что компоненты вдоль пути не влияют на оценки общего пройденного расстояния (при условии, что путь достаточно хорошо выбран: то есть вы не "срезать углы"). Компоненты, перпендикулярные пути увеличениявидимые расстояния. Это потенциально смещает оценку вверх. Тем не менее, когда типичное расстояние между показаниями GPS является большим по сравнению с типичной ошибкой расстояния, смещение является небольшим и, вероятно, компенсируется крошечными покачиваниями на трассе, которые не фиксируются последовательностью GPS (то есть некоторая обрезка углов всегда сделано). Поэтому, вероятно, не стоит разрабатывать более сложную систему оценки, чтобы справиться с этими присущими отклонениями, если только частота дискретизации GPS не очень мала по сравнению с частотой, с которой "колеблется" трасса или ошибка измерения GPS велика.
Для записи мы можем показать истинный, правильный результат, потому что это симулированные данные:
Сравнение этого с предыдущими графиками показывает, что в этом конкретном случае максимум исходных скоростей переоценил истинный максимум, в то время как максимум пятипериодных скоростей был слишком низким.
В общем, когда точки GPS собираются с высокой частотой, максимальная необработанная скорость, вероятно, будет слишком высокой: она имеет тенденцию переоценивать истинный максимум. Чтобы сказать больше, чем это в любом практическом случае, потребуется более полный статистический анализ природы и размера ошибок GPS, частоты сбора GPS и извилистости основного пути.
источник
Это не готовый скрипт или алгоритм. То, что я сделал на изображении ниже, показывает среднюю скорость (в км / ч):
r.neighbors
чтобы получить среднюю скорость для указанного окна растра.источник
r.neighbors
, я получаю среднюю скорость.Поскольку ваши данные GPS неточны, вы сможете оценить только максимальную скорость.
Вы можете попытаться рассчитать его, рассчитав скорость не по сегментам, а по полилиниям (средняя скорость), чтобы минимизировать влияние неточностей.
Пытались ли вы сначала очистить свои данные (например, Дуглас-Пекер), чтобы сохранить только самые важные данные?
источник