В статье описан опыт участия команды студентовРоссийском университете транспорта РУТ(МИИТ) в открытом хакатоне, целью которого было разработать программное обеспечение, предназначенное для усреднения набора GPS координат, полученных в результате движения группы поездов.
Ключевые слова: GPS-координаты, CSV, координата, маршрут, поезд, усреднение, хакатон, команда
Введение
В современном мире обработка огромного потока полученных данных является одним из важнейших вопросов. Необработанные данные содержат зашумленную информацию, которую необходимо подвергнуть обработке перед использованием для решения задач, например, в сфере железнодорожного транспорта. На грузовых, дальних и пассажирских поездах и на пути установлены GPS -датчики, измеряющие скорость поезда, его координаты, состояние поездов и другое [1,2]. Данные координаты поездов на маршруте в необработанном виде представляют собой лишь набор точек на графике и не могут дать необходимую информацию, так как у датчиков не присутствует погрешность при считывании местоположения, и данных может быть избыточно много. Однако, если произвести расчеты и усреднить полученную информацию с учетом погрешности, а также систематизировать информацию, то возможно получить требуемые данные.
Постановка задачи
Авторы решали задачу определения направления движения поездов в рамках хакатора, который проводился в декабре 2022 г. в Российском университете транспорта РУТ(МИИТ). Для определения направления движения авторы решили использовать расстояния до начальной и конечной станции, координаты которых точно известны. Например, если поезд отдалился от начальной станции и приблизился к конечной, значит он движется по часовой стрелке. После этого осуществляется перенос усредненных координат на график и сохранение координат в CSV файл.
На рисунке 1 представлены визуализированные данные, полученные в рамках хакатона. Для обработки координат авторам были предоставлены данные с нескольких поездов. Таким образом, можно представить путь поезда как вектор от начальной точки до конечной [3], тем самым осуществить перенос физического объекта в систему координат и описать объект в виде математического вектора.
Рис. 1. Отображение входных данных на графике
Получение среднего можно представить в виде формулы (1).
|
(1) |
,
В рамках хакатона участникам были предоставлены данные в виде файла формата CSV , которые представляют собой набор точек, включая: GPS координаты в формате ( x;y ), время (в секундах по Unix ). Информация была собрана с множества маршрутов, движущихся по часовой и против часовой стрелки по кольцевому маршруту. Также была предоставлена информация (координаты) о станциях на отрезке МЦК, а именно: «Локомотив», «Измайлово», «Соколиная Гора», «Шоссе Энтузиастов». Перед авторами были поставлены следующие задачи:
- Разработать функцию для определения направления перемещения поезда по кольцу (по часовой/против часовой стрелки).
- Получить модели траекторий обоих путей путём усреднения имеющегося массива данных.
- Разработать функцию уточнения текущих координат, поступающих с GPS приёмника с использованием разработанной в пункте 2 модели.
Технологии и методы реализации
За время хакатона (24 часа) авторами была реализовано программное обеспечение (ПО) на высокоуровневом языке программирования Python 3.10 с использованием библиотеки matplotlib , которая предоставляет удобные решения для вывода графиков любого вида; numpy — мощная библиотека для математических вычислений [4,5,6].
Рис. 2. Фрагмент реализованного ПО
В начале работы авторы определили формат и содержимое входных данных: данные со множества маршрутов поезда МЦК, при этом каждая синяя точка на данном графике –координата поезда в некоторый момент времени (см. рисунок 3).
Рис. 3. Полученные не аппроксимированные данные
Далее необходимо кластеризовать все поезда на две группы: движущиеся по часовой или против часовой стрелки. После решения данного вопроса авторы приступили к решению главной задачи усреднения с помощью формулы 1. Весь маршрут движения поездов был поделен на отрезки ширины , в каждом из которых и находилась средняя точка. На рисунке 4 представлены результаты работы реализованного ПО. В левой части рисунка представлены координаты маршрута движения поезда, в правой части рисунка представлен визуализированный маршрут движения, очищенный от шумов и избыточных данных.
Рис. 4. Результат работы реализованного ПО
Выводы
Авторами разработано ПО, позволяющее обрабатывать массив данных GPS координат, полученных с датчиков поездов. Разработан принцип, позволяющий систематизировать данные по времени и координатам, разделять данные на маршруты каждого поезда. С помощью реализованного принципа ПО способно определять вектор движения поезда, избавляться от избыточных данных и уточнять координаты поезда.
Литература:
- «ГЛОНАСС/GPS мониторинг железнодорожного транспорта»: [сайт]. — URL: https://www.glonass-expert.ru/products/monitoring-transporta/solutions/kontrol-zh-d-transporta (дата обращения 05.12.2022). — Текст: электронный.
- «Система управления движением локомотивов с использованием ГЛОНАСС GPS»: [сайт]. — URL: https://www.fastwel.ru/solutions/sistema-upravleniya-dvizheniem-lokomotivov-s-ispolzovaniem-glonass-gps/ (дата обращения 15.12.2022). — Текст: электронный.
- Вектор (математика) // wikipedia: сайт. — URL: https://ru.wikipedia.org/wiki/Вектор_(математика) (дата обращения 15.12.2022). — Текст: электронный.
- Логинова, Л. Н. Применение технологии Jupyter Notebook / Jupyter Hub для эффективного обучения в вузах / Л. Н. Логинова, М. А. Кулагин // Ректор ВУЗа. — 2021. — № 4. — С. 32–37. — EDN FXIILL.
- Matplotlib: сайт. — URL: https://matplotlib.org/stable/index.html (дата обращения 25.12.2022). — Текст: электронный.
- NumPy: сайт. — URL: https://pyprog.pro/reference_manual.html (дата обращения 25.12.2022). — Текст: электронный.