BikewaySim is a collection of open-source scripts for helping cities, DOTs, MPOs, and/or advocacy groups assess the connectivity impacts of new cycling facilities (bike lanes and cycletracks) through change in cycling impedance.
Cycling impedance measures the relative difficulty of cycling from point A to point B considering travel time, elevation/hills, exposure to automobile traffic, the presence of bicycle facilities, and other preferences that cyclists have for road features.
BikewaySim's cycling impedance model is trained on existing recorded cycling trips. The cycling impedance model can then be used to simulate cycling impedance (including the optimal route such as in Figure 1) between any two places (home to grocery, school to park, etc.). On its own, this model can be used by cities to help suggest better cycling routes to encourage cycling,
Figure 1: Example of BikewaySim impedance routing (purple) and travel time only routing (black)When paired with BikewaySim's bicycle facility assessment framework (Figure 2), the cycling impedance model can be used to evaluate proposed cycling facilities using a variety of metrics and visuals using the change in simulated impedance caused by the bicycle facilities. Cities, DOTs, MPOs, and/or advocacy groups can use the outputs of the framework to prioritize new cycling facilities accordingly.
Figure 2: BikewaySim bicycle facility assessment frameworkBikewaySim Framework Visual | Example |
---|---|
Trip Impedance Reduction | ![]() |
Percent Detour | ![]() |
Change in Link Betweenness Centrality | ![]() |
Improvement Impedance Reduction | ![]() |
Bikesheds | ![]() |
- Downloading and processing OpenStreetMap network data for bicycle routing using Geofabrik and OSMnx
- Calibrating link and turn impedance functions for cycling using bicycling GPS traces or count data using stochopy
- Finding the least impedance route for selected or all-to-all O-D pairs given calibrated or custom link and turn impedance functions using NetworkX
- Using results to generate several metrics for assessing the impacts of planned cycling facilities
- Clone the repository (and the transit-routing submodule) into your desired directory
git clone --recurse-submodules -j8 https://github.com/reidx19/BikewayDev
- Install conda to set up a Python virtual environment by following the instructions
- Using conda's CLI, install the invluded environment named
environment.yml
and name itbikewaysim
conda create env -n bikewaysim environment.yml
- Activate the 'bikewaysim' environment
conda activate bikewaysim
- Navigate to the
BikewaySim/src
folder on conda CLI and install the development packagebikewaysim
pip install -e .
- Great! Everything should be installed!
- Most of the code is excuted through Jupyter Notebooks which can be opened/run/edited through VS Code or Jupyter Notebook, just make sure your conda environment is activated.
- Modify the config.json file to define the project directory and various settings (e.g., desired projected coordinate system, supplemental data directories, etc.).
- Create a new study area in GIS or bounding box or provide an existing one. Save in
.geojson
,.gpkg
, or.shp
format. - Download OpenStreetMap network data using Step_0_Process_OSM.ipynb.
- Continue running through each .ipynb file in the network module in order
- Use the bicycle facilities module to add in bicycle facilities from other data sources and OpenStreetMap
- Run the notebooks in the bikewaysim_framework module to route cycling trips using default or custom impedance factors
- Clone the transit-routing submodule
- Open Simulating Bike-Transit Trips.ipynb and walk through the steps until a study area is generated
- Open Downloading_OSM.ipynb and use the generated study area to download OpenStreetMap network data
- Continue with Simulating Bike-Transit Trips.ipynb
- Open and follow the instructions to download OpenStreetMap network data
- Open Step_1 Network_Filtering_and_Processing.ipynb to process OSM into network graph format and identify link types
- Open Step_2_Network_Reconciliation.ipynb to finalize the network for routing
- Open Run_BikewaySim.ipynb to perform aggregated shortest path routing and output Geopackage files to visualize in GIS software
Module | Description | Status |
---|---|---|
bicycle_facilities | Add supplemental bicycle facility data | working |
bike-transit | Run aggregated bike-transit shortest path calculations | working |
bikewaysim_framework | Run aggregated cycling shortest path calculations and create | working |
map_matching | Map-match GPS trace data | working |
impedance_calibration | Use map-matched GPS traces to calibrate link impedance functions | in development |
network | Download OSM data and process for shortest path routing | working |
- Passmore, R., K., Watkins, and R. Guensler (2024). Using Shortest Path Routing to Assess Cycling Networks. Journal of Transportation Geography. DOI: 10.1016/j.jtrangeo.2024.103864
- Passmore, R., K. Watkins, and R. Guensler (2024). Assessing Bike-Transit Accessibility. Transportation Research Record. DOI: 10.1177/03611981241234902
- Passmore, R., K. Watkins, and R. Guensler (2024). Siumulating Bike-Transit Trips Through BikewaySim and TransitSim. National Center for Sustainable Transportation. DOI: 10.7922/G22R3Q0B
- Passmore, R., K. Watkins, and R. Guensler (2021). BikewaySim Technology Transfer: City of Atlanta Georgia. National Center for Sustainable Transportation. DOI: 10.7922/G2CF9NDV
BikewaySim was developed as part of Reid Passmore's Ph.D. dissertation. BikewaySim was developed with funding from the National Center for Sustainable Transportation and Georgia Department of Transportation.
Reid Passmore, Ph.D. Candidate1
Fizzy Fan, Ph.D. Candidate1
Dr. Ziyi Dai,
Dr. Randall Guensler, Professor1
Dr. Kari Watkins, Associate Professor2
1School of Civil and Environmental Engineering, Georgia Institute of Technology
2School of Civil and Environmental Engineering, University of California, Davis