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



Что к чему


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

Что можно с этим делать?


После группировки сообщений открывается непаханое поле возможностей по анализу данных (поиск путей объезда, своевременное оповещение о том, что на запланированном вами пути что-то происходит… и много-много другого). Но, так как еще непонятно, во что это всё выльется, а, может быть, и зря начиналось… я решил это всё отложить до лучших времен. Дабы не усложнять проект, который, еще даже не опубликовав, хочется переписать.

Один день из жизни Москвы (понедельник 14.07.2015)


Хочу больше интересных циферок


Однажды я рассказал своему коллеге-пешеходу о том, что собираюсь сделать, и он мне подкинул идею. А почему бы не ввести некий индекс (назовем его «Индекс паршивости»), который бы символизировал чисто субъективный показатель некомфортности нахождения на улицах города. Загруженности города, разницы между температурой и «ощущаемой» температурой, силе ветра, влажности… На поиск информации о том, что считать комфортными показателями, я потратил множество часов. Особенно большое затруднение у меня вызвала формула вычисления «ощущаемой температуры» (Apparent temperature). Как я успел выяснить, эталонной формулы не существует, и на протяжении долгого времени с регулярной периодичностью появляются научные труды, которые вносят свои корректирующие коэффициенты и новые варианты вычислений. Да и после более тщательного размышления я отказался от этого показателя вовсе. Зачем он нужен. Зато я наткнулся на другой интересный индекс Heat Index. Собственно, по поводу индекса («Паршивости») больше вопросов, чем ответов, и тут бы хотелось услышать мнение людей. Нужен ли он, если нужен, то что и как должно на него влиять?



Занимательные факты из жизни городов


За то долгое время, пока я любовался происходящим на дорогах Москвы и Санкт-Петербурга, я успел выяснить, что больше всего интересует автомобилистов, и что они не любят.

Москвичи больше всего интересуются: когда закончится ремонт (в том месте где он (она) стоит в пробке), что там произошло, где стоят барышни всем известной профессии. А не любят жители города дачников, Яндекс (причем чаще всего упоминается, что он им в чём-то солгал) и некоего «Царя».

В Санкт-Петербурге ситуация немного другая, жители города очень интересуются, когда разводят мосты и развели ли их. И негодуют по поводу спецопераций правоохранительных органов по выявлению веселящих веществ на дорогах.
«А как же в обстоят дела в моем (не)любимом <поставить название города>?» — спросите вы?
Увы, ничего интересного по городам, отличным от Москвы и Санкт-Петербурга, увидеть нельзя. Хотя иногда случается…

И, наконец, техническая сторона


Стек. Ничего особенного. Node.Js, express.js, React.Js, mongodb, socket.io. Слабым местом архитектуры приложения является WebSocket, вернее количество одновременно открытых соединений. Провел небольшие нагрузочные тесты и ожидаю от минимального droplet на digital ocean, что он вытянет 4 тыс (как минимум) одновременных соединений. В любом случае будет интересно. И, если что, повод заморочится с настройкой load balancing и autoscaling. Но это будет(?) совсем другая история.

Спасибо


Компании Яндекс, информацией из сервисов которой я воспользовался
Компании Ростелеком, а именно sputnik.ru. Которая любезно предоставила cdn для карт в России (http://sputnik-maps.github.io/).
Vladimir Agafonkin за плагин Leaflet.heat

Ссылки


Проект
GitHub

P.S. Если мои идеи каким либо образом копируют чей-то проект, было бы интересно с ним ознакомиться.
Интересно?

Проголосовало 172 человека. Воздержалось 54 человека.

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

Комментарии (12)


  1. serafims
    24.07.2015 10:22

    А что отражают индексы температуры и т.п.? +5 зимой и летом совершенно разные ощущения дают…


    1. lafin Автор
      24.07.2015 10:26

      Там. Индекс теплоты (жары). en.wikipedia.org/wiki/Heat_index

      27–32 °C Caution: fatigue is possible with prolonged exposure and activity. Continuing activity could result in heat cramps.
      32–41 °C Extreme caution: heat cramps and heat exhaustion are possible. Continuing activity could result in heat stroke.
      41–54 °C Danger: heat cramps and heat exhaustion are likely; heat stroke is probable with continued activity.
      over 54 °C Extreme danger: heat stroke is imminent.


    1. Groove
      24.07.2015 13:55

      hi-news.ru/eto-interesno/fakty-kak-meteorologi-uznayut-moi-oshhushheniya-pogody.html

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


      1. BalinTomsk
        24.07.2015 16:45

        --несмотря на ее реальное значение.

        используется % влажности при подсчете «feels like».


  1. Templier
    24.07.2015 10:50

    Хм на карте дтп, на варшавке за мкадом, почему два? Обычно там дтп на повороте на ст. расторгуево и народ просто криво ставит точки.


  1. Gorodnya
    24.07.2015 14:00

    У как-то писал Яндексу, что у них на карте е­сть не только «пробки», но и прогноз про­бок:
    «Нет ли возможности присыла­ть e-mail с их прогнозом на определённых­ координатах? Или как-то иначе оповещать­ про прогноз. Если это невозможно, хотя ­бы текущее состояние. Думаю, многие поль­зователи бы оценили такую функцию». Приняли ко вниманию и всё.


    1. lafin Автор
      24.07.2015 14:04

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


      1. Gorodnya
        24.07.2015 14:05

        Было бы замечательно.


      1. alexcrown
        24.07.2015 16:07

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


        1. Gorodnya
          24.07.2015 17:26

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


      1. Angolier
        27.07.2015 11:39

        это уже есть и реализовано.
        YaRouteMonitor
        Когда жил в Москве и много перемещался, по «треугольнику»: Сокол, Юго-западная, Балашиха.
        Из всего не хватало только смс уведомления в определенное время :), что пробки на маршрутах… трындец, трындец и можно проехать быстро :)


        1. Gorodnya
          02.08.2015 18:44

          Кто-то читает Хабр)
          Обновились Яндекс.Карты, став ближе к тому, о чём мы писали:
          hsto.org/files/55a/a4b/d1b/55aa4bd1b62c4a93a96c04efccbbf88b.png
          (скриншот могу только такой ссылкой)