Визуализируем geo данные Endomondo с помощью streamlit

Спойлер статьи: Исходный код визуализации geo-трека

С появлением смартфона и функции gps я стал пользователем приложения endomondo для записи треков вело прогулок и пробежек. Эндомондо имела функционал социальных сетей где можно было добавлять друзей и наблюдать за их активностью. Функционала приложения и web сайта мне хватало с головой и в момент когда друзья по эндомондо мигрировали в strava я остался верным пользователем endomondo. Частота использования приложения сильно сократилось, а недавно я обнаружил что данные не сохраняются на сервер,а сайт разместил объявление что приложение больше не поддерживается и до марта есть возможность скачать все свои данные в виде архива.

В небольшой статье немного поиграем с выгруженными данными и построим графики Для визуализации и анализа воспользуемся python и библиотекой streamlit

streamlit

- фреймворк быстрого построения приложений визуализации данных

Отличием от Jupyter Notebooks является подход по хранению кода и визуализации

Jupyter Notebooks - код пишется и результат отображается в браузере Streamlit - Код пишем в ide/Редакторе, а результат отображается в браузере

Практическая часть - пишем визуализацию с использованием streamlit

Endomondo для выгрузки пользовательских данных подготовил архив в котором нас интересует папка Workouts содержащую в себе записи gps-треков в формате json и tcx (xml)
Для визуализации данных воспользуемся форматом json как более привычным и простым в обработке


В массиве находим массив points и подготавливаем DataFrame для визуализации

Теперь имея данные в формате DataFrame (pandas) мы выполним несколько простых шагов

  • Сделаем срез по 'latitude', 'longitude'
  • Найдем центральное значение для отображения карты маршрута
  • Построим графики скорости и перепада высот на дистанции

Визуализация данных streamlit виджеты

Вам может понравиться