...

воскресенье, 26 июля 2015 г.

[Перевод] В погоне за самим собой, или отличный способ начать свой день


Перевод поста Mariusz Jankowski "A Rat Race, or a Great Way to Start the Day".
Код, приведенный в статье, можно скачать здесь.
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе.

Не так давно, когда бушевала зима, расчищая подъезд к дому от завалов снега, я решил вспомнить о хорошей погоде, рассмотрев с использованием Wolfram Language свой велосипедный маршрут на работу.

В прошлом году я решил заняться такой весьма распространённой деятельностью, как запись данных своей активности. Я отметил, что за последние несколько лет мои поездки становились все быстрее и давались мне проще по мере того, как сезон приближался к концу, так что мне стало интересно удостовериться в наличии подобных улучшений своей физической формы. Используя лишь смартфон и соответствующее приложение, я записал 27 поездок между домом и работой, а затем использовал Wolfram Language для чтения, анализа и визуализации результатов.

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


Для передачи данных из смартфона я использовал GPX (GPS Exchange Format) — формат файла, поддерживаемый крупнейшими производителями GPS-устройств и доступный в большинстве приложений. Обычный файл GPX включает в себя данные о местоположении и высоте с отметками времени, и Wolfram Language возвращает эти данные в виде списка правил с говорящими названиями Geometry, PointElevation и PointTimestamp.

Вот фрагмент одного из файлов формата GPX:

Воспользовавшись новыми функциями в сфере работы с геоданными в Wolfram Language и доступными данными о времени и положении, я смог легко и быстро создать анимацию дневной поездки (больше деталей доступно в разделе Initialization в прилагаемом CDF).


Ещё немного усилий, и вот кое-что интересное: я совместил все утренние поездки за сезон в рамках одной анимированной гонки — вот такие вот получились «крысиные бега» на работу! Лидер сезона показан жёлтым, конечно же!


Вот результаты этого «забега»:

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

И пусть предыдущие расчеты и визуализации достаточно хороши, но мы можем сделать нечто большее. Файлы GPX содержат данные о высоте с привязкой ко времени, однако не только это позволит легко визуализировать общий профиль дороги, но и кое-что ещё: обнаружение участков подъёма и спуска посредством нового функционала из сферы обработки сигналов — обнаружение пиков.

Начнём со стандартного профиля дороги:

Чтобы определить подъёмы и спады, я сгладил данные по подъёмам чтобы фиксировать в сигнале только наиболее крупные локальные максимумы и минимумы. Для этого я сначала построил линейную интерполяцию всей функции чтобы избавиться от слишком нестабильных интервалов в записанных данных, а затем сгладил её посредством GaussianFilter.

Операция сглаживания убирает «паразитные» пики и спады в данных по высотам. Я определил оставшиеся крупные пики с помощью FindPeaks и разделил маршрут на восходящие и нисходящие участки.

Визуализируем участки подъёмов и спусков утренней поездки на графике высот:

А вот несколько более полезная визуализация — участки подъёмов и спусков маршрута на карте:


Примерные расстояния участков подъёма и спуска доступны из списков подъёмов и спусков, вычисленных ранее. Следующий результат подтверждает простую истину о том, что отправляться на работу всегда тяжелее (т. е. в гору), и, следовательно, менее приятно, чем возвращаться с неё.

Я уже с нетерпением жду следующего сезона и всяких интересных фактов в анализе своих данных с помощью Wolfram Language.

This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.

Комментариев нет:

Отправить комментарий