Туту расписание электропоездов: ‎App Store: Расписание электричек Туту.ру

Содержание

‎App Store: Расписание электричек Туту.ру

Описание

Электрички Туту.ру — это точное расписание пригородных поездов и МЦК.

Tutu.ru — сервис путешествий № 1 в России (по данным кросс-медийной панели GfK, дек. 2016). У нас можно купить билет на поезд, самолет, автобус, заказать тур, посмотреть расписание электричек. Нашим сервисом пользуются более 10 млн человек в месяц.

В приложении:

— Точное расписание электричек, аэроэкспрессов и МЦК на любую доступную дату
— Плановые и оперативные изменения в расписании движения
— Маршруты без подключения к интернету
— Цена билетов на пригородные поезда
— Тип поезда в расписании (Скорый, Ласточка, Экспресс, Комфорт плюс, РЭКС)
— Номера платформ отправления для некоторых электричек
— Удобная работа с избранным — можно легко добавлять и удалять любимые маршруты
— Расписание по станции на сегодня
— Время в пути для каждого маршрута
— Базовое расписание
— Полный маршрут электрички с учетом изменений в расписании и отмены остановок на некоторых станциях

Расписание электричек доступно для следующих регионов России:

— Москва
— Санкт-Петербург
— Архангельск
— Астрахань
— Белгород
— Брянск
— Волгоград
— Вологда
— Воронеж
— Екатеринбург
— Иваново
— Иркутск
— Казань
— Калининград
— Калуга
— Кострома
— Краснодар
— Курск
— Липецк
— Махачкала
— Орел
— Пенза
— Ростов-на-Дону
— Рязань
— Самара
— Саранск
— Смоленск
— Сочи
— Ставрополь
— Тамбов
— Тула
— Улан-Удэ
— Ульяновск
— Уфа
— Ярославль

Версия 4.59

Внесли парочку важных изменений под капотом.

Спасибо, что вы с нами! Пишите ваши отзывы и предложения на [email protected]

Команда Туту.ру

Оценки и отзывы

Оценок: 60,4 тыс.

Удобное!

Пользуюсь не первый год, всё устраивает.

😉

сижу на старой версии, все работает идеально, спасибо)

Здравствуйте! Спасибо за обратную связь! Рады быть полезными 🙂

Есть что добавить!

Добавьте, пожалуйста, возможность оплаты напрямую из приложения.

Не удобно оплачивать с переходами в браузер (или другое приложение).

Здравствуйте! Спасибо за обратную связь. Замечание передали в команду разработки. Подумаем над реализацией.

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

Не связанные с пользова­телем данные

Может вестись сбор следующих данных, которые не связаны с личностью пользователя:

  • Геопозиция
  • Пользова­тель­ский контент
  • История поиска
  • Идентифика­торы
  • Данные об использова­нии
  • Диагностика

Конфиденциальные данные могут использоваться по-разному в зависимости от вашего возраста, задействованных функций или других факторов.

Подробнее

Информация

Провайдер
Tutu.ru Limited Liability Company

Размер
112,1 МБ

Категория
Путешествия

Возраст
4+

Copyright
© LLC «Globus Media» 2011 — 2020

Цена
Бесплатно

  • Сайт разработчика
  • Поддержка приложения
  • Политика конфиденциальности

Другие приложения этого разработчика

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

как устроено расписание электричек / Хабр

Поезда пригородного сообщения — электрички — остаются одним из самых массовых видов пассажирского транспорта в России. За год ими пользуются миллионы пассажиров, которые проезжают суммарно сотни миллиардов километров на тысячах электричек. Только в январе 2017 года, по данным столичного департамента транспорта, опубликованным в едином хранилище данных правительства Москвы (ЕХД), пассажиропоток пригородного железнодорожного транспорта составил 42,6 млн человек. Это выше на 4,1% по сравнению с показателями прошлого года.

Наличие, доступность и точность расписания курсирования электричек волнует каждого пассажира, а для тех, кто его формирует и доносит до людей, является важной и очень непростой задачей.

Меня зовут Александр Подлевских, я ведущий инженер-разработчик компании Туту.ру, тимлид в команде электричек, и в статье расскажу про технические детали и сложности построения онлайн расписания, как все это работает, каким образом мы используем данные, предоставляемые РЖД, и как наши пользователи помогают нам поддерживать расписание в актуальном состоянии, не догадываясь об этом.


График движения поездов — это отображение процесса движения поезда в декартовой системе координат. В таком виде представляется график движения поездов на железной дороге.

На территории России действует порядка 30 пригородных пассажирских компаний (ППК), каждая из которых отвечает за обслуживание пассажиров на определенной территории. Каждая ППК на основании транспортного заказа регионов, пожеланий пассажиров и исследований формирует предложения по изменению расписания, которые раз в год (примерно в начале лета) направляются в ОАО «РЖД».

