Code Monkey home page Code Monkey logo

moscow-public-transport's Introduction

Описание

Данный репозиторий содержит код, необходимый для подготовки визуализаций для участия в Дата челлендже «Московский транспорт», проходившего (-дящего) в январе 2023 года.

Полезные ссылки:

Документация

Общие функции и классы помощники для визуализации и предобработки данных расположены в папке mostra. Примеры того как запускать код, можно найти в папке examples. Все необходимые пояснения и техническая документация содержится в Docstring. Данные, которые помещатся в git можно найти в папке data. Для конфигурации виртуального окружения используйте poetry: вся необходимая информация о завивимостях есть в файлах poetry.lock и pyproject.toml в данном репозитории

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

Необходимые приготовления

Перед тем как начать работу с данным репозиторием, пожалуйста, разместите в папке data все недостающие файлы, а именно:

  • pred_data.csv - исходный датасет, который предоставляют организаторы соревнования. Ссылка есть на странице в Notion внизу документа. Рекомендуется скачать все необходимые документы из этой страницы и положить их в папку data. Но обязательным считается именно pred_data.csv.
  • stop_from_repo.csv - этот файл взят из репозитория организаторов челленджа. Называется "stop.csv", прямая ссылка на него здесь. Файл небольшой, поэтому хранится в системе контроля версий и текущего репозитория, но при необходимости можно взять данные по приведенной выше ссылке.

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

Примеры запуска

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

В папке examples можно найти следующие примеры:

  • slide_2_stops_map.py - визуализирует на карте Москвы как расположены остановки, попавшие в выборку. Генерируемая картинка должна выглядеть следующим образом:

  • slide_3_route_with_stops_raw.py - визуализация исходного датафрейма pred_data.csv, где остановки упорядочиваются (приблизительно) в порядке движения транспорта по маршруту и затем наносятся на ось y. Картинки с визуализациями строятся отдельно для каждого маршрута. Поскольку маршрутов много, то картинки сохраняются в указанную директорию. Пример генерируемой картинки (синим цветом показаны данные расписания, красным - прибыте транспорта по телеметрическим данным):

  • slide_4_route_with_stops_preprocessed.py - скрипт генериует точно такие же графики как и выше, но использует для этого предобработанные данные. В предобработку входит операция агрегирования временных меток прибытия транспорта на остановку по расписанию Пример генерируемой картинки (синим цветом показаны данные расписания, красным - прибыте транспорта по телеметрическим данным):

  • slide_5_route_with_stops_comparison.py - скрипт генериует графики похожие на те что выше, но выделяет отдельный транспорт цветом (по tmId) Пример генерируемой картинки (кружками показаны данные расписания, треугольниками - прибыте транспорта по телеметрическим данным (остаются только достоверные данные), цветом показаны различные по tmId транспортные средства):

  • slide_6_calculate_arrival_time.py - скрипт для расчета фактического времени прибытия транспортного средства на остановку. Визуализаций не предусмотрено.

  • slide_6_7_actual_arrival_transport_at_stop.py - визуализация разницы фактического времени прибытия транспорта и ожидаемого времени прибытия по расписанию. Пример генерируемых картинок для автобуса 664:

  • slide_8_actual_time_map.py - финальные визуализации на картах, где для отлельно выбранных маршрутов строятся карто-схемы с оценками того насколько часто и насколько сильно опаздывает транспорт в этих локациях. Внимание - от гиперпараметров на предыдущих шагах очень сильно зависит финальный результат (и финальные визуализации). Пример визуализации:

moscow-public-transport's People

Contributors

dreamlone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.