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 the source and output directories:

python release/release_zip.py --plugin-dir /path/to/plugin \
  --output-dir /tmp/build

The release builder uses a fixed runtime manifest. Development files such as tests, Docker helpers, shell scripts, source translations, and repository documentation are never copied into the plugin archive. Compiled .qm translations are included when available.

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