ОАО «РЖД», получив заявки на расписание электричек, пассажирских и грузовых поездов, в течение нескольких месяцев разрабатывает новый график движения поездов (новое расписание) и в конце года вводит его в действие. Такое расписание, действующее со второго воскресенья декабря каждого года по вторую субботу декабря следующего года, называется нормативным или базовым. Именно оно, как правило, вывешивается на больших стендах на станциях и платформах, именно оно напечатано в книжках, которые можно купить в кассе на ряде станций.

Вместе с тем, большинство пассажиров крупных железнодорожных узлов (например, московского) знают, что на участках с интенсивным движением смысла в базовом расписании немного.

Дело в том, что на железной дороге регулярно требуется проводить ремонтные работы, которые в большинстве случаев невозможно провести без частичного закрытия движения поездов. И тогда ОАО «РЖД» разрабатывает вариантный график движения поездов, предусматривающий, например, поочередное движение поездов по одному пути в обе стороны на одном из перегонов. Другими словами, в базовое расписание вносятся временные изменения. И такие изменения вносятся в расписание постоянно, и не только из-за ремонтных работ.

До появления интернет-ресурсов с расписанием узнать о временных изменениях можно было в основном только из объявлений на станциях. Причем объявление — это не расписание на конкретный день, а, как правило, листочек формата А4 с изменениями к базовому расписанию. И таких листочков могло быть несколько на один день. Например, по одному из них электричка шла в 15:50 вместо 15:30, по другому — эта же электричка шла с пропуском ряда остановок, а по третьему — с изменениями на поздний вечер, куда мало кто смотрел (к примеру, запускалась электричка, которая шла в 15:40 вместо 22:00).

Кстати, на многих станциях до сих пор есть такие объявления. Иллюстрацией может служить пример из жизни: как-то раз решил мой коллега из Туту.ру поехать из Москвы в Ржевский район с пересадкой, доехал на электричке из Москвы до Волоколамска и узнал, что нужный ему пригородный поезд до Ржева из-за ремонтных работ будет только завтра, в Москве информации об этом не было.

С появлением онлайн-ресурсов узнавать расписание стало значительно проще — достаточно зайти на сайт или в мобильное приложение, ввести станции отправления и назначения, дату, и система покажет, какие электрички будут именно в этот день с учетом всех плановых временных изменений, известных к настоящему моменту. Не нужно изучать кучу бумажек с изменениями. И Туту.ру стал первым в России онлайн ресурсом, на котором еще в 2003 году стало публиковаться не только базовое расписание, но и временные изменения.

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

Но все равно ошибки в расписании были, поэтому мы стали искать дополнительные источники информации. Так, вскоре после появления пригородных пассажирских компаний (ППК), которые были также заинтересованы в корректном информировании пассажиров о расписании, мы договорились с ними о получении данных о расписании и изменениях к нему по всем поездам по всем станциям. Появление данного источника информации позволило существенно повысить качество расписания. Если еще в 2005 году практически каждый пользователь сталкивался хоть с одной ошибкой на сайте, то спустя 10 лет подавляющее большинство пользователей всегда видело точное и достоверное расписание.

Поскольку ошибки в данных от ППК хоть и редко, но встречаются, и наши операторы тоже иногда ошибаются, мы не стали останавливаться и подключили ещё один источник — Центральную базу данных пригородного расписания Главного вычислительного центра ОАО «РЖД», в которую сотрудники ОАО «РЖД» вносят расписание пригородных поездов и изменения к нему по всей России.

Каким образом сервис Туту.ру поддерживает актуальность расписания

Сейчас на Туту.ру можно найти информацию о расписаниях, маршрутах и графиках движения электричек по 17 «регионам» (условная разбивка территории, примерно по границам действия ответственности соответствующих ППК). Туту.ру получает данные основного расписания перед введением его в действие, а также информацию о временных изменениях в расписании (варианты движения электричек на конкретные дни).

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

Когда мы решили подключать базу данных ГВЦ, мы не знали точно, каким образом получится ее использовать. Изначально предполагалось, что это станет дополнительным источником данных для получения большего количества данных, возможно, более точных. Известно было, что некоторые детали в модели расписаний у нас и в системе ГВЦ отличаются: например, электричка двигается по одному маршруту, доезжает до конечной станции, какое-то время стоит на этой станции, потом у нее меняется номер и она продолжает движение дальше, но по другому расписанию и маршруту. Как правило, в системе ГВЦ эти два поезда фигурируют как разные, и на сайте РЖД не будет этого поезда в расписании от станции из первого участка до станции из второго. У нас такие ситуации обрабатываются индивидуально, и если есть уверенность, что этот состав просто стоит на станции и потом продолжает ехать дальше, поменяв номер, то он заводится как один объект. У него будет составной номер — номера исходных электричек, указанные через разделитель «/», — и этот состав будет присутствовать в результате поиска электричек между станциями из разных участков.

