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

В этом блоге предлагается подход, основанный на Pandana, отличной библиотеке Python, разработанной Флетчером Фоти.

На какие вопросы можно ответить?

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

Первый шаг: создайте объект уличной сети

Раздел математики, связанный с сетями, теория графов, был известен Леонардом Эйлером, когда он попытался смоделировать маршруты через семь мостов Кенигсбурга. Мы можем моделировать дорожные сети, используя ту же терминологию узлов (в нашем случае пересечения улиц) и краев (улиц).

Анализ дорожной сети в Python стал намного проще благодаря тому, что несколько исследователей, в частности Фоти и Джефф Боинг, создали автоматизированные методы преобразования дорог OpenStreetMap (OSM) в допустимые графические объекты. Их инструменты Pandana и OSMNx загружают и очищают дорожные данные OSM посредством таких шагов, как удаление точек, которые не представляют собой фактические пересечения (следовательно, не являются узлами в смысле теории графов).

Давайте подключим уличную сеть Касабланки, Марокко:

Второй шаг: найдите интересующие вас объекты

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

Третий шаг: вычислить расстояния

Вот где действительно выгодно проводить географический анализ в Python, а не сидеть перед пакетом ГИС. Пандана создана для скорости. Во-первых, мы передадим ему максимальное расстояние поиска. Это позволяет сделать ключевой шаг, который ускоряет запросы в будущем: Pandana построит сжатое представление сети (реализовано на C ++), позволяя выполнять быстрые вычисления в пределах определенного радиуса каждого узла. Мы составим таблицу расстояний до ближайших 5 точек интереса от пары перекрестков.

После этого анализ доступности для различных выбранных удобств может быть выполнен менее чем за секунду. (Под капотом это делают два алгоритма: иерархии сжатия и kd-деревья.)

Четвертое: составьте карты доступности

Затем мы можем создать карты доступности. Давай приготовим!

Как видите, есть зоны, где вам нужно пройти более 2 километров, чтобы добраться до ближайшей школы, тогда как в центре Касабланки расстояние пешком в среднем составляет менее 400 метров.

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

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

В любом случае, наш рабочий процесс с использованием Pandana отвечает на этот вопрос. Просто перечислите интересующие вас удобства и создайте их взвешенный индекс. Действительно, компания WalkScore использует аналогичные методы для оценки качества района в США (вы увидите это при просмотре Zillow).

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

plot_nearest_amenity('all',5)

От расстояния до сети до времени прогулки

Давайте сделаем то же самое для второго города: Миннеаполис - Сент-Пол. (Люди там хорошие, и улицы с сеткой хорошо визуализируются.)

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

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

Расширения

Используемая здесь библиотека была разработана в рамках проекта UrbanSIM в Калифорнийском университете в Беркли, поддерживая ряд вариантов использования в области городского планирования и недвижимости. Вместо OSM можно использовать данные ГИС хорошего качества, созданные на месте (и это действительно предпочтительно).

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

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

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