TGTGInsightаналитика telegramLIVE / telegram public index
К списку каналов
О городах и данных avatar

TGINSIGHT CHAT

О городах и данных

@datainthecity

Технологии

Канал про то, кто, как и зачем измеряет города: как исследования,построенные на городских данных, улучшают жизнь в городе и какие риски они несут Автор:@intra23 Сайт: http://geopython.su/

Подписчики3,260Текущее число подписчиков
Постов305Проиндексировано постов
Охват9,640Просмотры последних постов
Последние посты

Последние посты

Тег: #spatialmodels · 4 постов

当前筛选 #spatialmodels清除筛选

Опубликован 18 янв.

#spatialmodels Python библиотеки для размещения объектов Недавно в своем разговоре с научным руководителем из Глазго я упомянула, что по работе часто решаю задачи связанные с зонированием и размещением объектов, при этом метрики для оптимизации могут отличаться в зависимости от кейса. Он посоветовал мне познакомиться с одним модулем библиотеки pysal на python, в создании которого он сам принимал участие и с помощью которого, можно автоматизировать часть из моих задач. Называется модуль spopt. Вот ссылка на документацию, где также есть питоновские ноутбуки с примерами, а вот на ссылка на статью, где описана общая логика алгоритмов. На этих выходных, я, наконец - спасибо простуде - нашла достаточно времени, чтобы потестисть один из методов, и результат вполне устроил. Метод : Max-p regionalisation. Его задача - сгруппировать пространственные единицы в как можно большее число кластеров так, чтобы эти кластеры были как можно более однородными по характеристикам, чтобы каждый элемент внутри соприкосался хотя бы с одним другим элементом и чтобы суммарное значение какого-то показателя, например, численности населения, было не меньше установленного порога. Подробный алгоритм описан здесь, а пример можно найти здесь Метод подходит, когда у вас не очень большое число полигонов( 200 алгоритм еще считал при условии 4 ед в кластере ,а вот на 300 падал с ошибкой) и при этом они хорошо связаны друг с другом - нет анклавов. Например, для задачи разделения города или района на участки в рамках 1 поликлинники. В отличие от применения k-means кластеры получатся не такими близкими по площади, но зато они будут максимально близки по числу квартир, обслуживаемых одним врачом. Единственное ограничение, которое мне удалось обнаружить - это ошибка в расчетах, если в данных есть анклав, где сумма всех его элементов меньше заданного порога. Чтобы избавиться от ошибки, мне пришлось исключать эту область из расчета и потом вручную добавлять ее как отдельный кластер.

2,120 views

Опубликован 23 сент.

#spatialmodels Твиттер подбросил на днях статью о квантификации городской морфологии с помощью открытых библиотек питона. Три плюса данной статьи: 1. весь текст есть в открытом доступе и на гитхабе выложены все рабочие ноутбуки авторов 2. внутри есть перечень и обзор основных библиотеки питона для геопространственного анализа с ссылками на статьи, где можно найти примеры их применения 3. она содержит список метрик для оценки городской морфологии Автор пишет о том, что в основном все существующие школы, методологии изучения городской среды и инструменты сосредоточены на анализе сетки улиц по графу в отрыве от особенностей застройки. В качестве примера использования этих метрик он сравнивает между собой группы городов, относящиеся к разным историческим периодам. Мои собственные наблюдения: 1. Взяла на заметку способ схематизации морфологии с помощью диаграммы Вороного ( Voronoi Tessellation) 2. Статья наводит на вопрос о добавленной ценности приведенных в статье "морфометрик" . Кажется что особенности застройки тесно связаны с такими признаками уличной сети, как плотность улиц, связность и проходимость, поэтому честным было бы добавить более популярные метрики и посмотреть на их фоне, какую новую информацию о городе несут "морфометрики"

3,290 views

Опубликован 28 июл.

#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%. Кажется, вполне рабочий алгоритм для оценки потоков в рабочие будни. Еще немножко про модель гравитации можно почитать здесь и здесь.

2,970 views

Опубликован 7 февр.

#spatialmodels На днях увидела интересную работу(https://ieeexplore.ieee.org/document/8406847), где довольно простым способом авторы автоматически выделяли функциональные зоны в городе. Имея под рукой данные по инфраструктуре Москвы с data,mos.ru захотела повторить подобный эксперимент. Алгоритм следующий: 1. Выгружаются списки POIs для каждой локации, все слова нормализуются и удаляются "стоп-слова". На первый раз взяла только данные магазинов . 2. Вычисляется матрица tf-idf (https://ru.wikipedia.org/wiki/TF-IDF). Пример на python здесь 3. С помощью алгоритма кластеризации ( для пробы взяла k-means) локации делятся на кластеры 4. Для каждого кластера составляются облака слов, показывающие самые частые словосочетания 5. Кластеры отображают на карте разными цветами .Заранее скажу, что это пробная попытка, цель которой - увидеть насколько хорошо можно выделять зоны в Москве ( в пределах МКАД), не погружаясь в детальный анализ и обработку "грязных" данных. Хотя, безусловно, это может быть первым шагом в задачах не соответствия инфраструктуры потребностям жителей, например, в обнаружении, так называемых, "food deserts" - мест без продуктовых магазинов в шаговой доступности. Также для бизнеса - это быстрый способ оценить уровень конкуренции в определенном районе. Результаты анализа: - Карта с кластерами сформированными на основе наименований магазинов. Единица оценки - гексагон системы H3 радиусом 174 метра. - Облака слов, позволяющие понять специфику каждого кластера из магазинов- показывают 100 самых частых слов в списке POIs. Выводы: 1. Территория делится на 4 кластера - это оптимальное число, определенное "методом локтя" 2. Порядка 8% территории ( кластер №1) не покрыты никакими магазинами. Большая часть это парковые зоны, однако есть и жилые районы. 3. Центр города и, похоже, торговые центры- ( кластер №0) зона высокого разнообразия магазинов. Нет одного ярко выделенного сегмента 4. 50% территории приходится на жилые районы. Из них на 32% ( кластер №2) преобладают продуктовые магазины, и на остальных 20% ( кластер №3) магазины одежды. Причем кластер 2 распределен равномерно, то участки, относящиеся к кластеру №3 представляют собой островки. Потенциальное улучшение : добавление данных о других POIs, использование других типов кластеризации, например, иерархической, разделение центральных зон и жилых за счет добавления координат и флага центральности района в модель кластеризации. Я пока не стала добавлять новые данные по инфраструктуре, но мне стало интересно наложить получившиеся кластеры на кластеры, построенные на интересах людей в городе, рассчитанных компанией Locomizer. Что получилось - следующий пост + с меня ссылка на Github с кодом проекта

1,260 views