Изменения, которые отправляются из некоторых ППК (например ЦППК или СЗ ППК) партнерам/подписчикам, содержат данные не обо всех остановках электропоезда, а только об отдельных пунктах (железнодорожная станция, блок-пост, разъезд, путевой пост и т.п.), а время прохождения составом промежуточных пунктов (таких как остановочный пункт, платформа и другие), на которых она, тем не менее, останавливается, каждый партнер вычисляет по-своему.
Рассмотрим пример: электропоезд №6600 по Рижскому направлению по обычному расписанию следует ежедневно и имеет остановки в Нахабино в 5:04, Опалихе 5:10, Красногорской 5:14, Павшино 5:18 и далее. На 9 июля у поезда меняется расписание и от компании перевозчика приходит информация, что из Нахабино электричка будет выезжать в 4:57, а Павшино и далее будет ехать по стандартному графику.

Данные в ГВЦ вносятся такие: по станциям Нахабино и Павшино вносятся 4:57 и 5:18 соответственно, а время прохождения промежуточных станций вычисляется пропорционально изначальному графику хождения, т. е. в соотношении 6:4:4 (как будто электричка на этом участке идет медленнее) и получается, остановка в Опалихе переносится на 5:06, а на станцию Красногорская поезд проследует в 5:12. На сайте Туту.ру долгое время алгоритм вычисления был похожим и в 99% случаев именно такое движение и будет у поезда. Но бывали случаи, когда причина изменения исчезала (например, ремонт) и электричка двигалась на участке с обычной скоростью. В нашем примере это означало бы, что до Опалихи она бы доехала за 6 минут (5:03), далее до Красногорской еще за 4 минуты (5:07), до Павшино еще за 4 минуты (5:11). После чего, чтобы следовать графику, состав бы стоял на станции до 5:18 и дальше бы шел согласно графику.

Что бы это означало для пользователей? Пользователь, пришедший на станцию Красногорская в 5:10, в итоге ждал бы следующую электричку. Из-за таких случаев на сайте Туту.ру время прохождения остановочных пунктов, по которым точное время неизвестно, теперь вводится по алгоритму, отличному от ГВЦ. Время вычисляется на основании исходного графика движения или, вообще, минимального времени прохождения электрички, между заданными станциями. Мы даем пользователю, с большой долей вероятности, время меньшее на несколько минут, чем поедет электричка. Лучше ведь прийти на платформу на пару минут раньше, чем на пару минут позже.

Кроме того, были замечены и ошибки, связанные с человеческим фактором, которые были допущены при внесении расписания в систему ГВЦ. По этим и другим причинам было решено, что напрямую импортировать данные из ГВЦ нежелательно. Вместо этого важнее выяснить, чем отличаются данные, которые хранятся в ГВЦ и у нас. На основании этих данных, а также на основании других источников (в том числе, фактических проверок следования поездов на станциях в сложных случаях), специалисты будут принимать решение, какие данные «вернее» (или будут полезнее пользователям).

Но прежде чем что-то сравнивать, нужно установить хотя бы какие-то связи между объектами. Изначально у нас не было ни соответствий поездов, ни соответствий станций и не было полей, по которым это соответствие можно было строго установить. В базе ГВЦ обнаружилось примерно 25 тысяч объектов станций и 15 тысяч объектов поездов, что осложняло поиск соответствующих поездов «в лоб», т. е. перебором и сравнением каждой станции с каждой станцией и каждого поезда с каждым поездом.

С учетом описанных выше возможных расхождений в алгоритме заполнения моделей, сравнение пришлось бы проводить нечеткое. Это значит, что мы искали бы не точное равенство объектов, а объекты с незначительными отличиями в одном из полей данных, например, отличие времени отправления на 2-3 минуты на одну из дат следования. Нечеткое сравнение довольно дорогостоящее действие, а с учетом того, что пар объектов для сравнения были бы сотни миллионов, такой метод не дал бы результата за разумное время. И в итоге, установленных соответствий было бы немного, потому что изначально не были известны все особенности.

Установка соответствий объектов станций и поездов

Делалось это в несколько этапов и несколько проходов. Первым делом нужно было установить соответствия между объектами станций. По тем идентификаторам, которые были у нас и в базе ГВЦ, соответствие однозначно установить не удавалось. Например, в России существует 9 остановочных пунктов «105 КМ» и 17 остановочных пунктов «106 КМ». Так что, сравнивать названия было не очень эффективно: станций с уникальными названиями, для которых удалось найти уникальные станции в базе ГВЦ, оказалось порядка 10%.

В этом плане очень помог наш специалист по базе данных расписаний Алексей Деркачев, который где-то раскопал соответствие между семизначными кодами станций Экспресс-3 (которые у нас широко используются в качестве одного из идентификаторов станций) и кодом станции из базы данных ГВЦ. С помощью этой таблицы удалось найти пару примерно для половины станций, которые у нас участвуют в расписаниях электричек. После того как получилось сопоставить хотя бы такое количество станций, можно было приступить к следующему этапу: попробовать найти одни и те же поезда.

