Routes for walking to school
This script generates maps to analyze the potential walking routes for students to their school.
- I excluded the addresses of the students from the repository.
- The actual route generation is done with
brouter
(using the safety profile) andOSRM
(for the boundary polygons), those are run locally in docker containers. - The basemap is pulled from Stadia Maps. The usage of the script is well within the free tier, you'll need an API key from them.
Data sources
- School location data is from: https://data-wi-dpi.opendata.arcgis.com/
- Madison Bike Level of Traffic Stress is from: https://data-cityofmadison.opendata.arcgis.com/datasets/cityofmadison::bike-lts/explore
- Student addresses provided by school.
Example figures
This script will generate a few figures:
A heatmap of student addresses:
A map of all the walking routes within the walk boundary:
A map of those walking routes colored by the level of traffic stress to bike
A map of cycling routes colored by the level of traffic stress to bike (with a 3 mile radius)
Using make
make osrm-data
: downloads the OpenStreetMap data for Wisconsin, and preproccesses it for use with OSRM.make osrm-container
: starts the OSRM containers (backends and frontends) for walking and biking.make brouter-data
: clones the repositories for brouter and brouter-web and downloads the segment data. It also builds the docker images for brouter and brouter-web.make brouter-container
: starts the brouter containers (backend and frontend).make walk
will run route_analysis.Rmd which calculates the walking routes using OSRM.make cycle-osrm
will run cycling_route_analysis.Rmd which calculates the biking routes using OSRM.make cycle-brouter
will run cycling_route_analysis_brouter.Rmd which calculates the biking routes using brouter.
What-if analysis
This allows you to make changes to the street network (add a bike path, reduce a lane on an arterial street) and see how it affects the routes that brouter chooses.
This is a multi-step process:
- Generate an OsmChange file for the changes that you want to analyze. Don't upload your hypothetical infrastructure to OpenStreetMap!
- Save that file as
docker/brouter/osm_edit/changes.osc
. make osm_edit_refresh_base
will download a fresh copy ofwisconsin-latest.osm.pbf
and the elevation tiles for Wisconsin. You don't need to run this frequently.make osm_edit_generate_pbf
will take those edits and apply them to thewisconsin-latest.osm.pbf
and generatewisconsin-latest_edited.osm.pbf
make osm_edit_generate_brouter
will generate new brouter segment files from the edited pbf file.make osm_edit_brouter_containers
starts the brouter backend and frontend using your newly created segment files with the edits you made. You can access the webui at http://127.0.0.1:8080
Misc.
OpenStreetMap Data
Languages
Makefile
60.2%
R
39.8%