Skip to content

NERDSITU/superblockify

Repository files navigation

superblockify logo

Dev PyPI Version Python Version linting: pylint Code style: black PyPI License

status Docs Lint Test codecov

Source code to superblockify an urban street network


superblockify is a Python package for partitioning an urban street network into Superblock-like neighborhoods and for visualizing and analyzing the partition results. A Superblock is a set of adjacent urban blocks where vehicular through traffic is prevented or pacified, giving priority to people walking and cycling.

superblockify concept

Installation

Set up environment

Use conda or mamba or micromamba to create the virtual environment sb_env:

conda create -n sb_env -c conda-forge python=3.12 osmnx=1.9.2

Alternatively, or if you run into issues, clone this repository and create the environment via the environment.yml file:

conda env create --file environment.yml

Install package

Next, activate the environment and install the package:

conda activate sb_env
pip install superblockify

Set up Jupyter kernel

If you want to use superblockify with its environment sb_env in Jupyter, run:

pip install --user ipykernel
python -m ipykernel install --user --name=sb_env

This allows you to run Jupyter with the kernel sb_env (Kernel > Change Kernel > sb_env)

Usage

We provide a minimum working example in two formats:

For a guided start after installation, see the usage section in the documentation. See the examples/ folder for more example scripts.

Documentation

Read the documentation to learn more about superblockify.

Testing

The tests are specified using the pytest signature, see tests/ folder, and can be run using a test runner of choice. A pipeline is set up, see .github/workflows/test.yml.

Credits & Funding

  • Carlson M. Büth (Implementation)
  • Anastassia Vybornova (Supervision)
  • Michael Szell (Concept)

Funded by the European Union, EU Horizon grant JUST STREETS