Для этого автоматический скрипт прошелся по всем найденным парам станций и сделал выборку расписаний электричек по конкретной станции. Далее каждый набор полученных электричек сравнивался, и при нахождении точного соответствия (т. е. количество станций в маршруте одно и то же, время прибытия/отправления поезда по каждой станции по порядку совпадает, номер электрички похож, недельный график совпадает), дубли удалялись и в нашем расписании оставалась только одна электричка.

Таким образом, для части электричек удалось найти пары. После установки соответствий между поездами, можно было опять вернуться к станциям — пройтись по найденным парам поездов и, раз они одинаковые, то и станции в маршруте скорее всего одни и те же. Это дало еще некоторое количество соответствий станций. После чего можно было опять попробовать поискать соответствия поездов. Попутно можно было экспериментировать с разными параметрами поиска, разными допущениями, учитывать все новые и новые особенности формирования и хранения расписания. После десятка итераций базу соответствий можно было уже использовать.

Непрерывный поиск расхождений в расписании

Данные расписаний электричек меняются достаточно часто: вносятся сотни изменений в день, а перед началом и окончанием дачного сезона изменения могут доходить до нескольких тысяч в день. Кроме того, изменения не всегда одновременно попадают и в нашу базу, и в базу ГВЦ, тем более что по регламенту взаимодействия, подгружать обновления данных мы можем только в определенное время два раза в сутки. А вносить данные в свою базу специалисты могут круглосуточно.

Каждый раз делать сверку по всем поездам достаточно дорогостоящая по времени операция, критерии сравнения могут меняться (например, часть расхождений в одну минуту может считаться незначительной и на эти расхождения можно не обращать внимание) и сами данные могут поменяться за это время, могут добавиться новые электрички, для которых еще не найдены соответствия. В поиске несоответствий нам помогают наши клиенты. Каждую секунду на сайте происходит в среднем 10 поисков расписания.

По каждому поиску в фоновом режиме запрашиваются данные из локальной копии данных ГВЦ и происходит сравнение. Если электрички похожи (по номеру, недельному графику и времени прохождения станции), но для них нет соответствия, то оно устанавливается. Если соответствие есть, но данные расходятся, то найденное несоответствие сохраняется. И в дальнейшем специалисты расписания смогут посмотреть общий список несоответствий, расхождений по конкретной паре поездов и выяснить, почему данные расходятся, и затем принять решение, менять ли их у нас на сайте или нет.

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

Техническая реализация

Несколько лет назад в нашей компании благодаря команде DevOps появилась возможность создавать микросервисы. Стало возможным отдельно от монолита реализовывать в своем сервисе новый функционал.

Так появился микросервис, который хранит в себе все данные расписаний из ГВЦ в том же самом формате, которому отвечает база данных, и реализует АПИ, отвечающее на поисковые запросы (откуда-куда-дата, расписание по станции и маршрут конкретной электрички). Это микросервис, который отвечает на поисковые запросы данными из нашего хранилища, сравнивает два набора данных, хранит данные о расхождениях в моделях.

Пополнение базы расхождений


При поиске электричек по какому-нибудь маршруту на сайте происходит вызов сервиса расписания, и перед тем как вернуть результат, из него в шину отправляется событие с вычисленными данными. Сервис сравнения прослушивает эти события, при получении данных запрашивает аналогичные данные из сервиса-хранилища данных из ГВЦ и производит сравнение двух полученных наборов.

Если по поездам с уже установленными связями находится расхождение в данных, то об этом генерируется еще одно событие, которое прослушивается в сервисе-хранилище несоответствий. Если же для каких-то поездов связи нет, но по данным видно, что они сильно похожи, то они связываются.

Процессы работы специалистов расписания электричек с базой несоответствий


Процессы актуализации данных расхождений

Заключение

Система не стоит на месте и мы все время ее дорабатываем. Пока еще есть различия в способах формирования и заполнения моделей данных расписания. Из-за них в итоговом списке различий накапливается значительное количество записей, которые не нужно учитывать, что сильно усложняет ориентирование в нем и, как следствие, реагировать на проблемы сложнее. Но мы работаем над этим.

Мы продолжаем работать над автоматической установкой соответствий между объектами станций и поездов. «Команда электричек» постоянно работает над улучшением сервиса, чтобы вам было удобно им пользоваться.

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

как устроено расписание поездов / Блог компании Туту.ру / Хабр За год ими пользуются миллионы пассажиров, преодолев в общей сложности сотни миллиардов километров на тысячах поездов.

Только за январь 2017 года, по данным Департамента транспорта Москвы, опубликованным в Единой базе данных Правительства Москвы (ЕДД), пассажиропоток пригородного железнодорожного транспорта составил 42,6 млн человек. Это на 4,1% больше, чем в прошлом году.

Наличие, доступность и точность расписания движения электропоездов волнует каждого пассажира, а для тех, кто его формирует и доносит до людей, является важной и очень сложной задачей.

