Прошло почти четыре месяца с момента запуска проекта Пробки 2.0, все это время пользователи мобильного приложения Яндекс.Карт могли видеть свой вклад в проект на экране мобильного. Со вчерашнего дня Пробки 2.0 доступны всем на сайте Яндекс.Карт.
Сегодня же нам хочется рассказать о том, как же устроен сбор и обработка данных в нашем проекте.
Одним из основным источников данных для Пробок 2.0 являются данные, передаваемые нашими пользователями, на мобильных телефонах которых запущены мобильные Яндекс.Карты. Кроме того, для передачи данных о пробках нужен GPS приемник, либо уже встроенный в телефон, либо внешний, подключенный через Bluetooth.
Когда пользователь передвигается на машине по дороге, мобильные Яндекс.Карты передают его координаты, направление движения и среднюю скорость, рассчитанную GPS приемником.
Данные от пользователей передаются либо раз в 30 секунд, либо, при непрерывном движении, по перемещении на 200 метров.
Каждый пакет данных, приходящий от пользователя, можно изобразить на карте в виде точки с направлением и скоростью.
В процессе предварительной обработки точек определяются улицы, по которым проехал пользователь, и восстанавливается маршрут, с учетом правил дорожного движения. Для восстановления маршрута передвижения используются карты, в которые включены данные о типах дорог, разрешенных поворотах, и пропускной способности дорог.
После того, как восстановлен маршрут, еще раз рассчитывается средняя скорость, с которой пользователь проехал участок дороги. Это нужно для дополнительной проверки и уточнения скорости, рассчитанной GPS приемником. Скорость вычисляется по всем известной формуле скорость = расстояние/время.
На следующем этапе анализа маршруты пользователей, проехавших по одной дороге объединяются между собой, и вычисляется средняя скорость движения на пересекающихся участках маршрутов. В результате этого мы получаем карту дорог города с расставленными скоростями движения.
Вычисленные данные о скоростях на дорогах оцениваются с учетом пропускной способности дорог – например, 40км/ч на МКАД это затруднение, а на узкой улице в центре – это свободное движение. После всех этих действий принимается финальное решение о том, свободна или загружена улица, и на ней рисуется зеленая, красная или желтая стрелка.
Когда мы запустили Пробки 2.0, интервал, за который учитываются собранные данные, был установлен в 30 минут. Сейчас мы сократили "время жизни" данных о свободных дорогах до 10 минут, данных о затруднениях - до 20 минут, время жизни данных о пробках осталось пока 30 минут - ведь рассасываются пробки, к сожалению, медленнее, чем образуются. А вообще, обработка данных оказалась очень увлекательным делом и, кажется, эти параметры мы еще будем изменять, чтобы сделать итоговую картинку максимально соответствующей дорожной обстановке.Олег Герасимов