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/
Recent updates introduce a Processing provider and headless tooling that make it easier to automate and test the full pipeline:
generateprotoblocksfromosm
— protoblocks from polygon inputgenerateprotoblocksfrombbox
— protoblocks from BBOX extentfullsidewalkreatorfrompolygon
— full pipeline from polygon (sidewalks, crossings, kerbs)osm_sidewalkreator_full_bbox
— full pipeline from BBOX extentdocker/
for bbox/polygon inputs (no local QGIS install required)scripts/run_qgis_tests.sh
and quick local tests via pytest -m 'not qgis'
release/release_zip.py
Tutorials:
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
:
docker/run_full_bbox.sh
, docker/run_full_polygon.sh
docker/run_protoblocks_bbox.sh
, docker/run_protoblocks_polygon.sh
Notes:
assets/test_outputs/
by default (overridable)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
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"
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