Меня зовут Александр Подлевских, я ведущий инженер-разработчик Туту.ру, бригадир электропоезда, и в статье я расскажу о технических тонкостях и сложностях построения онлайн расписания, как все это работает, как мы используем данные, предоставленные РЖД, и как наши пользователи помогают нам поддерживать расписание в актуальном состоянии, сами того не осознавая.


Расписание поездов представляет собой отображение процесса движения поездов в декартовой системе координат. В таком виде представлено расписание движения поездов по железной дороге.

В России насчитывается около 30 пригородных пассажирских компаний (ППК), каждая из которых отвечает за обслуживание пассажиров на определенной территории. На основании транспортного заказа регионов, пожеланий пассажиров и исследований каждая КПП формирует предложения по изменению расписания, которые направляются в ОАО «РЖД» один раз в год (примерно в начале лета).

Получив заявки на расписание движения электропоездов, пассажирских и грузовых поездов, ОАО «РЖД» в течение нескольких месяцев разрабатывает новое расписание движения поездов (новое расписание) и вводит его в действие в конце года. Такой график, действующий со второго воскресенья декабря каждого года до второй субботы декабря следующего года, называется нормативным или базовым. Именно его, как правило, вывешивают на больших стендах на станциях и перронах; именно оно печатается в книгах, которые можно купить в кассах на ряде станций.

В то же время большинство пассажиров крупных железнодорожных узлов (например, Москвы) знают, что в районах с интенсивным движением в базовом расписании мало смысла. Дело в том, что железная дорога регулярно нуждается в проведении ремонтных работ, которые в большинстве случаев невозможно провести без частичного закрытия движения поездов. И тогда ОАО «РЖД» разрабатывает вариантный график движения поездов, предусматривающий, например, поочередное движение поездов по одному пути в обоих направлениях на одном из перегонов. Другими словами, в базовый график вносятся временные изменения. И такие изменения в график вносятся постоянно, и не только из-за ремонтных работ.

До появления интернет-ресурсов с расписанием узнавать о временных изменениях можно было в основном только из объявлений на станциях. Причем объявление – это не расписание на конкретный день, а, как правило, листовка формата А4 с изменениями в базовое расписание. И таких листовок могло быть несколько за один день. Например, по одному из них электричка шла в 15:50 вместо 15:30, по другому тот же поезд шел с рядом остановок, а по третьему — с пересадками на поздний вечер, где мало люди смотрели (например, электричка тронулась, которая шла в 15:40 вместо 22:00). Кстати, на многих станциях до сих пор есть такие объявления. Иллюстрацией может служить пример из жизни: однажды мой коллега с Туту.ру решил ехать из Москвы в Ржевский район с пересадкой, сел на электричке из Москвы в Волоколамск и узнал

С появлением онлайн-ресурсов узнать расписание стало намного проще — достаточно зайти на сайт или в мобильное приложение, ввести станции отправления и назначения, дату, и система покажет, какие поезда будут в этот день, с учетом всех известных на сегодняшний день запланированных временных изменений. Не нужно изучать кучу бумажек с изменениями. А Туту.ру стал первым интернет-ресурсом в России, на котором еще в 2003 году начали публиковаться не только основное расписание, но и временные изменения.

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

Но все равно в расписании были ошибки, поэтому мы стали искать дополнительные источники информации. Итак, вскоре после появления пригородных пассажирских компаний (ППК), которые также были заинтересованы в правильном информировании пассажиров о расписании, мы договорились с ними о получении данных о расписании и изменениях к нему для всех поездов на всех станциях. Появление этого источника информации значительно улучшило качество графика. Если еще в 2005 году почти каждый пользователь сталкивался хотя бы с одной ошибкой на сайте, то спустя 10 лет подавляющее большинство пользователей всегда видели точный и достоверный график.

Так как ошибки в данных с пульта управления хоть и редко, но случаются, и наши операторы тоже иногда ошибаются, мы не стали останавливаться и подключили другой источник — Центральную базу данных пригородного расписания Главного вычислительного центра РЖД, которому сотрудники РЖД составляют расписание движения пригородных поездов и изменения к нему по всей России.

Как сервис Туту.ру поддерживает актуальность расписания

Сейчас на Туту.ру можно найти информацию о расписаниях, маршрутах и ​​графиках движения электропоездов по 17 «регионам» (условная разбивка по территории, примерно по границам ответственности соответствующих диспетчерских пунктов). Туту.ру получает данные основного расписания до его введения в действие, а также информацию о временных изменениях в расписании (варианты движения поездов в определенные дни).

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

