Прошло почти четыре месяца с момента запуска проекта Пробки 2.0, все это время пользователи мобильного приложения Яндекс.Карт могли видеть свой вклад в проект на экране мобильного. Со вчерашнего дня Пробки 2.0 доступны всем на сайте Яндекс.Карт.
Сегодня же нам хочется рассказать о том, как же устроен сбор и обработка данных в нашем проекте.
Одним из основным источников данных для Пробок 2.0 являются данные, передаваемые нашими пользователями, на мобильных телефонах которых запущены мобильные Яндекс.Карты. Кроме того, для передачи данных о пробках нужен GPS приемник, либо уже встроенный в телефон, либо внешний, подключенный через Bluetooth.
Когда пользователь передвигается на машине по дороге, мобильные Яндекс.Карты передают его координаты, направление движения и среднюю скорость, рассчитанную GPS приемником.
Данные от пользователей передаются либо раз в 30 секунд, либо, при непрерывном движении, по перемещении на 200 метров.
Каждый пакет данных, приходящий от пользователя, можно изобразить на карте в виде точки с направлением и скоростью.
В процессе предварительной обработки точек определяются улицы, по которым проехал пользователь, и восстанавливается маршрут, с учетом правил дорожного движения. Для восстановления маршрута передвижения используются карты, в которые включены данные о типах дорог, разрешенных поворотах, и пропускной способности дорог.
После того, как восстановлен маршрут, еще раз рассчитывается средняя скорость, с которой пользователь проехал участок дороги. Это нужно для дополнительной проверки и уточнения скорости, рассчитанной GPS приемником. Скорость вычисляется по всем известной формуле скорость = расстояние/время.
На следующем этапе анализа маршруты пользователей, проехавших по одной дороге объединяются между собой, и вычисляется средняя скорость движения на пересекающихся участках маршрутов. В результате этого мы получаем карту дорог города с расставленными скоростями движения.
Вычисленные данные о скоростях на дорогах оцениваются с учетом пропускной способности дорог – например, 40км/ч на МКАД это затруднение, а на узкой улице в центре – это свободное движение. После всех этих действий принимается финальное решение о том, свободна или загружена улица, и на ней рисуется зеленая, красная или желтая стрелка.
Когда мы запустили Пробки 2.0, интервал, за который учитываются собранные данные, был установлен в 30 минут. Сейчас мы сократили "время жизни" данных о свободных дорогах до 10 минут, данных о затруднениях - до 20 минут, время жизни данных о пробках осталось пока 30 минут - ведь рассасываются пробки, к сожалению, медленнее, чем образуются. А вообще, обработка данных оказалась очень увлекательным делом и, кажется, эти параметры мы еще будем изменять, чтобы сделать итоговую картинку максимально соответствующей дорожной обстановке.
Можно просто все пробки выключить (меню - пробки - не показывать).
Отключать одни зеленые, имхо, смысла нет — красные/желтые говорят где есть пробки, оставшиеся участки не обязательно свободны — о них может просто не быть данных.alsun
Зеленые стрелки отключить нельзя. Их наличие дает полную картину дорожного движения, так как они выделяют улицы на которых гарантированно свободно. На мой взгляд, зеленые стрелки совсем не мешают - они тонкие, и не загораживают красные и желтые отрезки :)
Олег Герасимов
Что интересно, раз у Яндекса есть улицы с учётом правил дорожного движения, можно следить за нарушениями ПДД водителей (поехал по встречке, например, или повернул не там).
Интересный сервис должен получиться :)Евгений
Следить за нарушениями можно, собирать статистику как часто водители нарушают правила, а вот до наказания дело не дойдет, ибо высока вероятность программной ошибки.
Flashr
А зачем сразу наказывать? Ведь можно хотя бы предупредить водителя о совершённом нарушении. Думаю, полезно будет для начинающих водителей, проехался по маршруту, а потом смотришь список ошибок совершённых вовремя движения :)DarkByte
Все данные, которые мы получаем от пользователей обезличены и конфиденциальны. Поэтому, неразрешённые повороты, превышения скорости и прочие нарушения ПДД, останутся на совести водителей - нарушителей.
Более того, точность GPS приёмника и карты не позволяет точно сказать едет ли водитель по встречке, или по крайней левому ряду своего направления.
Олег Герасимов
Imho, надо разделить выводы, делаемые на основе динамического анализа и статистического.
Первый тип имеет, как Вы пишете, слишком большую погрешность (200м, да 30сек - будет корректно разве что для участков МКАДа), поэтому нужно много данных из одного места, чтобы делать правдоподобные выводы. И мне кажеться, что с одного перекрестка данных недостаточно сейчас получается в единицу времени. Возможно когда Яндекс будет оплачивать водителям GPRS и помещать на карту платную информацию об объектах, то тогда все будут поголовно пользоваться пробками 2.0 и тогда динамическая оценка будет актуальной. При малом количестве данных можно только оценивать протяженность пробки по Киргофу, не более.
Выводы на статистических данных сейчас кажуться более востребованными, когда поступающие данные от водителя нужны только чтобы подтвердить картину, которая повторяется изо дня в день в одном и том же временном интервале в определенном месте. И если данные нескольких водителей подтверждают тренд, то можно оценить дальнейшую динамику трафика.
.Flashr
Интервалы передачи данных были выбраны исходя из оптимального соотношения полноты данных и объёма передаваемого трафика. При более частой передаче данных возрастёт объем трафика, и как следствие увеличится стоимость трафика для пользователя. По статистике мы в подавляющем большинстве случаев можем точно восстановить маршрут передвижения - поэтому текущая частота передачи данных вполне оптимальна.
О статистике мы тоже думаем, но очень осторожно. Для нас главный приоритет предоставить точные данные о затруднениях движения в настоящий момент, а не статистический прогноз ситуации.
Олег Герасимов
1) Про оптимальность по объему данных и возможность вычислить маршрут - понятно. Однако остается вопрос - когда Вы будете оплачивать водителям GPRS трафик за пользование Яндекс пробками? Я даже готов кликать на размещаемые вами банеры на карте =P (или читать информацию об объектах на карте таких как магазины и автозаправки).
2) Как начинающий водитель, не считаю, что Вы справляетесь со своею "приоритетной" задачей по предоставлению точной информации о пробках. Не раз стоял по часу, там где ничего не было отмечено на карте или проезжал по красному, где час назад была пробка. Вы же сами говорили, что на обработку данных уходит время в десятки минут - и как такой результат можно называть точным?
PS: Перешел на NaviTel и знание собственного опыта, где и когда пробка в наезженных маршрутах.Flashr
Хорошая работа, спасибо!
Зелены и правда можно было бы отключать. Так как наложение в оба направления например желтой и зеленой только путает. А так, когда зеленые отключены, вероятность наложения меньше.
Все-таки надо бы совместить пробки с навигатором, а то при поездке в незнакомый район выбор делаю в пользу навигатора. А пробки включаю только перед началом движения или на знакомом маршруте.
Все же скажу еще слова благодарности: очень приятно проехаться с ветерком и оставить зеленый след)) Спасибо!Александр
Во-первых, спасибо вам огромное за то, что вы делаете!
Во-вторых, в качестве маленького замечания, хотлось бы спросить, следите ли вы за всеми дорогами или только за основными? К сожалению, в моем районе полно мест, где периодически образуются небольшие пробки. Небольшие, но способные сильно растянуть время поездки. В Яндекс.пробках несмотря на это, никаких стрелочек на этих улицах в принципе не рисуется. Естественно, кроме зеленых. Поэтому сложно оценить предстоящий маршрут.
Из списка мест:
Старопетровский проезд, ул. З. и А. Космодемьянских, ул. Дыбенко, Локомотивный пр., 3-ий Нижнелихоборский пр. Еще такая проблема есть на ул. Тимура Фрунзе - она может в приципе стоять в течение часа вообще без движения. Вам переезжать туда вроде скоро? Так вот народ из офисов по всей улице паркуется с обеих сторон чуть ли не в два ряда, улица односторонняя - быстро превращается в тропинку. А после этого туда заезжает грузовик, сзади его запирают 2-3 машины и все. Он доезжает до места, где ему в принципе не уместиться, даже сбив зеркала, и улица встает. Намертво. Периодически наблюдаю из окна. А Яндекс.карты молчат - обидно.Makarovsky Alexander