osm_sidewalkreator

Smoke Tests

OSM Sidewalkreator

A QGIS plugin to automatically generate sidewalk networks from OpenStreetMap streets. Available in the official QGIS Plugin Repository: https://plugins.qgis.org/plugins/osm_sidewalkreator/

OSM Sidewalkreator

Overview

What’s New

Recent updates introduce a Processing provider and headless tooling that make it easier to automate and test the full pipeline:

Features

Quick Start (QGIS)

  1. Install the plugin: search for “OSM SidewalKreator” in QGIS Plugin Manager
  2. Prepare AOI: add a polygon layer for your area of interest
  3. Run: open Processing > SidewalKreator, pick a polygon or BBOX, choose outputs
  4. Export: view layers and export to your preferred format

Tutorials:

Processing / Headless Usage

Provider id: sidewalkreator_algorithms_provider. A helper executes Processing inside Docker so you don’t need a local QGIS:

# From source tree
./scripts/run_qgis_processing.sh generateprotoblocksfromosm INPUT=/path/to/polygon.gpkg OUTPUT=/tmp/protoblocks.gpkg

# From a packaged release
./scripts/run_qgis_processing.sh --use-release generateprotoblocksfromosm INPUT=/path/to/polygon.gpkg OUTPUT=/tmp/protoblocks.gpkg

Examples with full pipeline:

# Full network from polygon (sidewalks, crossings, kerbs)
./scripts/run_qgis_processing.sh fullsidewalkreatorfrompolygon \
  INPUT_POLYGON=/path/to/aoi.gpkg \
  OUTPUT_SIDEWALKS=/tmp/sidewalks.geojson \
  OUTPUT_CROSSINGS=/tmp/crossings.geojson \
  OUTPUT_KERBS=/tmp/kerbs.geojson

# Full network from BBOX extent (EPSG:4326)
./scripts/run_qgis_processing.sh osm_sidewalkreator_full_bbox \
  INPUT_EXTENT="-49.3,-25.5,-49.29,-25.45" \
  OUTPUT_SIDEWALKS=/tmp/sidewalks.geojson

Headless runners (simpler Docker scripts) are also available — see docker/README.md:

Notes:

Testing

Quick local tests (no QGIS):

pip install -r docker/requirements.txt
pytest -m "not qgis"

Full test suite in Docker/QGIS:

./scripts/run_qgis_tests.sh

Optionally build a helper image:

docker build -f docker/Dockerfile -t my-org/qgis-test:latest .

Test data lives under assets/test_data/. To refresh the small OSM extract used by tests:

curl -L "https://overpass-api.de/api/map?bbox=-49.248337,-25.491146,-49.239228,-25.486957" -o test/data/curitiba_sample.osm

Releases

Create a plugin zip (written under ~/sidewalkreator_release by default):

python release/release_zip.py

Customize inputs/outputs/excludes:

python release/release_zip.py --plugin-dir /path/to/plugin \
  --output-dir /tmp/build --exclude tests docs "*.pyc"

References

Publication

European Journal of Geography (12/12/2023): https://eurogeojournal.eu/index.php/egj/article/view/553

de Moraes Vestena, Kauê, Silvana Philippi Camboim, and Daniel Rodrigues dos Santos. 2023. “OSM Sidewalkreator: A QGIS Plugin for an Automated Drawing of Sidewalk Networks for OpenStreetMap”. European Journal of Geography 14 (4):66–84. https://doi.org/10.48088/ejg.k.ves.14.4.066.084

Experiments repository: https://github.com/kauevestena/sidewalk_analysis