Когда мы решили подключить базу данных MCC, мы точно не знали, как ею пользоваться. Изначально предполагалось, что это будет дополнительный источник данных для получения большего количества данных, возможно, более точных. Было известно, что некоторые детали в модели расписания здесь и в системе ГВЦ различаются: например, поезд движется по одному маршруту, доходит до конечной станции, некоторое время стоит на этой станции, затем меняет свой номер и он продолжает двигаться дальше, но по другому графику и маршруту. Как правило, в системе МЦК эти два поезда значатся как разные, а на сайте РЖД такого поезда в расписании не будет от станции с первого участка до станции со второго. У нас такие ситуации обрабатываются индивидуально, и если есть уверенность, так как эта конструкция просто стоит на станции и далее продолжает двигаться дальше, меняя номер, она запускается как один объект. Он будет иметь составной номер — номера исходных поездов, указанных через разделитель «/», — и этот поезд будет присутствовать в результате поиска поездов между станциями из разных участков.

Изменения, рассылаемые с некоторых пунктов управления (например, ЦОД или СЗ ППК) партнерам/абонентам, не содержат данных обо всех остановках электропоезда, а только об отдельных точках (железнодорожный вокзал, КПП, переезд, промежуточный пункт и др. ), а время прохождения поездом промежуточных пунктов (таких, как остановочный пункт, перрон и др.), в которых он все же останавливается, каждый партнер рассчитывает по-своему.
Рассмотрим пример: электропоезд № 6600 Рижского направления по обычному расписанию следует ежедневно и имеет остановки в Нахабино в 5:04, Опалихе 5:10, Красногорске 5:14, Павшино 5:18 и далее. 9 июля, расписание движения поездов меняется и от компании перевозчика поступает информация о том, что поезд отправится из Нахабино в 4:57, а Павшино продолжит движение по стандартному расписанию.

Данные в МЦК следующие: на станциях Нахабино и Павшино вводятся 4:57 и 5:18 соответственно, а время прохождения промежуточных станций рассчитывается пропорционально исходному графику ходьбы, т.е. в соотношении 6:4:4 (словно поезд на этом участке идет медленнее) и получается, что остановка в Опалихе переносится на 5:06, а на станцию ​​Красногорск поезд пойдет в 5:12 . Алгоритм расчета на сайте Туту.ру долгое время был аналогичным, а в 9В 9% случаев у поезда будет именно такое движение. Но бывали случаи, когда причина смены исчезала (например, ремонт) и поезд двигался по участку с обычной скоростью. В нашем примере это означало бы, что она доехала бы до Опалихи за 6 минут (5:03), затем до Красногорска за 4 минуты (5:07) и до Павшино за 4 минуты (5:11). Затем по расписанию

Что это будет означать для пользователей? Пользователь, прибывший на станцию ​​«Красногорская» в 5:10, в конечном итоге ждал следующего поезда. Из-за таких случаев время остановочных пунктов, точное время которых на сайте Туту.ру неизвестно, теперь вводится по алгоритму, отличному от МСС. Время рассчитывается исходя из исходного графика движения или вообще минимального времени прохождения поезда между заданными станциями. Даем пользователю, с большой долей вероятности, время на несколько минут меньше, чем пойдет поезд. Лучше прийти на платформу на пару минут раньше, чем на пару минут позже.

Кроме того, были замечены ошибки, связанные с человеческим фактором, допущенные при составлении расписания в системе МСС. По этим и другим причинам было решено, что прямой импорт данных из МСС нежелателен. Вместо этого важнее выяснить, чем отличаются данные, хранящиеся в ЦУПе, и наши. На основании этих данных, а также на основании других источников (в том числе фактических осмотров поездов на станциях в сложных случаях) специалисты будут решать, какие данные являются «более точными» (или будут более полезными для пользователей).

Но прежде чем что-то сравнивать, нужно установить хоть какую-то связь между объектами. Изначально у нас не было ни поездных соответствий, ни станционных соответствий и не было полей, по которым это соответствие можно было бы строго установить. В базе МЦК было обнаружено около 25 тыс. объектов станций и 15 тыс. объектов поездов, что затрудняло поиск релевантных поездов «в лоб», то есть путем поиска и сравнения каждой станции с каждой станцией и каждого поезда с каждый поезд.

Учитывая описанные выше возможные расхождения в алгоритме заполнения моделей, сравнение должно быть нечетким. Это значит, что мы бы искали не точное равенство объектов, а объекты с небольшими отличиями в одном из полей данных, например, разница во времени отправления на 2-3 минуты в одну из дат. Нечеткое сравнение — довольно затратное действие, а с учетом того, что пар объектов для сравнения будет сотни миллионов, такой метод не даст результатов за разумное время. И в итоге установленных соответствий было бы мало, потому что изначально не были известны все признаки.

Соответствующие станции и железнодорожные станции

Делалось это в несколько этапов и за несколько проходов. Первым шагом было установление соответствия между объектами станций. По идентификаторам, которые у нас были и в базе МСС, однозначно установить соответствие не удалось. Например, в России 9 остановочных пунктов «105 км» и 17 остановочных пунктов «106 км». Так что сравнение названий было не очень эффективным: было около 10% станций с уникальными названиями, для которых можно было найти уникальные станции в базе МСС.

