Comments 23
Я правильно понимаю, что вы сравниваете данные до фильтрации с теми же данными после? А не с заведомо более точными данными, полученными каким-то иным способом?
Если да, то это метрологически неверно, так как показывает только устранение случайной ошибки, вызывающей выбросы в последовательности.
Результаты обработки сравнивались с заведомо более точными данными из разных источников (картографических информационных систем, более точных трекеров на тех же маршрутах, результатов анализа рельефа местности и т.п.). Изучались возможные причины "выбросов". Процесс довольно трудоемкий и не описан, чтобы не перегружать статью. Этому вопросу можно посвятить отдельную стстью. Исходные данные (до обработки) приведены для иллюстрации.
Это не такой уж "трудоёмкий" процесс - наложить несколько профилей на один график. Без этого, всё выглядит как обычное причесывание для того, чтобы пользователь не скандалил.
Это технический ресурс, вас поймут, не бойтесь подробностей. А вот в обратном случае, могут заподозрить в том, что показать кроме фильтруемых данных вам нечего (как это обычно бывает).
Вы правы. Наложить несколько профилей на один график не такой уж трудоемкий процесс. Если эти профили имеются. В данном случае, мобильное приложение располагает только "гражданскими" координатами. Вы правы, это "причесывание", если можно так выразиться. Эта статья - не открытие и не изобретение. И такой задачи не ставилось. Предложенный алгоритм дает результат не хуже вычисления по исходным (не обработанным) данным. И к тому же критерий "чтобы пользователь не скандалил" не последний в современной индустрии.
При чём тут мобильное приложение? Графики сглаживания тоже не из него, вы же метод описываете. Метрологически значимая верификация без сравнения с заведомо более точными данными - невозможна.
Сбросить трек в страву, если это сколь-нибудь популярный маршрут - наверняка найдется трек бегуна с часами с альтиметром.
Хороший вариант. Рассматривался. Но есть ограничения: санкции, необходимость постоянного доступа в Интернет, условия пользования сервисами Strava. Кроме того, маршрут может отсутствовать или совадать частично.
И это также будет сравнением с набором с тем же порядком погрешности, а не с меньшим. Это тоже метрологически безграмотно для оценки метода.
Ещё один вариант -- купить спутниковые карты высот с точностью в метр. Есть карты выстот с которых уже здания и деревья повырезали. Они чуть дороже.
На сервере можно проецировать тракторию на плоскость карты, обсчитывать перепады высот точно.
Только там тоже надо будет чуть сглаживать иначе пути под мостом и т.п.
Соглашусь. Это - перспективный вариант. Хотя и у него есть свои недостатки. Требуется постоянный доступ мобильного приложения в Интернет в ходе тренировки. Дополнительная нагрузка на сервер.
Зачем постоянный? Один раз сделать пост-процессинг.
Постоянный (или регулярный), чтобы показывать данные в ходе тренировки. Как это сделано в ведущих беговых мобильных приложениях. Для разового постпроцессинга вариант хорош.
Интерполируйте эти данные. Считайте на сервере несколько раз в минуту, а на клиентском устройстве - простая интерполяция статистики. Пользователю не нужны абсолютно точные данные в течение всей тренировки, ему надо чтобы бегали циферки и закрывались кружочки. Да и с теми же калориями нет такого что пока бежишь, идёт расход, а когда стоишь то - нет.
В растровом варианте карты высот весят много, но проще в вычислении. Векторные карты высот не так уж и много весят, но расчёты требуют больше CPU. В общем, это сводится к trade-off между весом и нагрузкой на процессор.
Если сгружать карту +/- 5км, то в растре это, скажем, 5-7 МБ. В векторе 1МБ. Бегают люди обычно в своей домашней сети и помногу раз в одной локации, так что вес карты -- фигня.
Если есть возможность перенести расчёт траектории на мобильный, то ура.
А эти карты актуальны для всей поверхности Земли? Или только для "цивилизованных" мест?
Пару лет пользовался для тренировок спортивными часами от Garmin без барометра. Неизвестно, как они сделали усреднение высоты по данным от GPS, но оно точно есть. Потом перешел на часы той же фирмы, но с барометром.
Без барометра автономная погрешность измерения высоты очень большая, по факту высоту почти невозможно учитывать. Помогали сторонние сервисы, например runalyze, которые вводят коррекцию с помощью топокарт.
С барометром погрешность на порядок меньше, это видно по повторяемости результата на одной трассе. Но есть и систематическая ошибка - если погода достаточно быстро меняется, то высота точки старта/финиша на кольцевой трассе "плывет" вместе с давлением вниз или вверх. На тренировке продолжительностью больше часа это хорошо заметно.
В целом видна тенденция внедрения барометра в спортивные часы, даже низшей ценовой категории. Микросхема дешевая, если ее и не ставят - то только для искусственного позиционирования часов на рынке.
К сожалению в телефоны барометр ставят очень редко.
Согласен. Барометр, сторонний сервис, маршруты других спортсменов и т.п. позволяют существенно улучшить вычисления. Имеет смысл развивать приложение (и систему) в этом направлении.
С барометром тоже всё не так гладко, например, когда пересекаешь холодные реки/овраги. Сумму высот насчитывает гораздо больше фактических.
Существенная часть тренировок проходит по одним и тем же маршрутам. Трудно представить, что каждое утро я выбегаю из дома и прохожу совершенно новую траекторию. (По себе скажу, я некоторое время подбирал маршрут по удобству и времени прохождения, теперь просто его придерживаюсь).
Приложение копит тренировки и составляет в себе усреднение по всем известным точкам всех тренировок. Дома при синхронизации возможны уточнения по маршруту от сервера. На ходу приложение пользуется как описаными вами методами, так и накопленными данными. Объем карты высот в области "мой маршрут" вообще ни о чем.
Как мы научились учитывать перепады высот по геокоординатам в мобильном приложении