Как получить больше экспортированных данных GPS

Данные GPS могут храниться в очень большом количестве форматов, но наиболее широко используются GPX, TCX от Garmin и KML от Google.

Большинство наших носимых устройств с функцией GPS позволяют экспортировать данные в формате GPX, и это то, что мы собираемся проанализировать.

Формат GPX

Документы GPX - это просто файлы XML, в которых хранятся географические координаты.

Они содержат заголовок метаданных, за которым следуют путевые точки, маршруты и треки. Также есть раздел расширений для пользовательских элементов. Посмотреть всю схему можно здесь.

Маршруты предназначены для отслеживания, а треки больше похожи на цепочки навигации, в которых хранятся реальные данные о деятельности.

  • Маршрут: упорядоченный список путевых точек, представляющий серию точек поворота, ведущих к пункту назначения. Также в нем хранится информация о самом маршруте.
  • Путевая точка: основной элемент трассы GPX. Он содержит координаты «широты и долготы, высоты, отметки времени и метаданных для каждой точки на треке / маршруте. Они могут иметь имя, описание и различную информацию в расширениях.
  • Трек: упорядоченный список точек трека, описывающих путь. Их можно (и нужно, но это зависит от реализации) разделить на сегменты трека, если коллекция GPS потеряна.
  • Точка трека: просто путевая точка на треке.

Один файл GPX может содержать несколько маршрутов или треков, каждый из которых состоит из нескольких сегментов.

Треки являются предметом нашего интереса при анализе данных GPS, потому что это необработанная информация, которая может нуждаться в обработке.

Разбор GPX

Каждый производитель несет ответственность за создание действительного GPX, но это не всегда так. Формат даже требует включения URL-адреса программного обеспечения, которое его генерирует, чтобы люди могли связаться с его создателем в случае, если оно не пройдет проверку.

Даже с действующим GPX есть много способов, которыми устройство может сгенерировать файл, разные временные интервалы между точками трека, разные расширения, точность, разделенные сегменты трека ...

В этом примере мы сосредоточим анализ на экспортированных данных Amazfit Bip’s. Это дешевое устройство GPS сохраняет только один трек с точкой трека каждые 1 (или более секунд) с приличной точностью, за исключением высоты. Он также дает вам измерение частоты пульса в расширениях.

Формат зависит от используемого инструмента экспорта. В данном случае это более или менее хорошо отформатированный и действительный GPX, но я видел инструменты, генерирующие недопустимый код.

Вы можете использовать любой XML-парсер, но я бы рекомендовал gpx-parser-builder.

Все инструменты экспорта, которые я тестировал на своем Amazfit Bip / Bip S, хранили всю информацию на одной дорожке (<trk>) с одним сегментом дорожки (<trkseg>), поэтому я буду получать только эти точки отслеживания. Мы будем делать расчеты, которые могут быть неточными, если мы смешиваем данные отдельных сегментов трека (поскольку устройства должны разделять их на сегменты при потере сигнала GPS).

Так выглядит наш файл после парсинга.

Использование ваших данных GPX

Итак, теперь, когда у вас есть доступ к данным вашего трека ... что?

Что ж, мы можем использовать его для улучшения информации, в основном это вычисление расстояний и скорости. Некоторые устройства (например, Bip S) показывают скорость в каждой точке трека, но это не обязательно.

Существует много способов вычисления расстояний с помощью координат GPS, мы воспользуемся формулой Хаверсина, которая предполагает, что Земля представляет собой идеальный сферический объект.



Используя его и оценив радиус Земли в 6371 км, мы можем вычислить расстояния в метрах между двумя путевыми точками, подобными этой.

Теперь мы можем перебирать путевые точки и «улучшать» их дополнительной информацией, например, расстоянием от предыдущей точки, средней скоростью сегмента и т. Д.

Что теперь

Теперь вы можете производить любые вычисления с этими данными в зависимости от того, что вы хотите сделать. Извлеките аналитические данные из ваших треков, нарисуйте диаграмму высот или просто покажите трек на карте с расширенной информацией.

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