В этом плане очень помог наш специалист по базе расписаний Алексей Деркачев, который где-то откопал соответствие между семизначными кодами станций «Экспресс-3» (которые мы широко используем как один из идентификаторов станций) и кодом станции из базу данных МЦК. Используя эту таблицу, нам удалось найти пару примерно для половины станций, которые мы участвуем в расписании поездов. После того, как удалось сравнить хотя бы такое количество станций, можно было переходить к следующему этапу: попытаться найти одинаковые поезда.

Для этого автоматический скрипт перебрал все найденные пары станций и сделал подборку расписания поездов для конкретной станции. Далее сравнивался каждый набор поступивших поездов, и при нахождении точного совпадения (т.е. количество станций на маршруте одинаковое, время прибытия/отправления поезда на каждой станции одинаковое, номер поезда аналогичен, расписание на неделю то же), дубликаты были удалены и в нашем расписании остался только один поезд.

Таким образом, для некоторых поездов удалось найти пары. После того, как соответствие между поездами было установлено, можно было снова вернуться к станциям — пройтись по найденным парам поездов и, поскольку они одинаковые, то и станции в маршруте, скорее всего, одинаковые. Это дало еще несколько соответствующих станций. После чего можно было снова пытаться искать совпадающие поезда. Попутно можно было экспериментировать с разными параметрами поиска, разными допущениями, учитывать все новые и новые особенности формирования и хранения расписания. После десятка итераций базу данных переписки уже можно было использовать.

Непрерывный поиск расхождений в расписании

Данные расписания поездов меняются довольно часто: в день вносятся сотни изменений, а перед началом и окончанием летнего сезона изменения могут достигать нескольких тысяч в день. К тому же изменения не всегда одновременно попадают и в нашу базу, и в базу МСС, тем более что по правилам взаимодействия мы можем выкладывать обновления данных только в определенное время два раза в сутки. А специалисты могут вносить данные в свою базу данных круглосуточно.

Каждый раз сверка всех поездов является достаточно трудоемкой операцией, критерии сравнения могут меняться (например, часть расхождений за одну минуту может считаться незначительной и на эти расхождения можно не обращать внимания) и сами данные могут меняться в это время могут быть добавлены новые поезда, для которых еще не найдено совпадений. Наши клиенты помогают нам найти расхождения. Каждую секунду на сайте происходит в среднем 10 запросов расписания.

Для каждого поиска в фоновом режиме запрашиваются данные из локальной копии данных MCC и производится сравнение. Если поезда похожи (по номеру, недельному расписанию и времени прохождения станции), но совпадения для них нет, то он устанавливается. Если совпадение есть, но данные расходятся, то найденное несоответствие сохраняется. А в дальнейшем специалисты по расписанию смогут посмотреть общий список расхождений, расхождений по конкретной паре поездов и выяснить, почему расходятся данные, а потом решить, менять их или нет на нашем сайте.

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

Техническая реализация

Несколько лет назад в нашей компании благодаря команде DevOps стало возможным создавать микросервисы. Появилась возможность реализовать новый функционал отдельно от монолита в его сервисе.

Так появился микросервис, который хранит все данные расписаний из МЦК в том же формате, на который отвечает БД и реализует API, отвечающие на поисковые запросы (куда-дата, расписание станций, маршрут конкретного электропоезд). Это микросервис, который отвечает на поисковые запросы данными из нашего репозитория, сравнивает два набора данных, хранит данные о расхождениях в моделях.

Пополнение базы расхождений


При поиске поездов по любому маршруту на сайте вызывается служба расписания, и перед возвратом результата от нее на автобус отправляется событие с рассчитанными данными. Сервис сравнения прослушивает эти события, при получении данных запрашивает те же данные у сервиса хранения данных у ЦУПа и сравнивает два полученных набора.

Если есть несоответствие данных по поездам с уже установленными стыковками, то по этому поводу формируется другое событие, которое прослушивается в службе хранения несоответствий. Если для каких-то поездов связи нет, но по данным видно, что они очень похожи, то они связаны.

Процессы работы специалистов по расписанию движения электропоездов с базой данных несоответствий


Процессы актуализации этих несоответствий

Заключение

Система не стоит на месте и мы постоянно ее развиваем. Еще есть различия в методах формирования и заполнения моделей данных расписания. Из-за них в итоговом списке отличий скапливается значительное количество записей, которые не нужно учитывать, что значительно усложняет в нем ориентацию и, как следствие, труднее реагировать на проблемы. Но мы работаем над этим.

Продолжаем работу по автоматической установке соответствий между объектами станций и поездов. Команда «Электрички» постоянно работает над улучшением сервиса, чтобы вам было удобно им пользоваться.

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

Домашняя страница — Паровая железная дорога Умгени (Официальный сайт)

Некоммерческая организация, занимающаяся сохранение железнодорожного наследия в Южной Африке.
В связи с продолжающимся ремонтом железнодорожной линии все поезда будут отправляться из Инчанги.
Ремесленный рынок Инчанга на железнодорожной станции Инчанга открыт каждый раз, когда ходят поезда. Товары для рукоделия, еда и прохладительные напитки всегда продаются в указанные дни поездов. ниже.
Следите за расписанием на сайте, в Facebook и за специальным поездом текущие даты.
Перейти к последнему расписанию поездов

