BlocksNet это библиотека с открытым исходным кодом, включающая методы моделирования урбанизированных территорий для задач генерации ценностно-ориентированных требований к мастер-планированию. Библиотека предназначена для формирования универсальной информационной модели города, основанной на доступности городских кварталов. В библиотеке также представлены инструменты для работы с информационной моделью города, которые позволяют: генерировать слой городских кварталов, рассчитывать обеспеченность на основе нормативных требований, а также получить оптимальные требования к мастер-планированию территорий.
BlocksNet — это библиотека для моделирования сценариев развития города, например при создании мастер-плана, поддерживающая следующие инструменты:
- Метод генерации слоя городских кварталов предполагает разделение территории города на наименьшие элементы для анализа - кварталы. Метод генерации слоя городских кварталов учитывает дополнительные данные о землепользовании.
- Метод генерации интермодального графа города на основе открытых данных. Интермодальный граф содержит информацию об общественном транспорте и пешеходных маршрутах для более детального анализа городской мобильности.
- Универсальная информационная модель города используется для дополнительного анализа городских территорий и получения информации о доступности городских кварталов. В модели города содержится агрегированная информация о сервисах, зданиях, интермодальной доступности, типах сервисов и городских кварталах.
- Метод оценки связности кварталов на основе интермодальной доступности.
- Методы оценки городской обеспеченности различными типами сервисов с учетом нормативных требований и ценностных установок населения. Оценка обеспеченности производится при помощи итеративного алгоритма на графах, а также при помощи решения задачи линейной оптимизации.
- Метод вычисления функции оценки оптимальности проектов мастер-планирования, основанный на ценностных установках населения и систем внешних ограничений. Метод основан на решении задачи оптимизации: необходимо найти оптимальную застройку, чтобы повысить обеспеченность. Задача решается при помощи генетического алгоритма, добавлена поддержка пользовательских сценариев.
- Метод выявления свободной площади на основе открытых данных.
Основные отличия от существующих решений:
- Метод генерации слоя городских кварталов учитывает тип землепользования, что позволяет определить ограничения для развития территории в контексте мастер-планирования.
- Универсальная информационная модель города может быть построена на открытых данных; наименьшая пространственная единица для анализа - квартал, что делает возможным аналитику в масштабах города.
- При оценке обеспеченности учитываются не только нормативные документы, но и ценностные установки населения.
- Генетический алгоритм для оптимизации застройки поддерживает пользовательские сценарии.
- Поддержка различных нормативных требований.
BlocksNet может быть установлен с помощью pip
:
pip install git+https://github.com/iduprojects/blocksnet
Импортируйте необходимые классы из библиотеки blocksnet
:
from blocksnet import City
Затем используйте необходимые классы и модули:
city = City( blocks_gdf=blocks, adjacency_matrix=adj_mx ) city.plot()
Более подробные примеры использования приведены в примерах.
Прежде чем использовать библиотеку, вы можете скачать исходные данные
и расположить их в директории examples/data
. Вы можете использовать собственные данные,
но они должны соответствовать спецификации согласно
API documentation.
Следующие примеры помогут ознакомиться с библиотекой:
- Главный пайплайн библиотеки. Включает полную инициализацию модели города
City
и генетическую оптимизациюGenetic
. - Генерация слоя городских кварталов с помощью класса
BlocksGenerator
на основе данных о геометриях объектов города. - Генерация интермодального графа - с помощью класса
GraphGenerator
. Включает построение матрицы смежности с помощью классаAdjacencyCalculator
для данного слоя кварталов. - Инициализация модели города и использование методов модели.
Данный пример демонстрирует, как работать с моделью города
City
, получать доступ к информации о типах сервисовServiceType
или кварталовBlock
. Особенно полезно, если вы хотите принимать участие в разработке. - Оценка обеспеченности - как оценить обеспеченность города выбранным типом сервиса
ServiceType
, - Метод оптимизации застройки основанный на генетическом алгоритме.
Целью метода является поиск отимальных требований к мастер-планированию территории квартала
Block
или всегоCity
для выбранного сценария развития. - Определение свободных площадей выбранного городского квартала
Block
.
Подробная информация и описание библиотеки BlocksNet представлены в документации.
Последняя версия библиотеки предсталена в ветке main
.
Репозиторий включает следующие директории и модули:
- blocksnet
- директория с кодом библиотеки:
- preprocessing - модуль предобработки данных
- models - основные классы сущностей, используемые в библиотеке
- method - методы библиотеки для работы с моделью
City
- utils - модуль вспомогательных функций и констант
- tests
pytest
тесты - examples примеры работы методов
- docs - ReadTheDocs документация
Для начала разработки библиотеки необходимо выполнить следующие действия:
Клонировать репозиторий:
$ git clone https://github.com/aimclub/blocksnet
(По желанию) Создать виртуальное окружение, так как библиотека требует точных версий пакетов:
$ python -m venv venv
Активировать виртуальное окружение, если оно было создано.
Установить библиотеку в режиме редактирования с dev-зависимостями:
$ make install-dev
Установить pre-commit хуки:
$ pre-commit install
Создать новую ветку на основе
develop
:$ git checkout -b develop <new_branch_name>
Начать внесение изменений в своей новосозданной ветке, помня о том, чтобы не работать в ветке
master
! Работайте с этой копией на вашем компьютере, используя Git для управления версиями.Обновить тесты в соответствии с вашими изменениями и запустить следующую команду:
$ make test
Убедитесь, что все тесты проходят успешно.
Обновить документацию и файл README в соответствии с вашими изменениями.
- Когда вы закончите редактирование и локальное тестирование, выполните:
$ git add modified_files $ git commit
чтобы записать ваши изменения в Git, затем отправьте их на GitHub с помощью:
$ git push -u origin my-contribution
И, наконец, перейдите на веб-страницу вашего форка репозитория BlocksNet и нажмите 'Pull Request' (PR), чтобы отправить свои изменения на ревью разработчикам.
Ознакомьтесь с разделом Contributing на ReadTheDocs для получения дополнительной информации.
Проект имеет лицензию BSD-3-Clause
Библиотека была разработана как основная часть проекта Университета ИТМО № 622280 "Библиотека алгоритмов машинного обучения для задач генерации ценностно-ориентированных требований к мастер-планированию урбанизированных территорий".
Вы можете связаться с нами:
- НЦКР - Национальный Центр Когнитивных Разработок
- ИДУ - Институт Дизайна и Урбанистики
- Tatiana Churiakova - руководитель проекта
- Василий Стариков - ведущий разработчик
Опубликованные работы:
- Churiakova T., Starikov V., Sudakova V., Morozov A. and Mityagin S. Digital Master Plan as a tool for generating territory development requirements // International Conference on Advanced Research in Technologies, Information, Innovation and Sustainability 2023 – ARTIIS 2023
- Morozov A. S. et al. Assessing the transport connectivity of urban territories, based on intermodal transport accessibility // Frontiers in Built Environment. – 2023. – Т. 9. – С. 1148708.
- Morozov A. et al. Assessment of Spatial Inequality Through the Accessibility of Urban Services // International Conference on Computational Science and Its Applications. – Cham : Springer Nature Switzerland, 2023. – С. 270-286.
- Natykin M.V., Morozov A., Starikov V. and Mityagin S.A. A method for automatically identifying vacant area in the current urban environment based on open source data // 12th International Young Scientists Conference in Computational Science – YSC 2023.
- Natykin M.V., Budenny S., Zakharenko N. and Mityagin S.A. Comparison of solution methods the maximal covering location problem of public spaces for teenagers in the urban environment // International Conference on Advanced Research in Technologies, Information, Innovation and Sustainability 2023 – ARTIIS 2023.
- Kontsevik G., Churiakova T., Markovskiy V., Antonov A. and Mityagin S. Urban blocks modelling method // 12th International Young Scientists Conference in Computational Science – YSC 2023.