-
2021-07-28 09:17:11+00:00
#spatialmodels
Сегодня пост про одну из самых популярных задач геомаркетинга, которую благодаря хакатону whoosh мне,наконец-то, удалось реализовать на практике и частично провалидировать. Задача звучит следующим образом: оценить потока людей, проходящих по определенному участку города, без использования фактических данных. Кому нужен ответ на этот вопрос? В первую очередь, конечно, стрит-ритейлу или стрит-фуду, которые хотят, чтобы к ним заходило как можно больше людей. Еще это может быть интересно сервисам аренды мест наружней рекламы или проката самокатов, так как их показатели напрямую зависят от того, сколько людей ходит мимо. Также, ее используют для оценки пассажиропотока при создании транспортных узлов.
Так вот, если компания чуть меньше , чем Старбакс и купить данные мобильных операторов или gps-данные для нее слишком дорого, то для ответа на этот вопрос можно использовать гравитационную модель, одну из моделей семейства spatial interactions models. Сразу оговорюсь, что модель работает только на уже заселенной территории - для проектирования потоков на новых участках используют методы spatial syntax.
Идея гравитационной модели следующая: между двумя локациями поток людей перетекает из одной точки в другую пропорционально привлекательности финальной точки и обратно пропорционально затратам на ее достижение. При этом под привлекательностью обычно понимают вместимость финальной точки, а под затратами время. Но прелесть алгоритма в том, что в зависимости от задачи эти переменные можно сколько угодно усложнять, закладывая в них более комплексные показатели. По этому алгоритму считается вероятность, с которой люди выберут определенное направление. Потом вероятность взвешивается на объем спроса в исходной точке и получается размер потока.
Теперь на примере. Для задачи хакатона я оценивала с помощью этой модели, сколько людей в Москве перемещается между станциями метро и бизнес-центрами в утренние и вечерние часы пик. Для этого с Open Street Map был выгружен список БЦ Москвы с их этажностью ( tag=‘level’, way“building"="office”) и координаты выходов из станций метро, которые затем были сгруппированы в кластеры с радиусом 200 метров.
Далее через этажность и средний % работников, добирающихся на работу на общественном транспорте, я расчитала сколько людей из бц идет в метро - это объем спроса в исходной точке. Привлекательность зоны метро - это число веток, на которые можно попасть с этой станции (если заморочиться можно перевзвесить на число всех доступных станций метро по прямой), затраты : время по пешеходному графу ( можно посчитать из osmnx ). Подставляя в формулу получаем объем потока. Размазываем его по длительности пиковых часов, складываем все цифры по каждому участку улиц и вуаля, у нас есть число пешеходов, да еще с определенным уровнем дохода, в час на конкретном участке. ( Формула и иллюстрация логики ниже)
Важный момент здесь - как привязать получившееся число к улицам и здесь есть несколько вариантов:
1. можно брать кратчайший путь между каждым бц и метро и считать что весь поток идет по нему
2. можно брать n путей по длительности не больше, например, 15 мин и распределять пропорционально или взвесив на длину
3. можно использовать алгоритмы space syntax для решения задачи choice, где решающим фактором является геометрия улиц
Мы использовали 2 вариант, заложив, что время до метро не должно превышать 20 мин, но взвесили не только на длину, но и пешеходную привлекательность улицы, которую расчитали через WalkScore( писала о нем раньше)
В итоге мы получили покрытие числом пешеходов 94% улиц в пределах 3-ьего транспортного и 38% за его пределами в часы пик. Корелляция в центре с числом поездок на самокатах whoosh - 77%. Кажется, вполне рабочий алгоритм для оценки потоков в рабочие будни.
Еще немножко про модель гравитации можно почитать здесь и здесь.
-
2021-07-19 07:24:28+00:00
#geotools #geodata
Хорошим поводом отвлечься от рабочих геозадач и применить свои знания для решения актуальной городской проблемы стал хакатон сервиса аренды самокатов Whoosh , первый этап которого прошел в эти выходные. Организаторы сформулировали 3 темы : безопасность поездки, навигация и транспортная доступность. Наша команда решала задачу обеспечения безопасности. Мы предложили на основе данных об авариях с участием самокатов и исторических данных о скорости их передвижения создать карту, где все участки дорог в городе будут проранжированы по уровню их безопасности для езды на самокате. Это позволит сервису улучшить свои рекомендации маршрутов, а ДТ правильно выбирать зоны для ограничения скорости.
Небольшие выводы по ходу работы:
1. Наиболее удобный формат работы с геоданными: собирать и обрабатывать в питоне (библиотеки geopandas, shapely), визуализировать - в web-сервисах, мой личный топ - Unfolded.AI. Про него лучше написать отдельно, скажу только, что его делали ребята из uber - авторы kepler.gl и h3, а потому он имеет в себе весь их функционал и даже болеьше. У участников, кто пользовался qgis, 6 млн строк историии поездок на самокате сильно висели и они мало, что успели сделать.
2. искали решения похожих задач зарубежом: нашли bike compatibility index ( например, но для самокатов ничего подобного пока не расечили, а они на волне популярности удже 3 года
3. Некоторые датасеты портала ОД Москвы обладают удивительным свойством : в их названии есть слово “ Карта“, при этом они не содержат геоданных, как например эта “Карта среднемесячной загруженности дорог с индексами загруженности”
4. Из-за небольшой погрешности коодинаты самокатов плохо привязываются к графу дорог, загруженному из OSM. Чтобы это сделать нужно сначала создать прямоугольный buffer вокруг линии
5. При построении модели прогноза аварийности, если не хотите получить вывод, что аварий больше там, где больше самокатов, используйте в качестве таргета вероятность аварии, а не абсолютное число)
6. Карта ДТП (https://dtp-stat.ru/) - замечательный источник полезных открыты данных о Москве
7. Не хватило открытых данных по скоростным ограничениям для автомобилей, а также по парковкам и зонам для самокатов. Еще мы мечтали о ширине тротуаров
Первые выводы по самой задаче :
1. В Москве между числом аварий и уровнем пешеходности есть сильная прямая зависимость, то есть, чем больше может быть людей на улице, тем выше вероятность столкновения
2. В Москве наличие велодорожек никак не коррелирует с аварийностью, хотя в Европе установлено, что на велодорожки приходится самый низкий уровень аварий. Видимо, в Москве их длина настолько незначительна относительно всей длины дорог, что модель воспринимает их наличие и ширину, как погрешность
3. Вне центра Москвы почти все аварии на дорожных развязках. Кажется повод задуматься о наземных переходах.
3. Скутеры, благодаря встроенной системе gps и гибкости в выборе маршрутов , отличные источники данных для изучения поведения горожан на улице