Паровоз Умгени

ПРЕЙСКУРАНТ

.
Взрослый Ребенок 2-12 лет Пенсионер 60 лет+

Поезда из Инчанги в Ботас-Хилл возвращаются
Р150 Р100 Р100

Повышение цен Декабрь 2022
Р170 Р110 Р110

Дети до 2 лет перевозятся на коленях и поэтому не забронированы на поезд.

Цены указаны только за проезд на поезде.

В Inchanga есть ремесленный рынок с продовольственными прилавками. продается в поезде.

В связи с тем, что на железнодорожной линии до Клуфа все еще ведутся ремонтные работы, все поезда Отправление со станции Инчанга.

В Inchanga и в поезде нет карт, принимаются только НАЛИЧНЫЕ и ZAPPER.

Поезд не оборудован для инвалидных колясок.

Если нам нужно ОТМЕНИТЬ любой поезд по какой-либо причине, с пассажирами автоматически связываются и предлагают отложить бронирование на будущее даты или быть возвращены в полном объеме.

Форма бронирования поезда

Расписание поездов

009 retn: 14h25
280 мест
Санта -Тран
Паровой поезд

99999911111111111111111111111111111191111111111111111111111111119 111111111111111111111119.
Суббота
26 ноября 2022 г.

Поезд 1
Департамент: 08H40
RETN: 09H55
230 SEAT : 11:00
Возврат: 12:25
20 мест
Inchanga Choo Choo
Паровоз

Поезд 3
Отделение: 13h40
Возврат: 14h55
230 мест Choo Inchan Train

119


поезда 4
Департамент: 15H40
Retn: 16H55
250 мест
Inchanga Choo Choo

15 декабря 2022

15 декабрь 2022
.
 260 мест
Поезд Санты
Паровоз

Поезд 2
Отд: 11:00
Возврат: 12:25
 270 мест
Поезд Санта
Паровоз 9:10 9 ч 30 D

Поезд 4
Департамент: 15h00
RETN: 16H25
270 Сидений
Санта -поезде

.
260 мест
колядки по кадлере
паровой поезд
Пятница
16 декабря 2022 г.

Поезд 1
Департамент: 09H00
RETN: 10H25
270.0009 Steam Train

Поезд 2
Департамент: 11h00
Retn: 12H25
240 Сиденья
Санта
Паровой поезд

Поезд 3
Департамент: 13H00
RETN: 14H25
250 SEATS
DEPTAN

поезда 4
Департамент: 15h00
Retn: 16h25
280 мест
Санта-поезда
Паровой поезд

Поезд 5
Отдел: 17h00
Retn: 18h25
230 Seats
Carys-By-Candlellelletight
Сторой Поезд
230.0119
Saturday
17 December 2022

Train 1
Dept: 09h00
Retn: 10h25
 270 seats 
Santa Train
Steam train

Train 2
Dept: 11h00
Retn: 12h25
 270 seats 
Санта -поезд
Steam Train

поезда 3
Департамент: 13H00
Retn: 14H25
270 мест
Санта -Тран
Паровой поезд

Поезд 4
Департамент: 15H00
RETN: 16H25 9000
. 0009  260 seats 
Santa Train
Steam train

Train 5
Dept: 17h00
Retn: 18h25
 230 seats 
Carols-by-Candlelight
Steam train
Monday
26 December 2022

Train 1
Департамент: 09H00
RETN: 10H25
280 мест
День бокса
Паровой поезд

Поезд 2
Департамент: 11H00
RETN: 12H25
220 SEATS
День бокса
Паровой поезд

.0009 Train 3
Dept: 13h00
Retn: 14h25
 270 seats 
Boxing Day
Steam train

Train 4
Dept: 15h00
Retn: 16h25
 280 seats 
Boxing Day
Steam train

Train 5
Департамент: 17H00
RETN: 18H25
280 SEATS
День бокса
Паровой поезд
Суббота
7 января 2023

Поезд 1
DEPT: 08H40
RETN: 19H559999999999999S

















9. 0009 Inchanga Choo Choo
Steam train

Train 2
Dept: 11h00
Retn: 12h25
 270 seats 
Inchanga Choo Choo
Steam train

Train 3
Dept: 13h40
Retn: 14h55
 280 seats 
Inchanga Choo Choo
Steam Train

поезда 4
Департамент: 15H40
Retn: 16H55
280 сидений
Inchanga Choo Choo
Паровой поезд
Color Legen (Свободных мест)
100+ мест слева -100 мест слева -50 мест слева Забронировано/Закрыто

Как добраться до станции Инчанга

Примечание. Поезда ходят только в указанные выше даты и время.

Вам необходимо будет прибыть на станцию ​​Инчанга за полчаса.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *