Metadata-Version: 2.1
Name: superblockify
Version: 1.0.0rc11
Summary: Automated Generation, Visualization, and Analysis of potential Superblocks in Cities
Author: Carlson Büth, Anastassia Vybornova, Michael Szell
Maintainer-email: Carlson Büth <carlson@cbueth.de>
License: APGL-3.0-or-later
Project-URL: Documentation, https://superblockify.city/
Project-URL: Repository, https://github.com/NERDSITU/superblockify
Project-URL: Changelog, https://superblockify.city/changelog/
Keywords: Low Traffic Neighborhoods,GIS,Networks,OpenStreetMap,Urban Planning,Urban Mobility,Urban Data
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Natural Language :: English
Classifier: Topic :: Scientific/Engineering :: GIS
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: osmnx>=1.6.0
Requires-Dist: geopandas
Requires-Dist: rasterio
Requires-Dist: shapely
Requires-Dist: numba
Requires-Dist: scipy
Requires-Dist: tqdm
Requires-Dist: contextily
Requires-Dist: ruamel.yaml
Requires-Dist: seaborn
Requires-Dist: psutil
Requires-Dist: typing-extensions
Provides-Extra: lint
Requires-Dist: blackd; extra == "lint"
Requires-Dist: isort; extra == "lint"
Requires-Dist: pylint; extra == "lint"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: coverage; extra == "test"
Provides-Extra: doc
Requires-Dist: sphinx; extra == "doc"
Requires-Dist: numpydoc; extra == "doc"
Requires-Dist: myst-nb; extra == "doc"
Requires-Dist: sphinx-book-theme; extra == "doc"
Requires-Dist: rasterstats; extra == "doc"
Requires-Dist: momepy; extra == "doc"
Provides-Extra: all
Requires-Dist: superblockify[doc,lint,test]; extra == "all"

![superblockify logo](assets/superblockify_logo.png)

[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://superblockify.city/)
[![PyPI Version](https://badge.fury.io/py/superblockify.svg)](https://pypi.org/project/superblockify/)
[![Python Version](https://img.shields.io/pypi/pyversions/superblockify)](https://pypi.org/project/superblockify/)
[![linting: pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/PyCQA/pylint)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![PyPI License](https://img.shields.io/pypi/l/superblockify)](https://pypi.org/project/superblockify/)

[![status](https://joss.theoj.org/papers/87426e988ebd0a6d7f592eb16d1fd209/status.svg)](https://joss.theoj.org/papers/87426e988ebd0a6d7f592eb16d1fd209)
[![Docs](https://github.com/NERDSITU/superblockify/actions/workflows/docs.yml/badge.svg)](https://github.com/NERDSITU/superblockify/actions/workflows/docs.yml)
[![Lint](https://github.com/NERDSITU/superblockify/actions/workflows/lint.yml/badge.svg)](https://github.com/NERDSITU/superblockify/actions/workflows/lint.yml)
[![Test](https://github.com/NERDSITU/superblockify/actions/workflows/test.yml/badge.svg)](https://github.com/NERDSITU/superblockify/actions/workflows/test.yml)
[![codecov](https://codecov.io/gh/NERDSITU/superblockify/branch/main/graph/badge.svg?token=AS72IFT2Q4)](https://codecov.io/gh/NERDSITU/superblockify)

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](assets/superblockify_concept.png "superblockify partitions an urban street network into Superblock-like neighborhoods")

## Installation

### Set up environment

Use [`conda`](https://docs.conda.io/projects/conda/en/latest/index.html)
or [`mamba`](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html)
or [`micromamba`](https://mamba.readthedocs.io/en/latest/installation/micromamba-installation.html)
to create the virtual environment `sb_env`:

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

> **Note:** While `pip` can install OSMnx, it's not officially supported due to potential issues with C dependencies. If unsure, use `conda` as instructed above to avoid problems. 

*Alternatively*, or if you run into
issues, [clone this repository](https://github.com/NERDSITU/superblockify/archive/refs/heads/main.zip)
and create the environment via
the [`environment.yml`](https://github.com/NERDSITU/superblockify/blob/main/environment.yml)
file:

```bash
conda env create --file environment.yml
```

### Install package

Next, activate the environment and install the package:

```bash
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:

```bash
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:

* [Jupyter notebook (`00-mwe.ipynb`)](https://github.com/NERDSITU/superblockify/blob/main/examples/00-mwe.ipynb)
* [Python script (`00-mwe.py`)](https://github.com/NERDSITU/superblockify/blob/main/examples/00-mwe.py)

For a guided start after installation, see
the [usage section](https://superblockify.city/usage/) in the documentation. See
the [`examples/`](https://github.com/NERDSITU/superblockify/blob/main/examples/) folder
for more example scripts.

## Documentation

Read the [documentation](https://superblockify.city) to learn more
about `superblockify`.

## Testing

The tests are specified using the `pytest` signature,
see [`tests/`](https://github.com/NERDSITU/superblockify/blob/main/tests/) folder, and
can be run using a test runner of choice.
A pipeline is set up,
see [`.github/workflows/test.yml`](https://github.com/NERDSITU/superblockify/blob/main/.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](https://cordis.europa.eu/project/id/101104240)
