OSMnx documentation¶
Reference
- osmnx package
- osmnx.bearing module
- osmnx.distance module
- osmnx.downloader module
- osmnx.elevation module
- osmnx.folium module
- osmnx.footprints module
- osmnx.geocoder module
- osmnx.geometries module
- osmnx.graph module
- osmnx.io module
- osmnx.plot module
- osmnx.pois module
- osmnx.projection module
- osmnx.settings module
- osmnx.simplification module
- osmnx.speed module
- osmnx.stats module
- osmnx.truncate module
- osmnx.utils module
- osmnx.utils_geo module
- osmnx.utils_graph module
OSMnx: retrieve, model, analyze, and visualize OpenStreetMap street networks and other spatial data.
OSMnx is a Python package that lets you download spatial geometries and model, project, visualize, and analyze real-world street networks from OpenStreetMap’s APIs. Users can download and model walkable, drivable, or bikeable urban networks with a single line of Python code, and then easily analyze and visualize them. You can just as easily download and work with amenities/points of interest, building footprints, elevation data, street bearings/orientations, speed/travel time, and network routing.
The OSMnx project is hosted on GitHub.
Citation info¶
If you use OSMnx in your work, please cite the journal article:
Boeing, G. 2017. “OSMnx: New Methods for Acquiring, Constructing, Analyzing, and Visualizing Complex Street Networks.” Computers, Environment and Urban Systems 65, 126-139. doi:10.1016/j.compenvurbsys.2017.05.004
Features¶
OSMnx is built on top of geopandas, networkx, and matplotlib and interacts with OpenStreetMap’s APIs to:
Download and model street networks or other networked infrastructure anywhere in the world with a single line of code
Download any other spatial geometries, place boundaries, building footprints, or points of interest as a GeoDataFrame
Download by city name, polygon, bounding box, or point/address + network distance
Download drivable, walkable, bikeable, or all street networks
Download node elevations and calculate edge grades (inclines)
Impute missing speeds and calculate graph edge travel times
Simplify and correct the network’s topology to clean-up nodes and consolidate intersections
Fast map-matching of points, routes, or trajectories to nearest graph edges or nodes
Save networks to disk as shapefiles, geopackages, and GraphML
Save/load street network to/from a local .osm xml file
Conduct topological and spatial analyses to automatically calculate dozens of indicators
Calculate and visualize street bearings and orientations
Calculate and visualize shortest-path routes that minimize distance, travel time, elevation, etc
Visualize street networks as a static map or interactive leaflet web map
Visualize travel distance and travel time with isoline and isochrone maps
Plot figure-ground diagrams of street networks and building footprints
Usage examples and demonstrations of these features are in the examples GitHub repo. More feature development details are in the change log.
Installation¶
You can install OSMnx with conda:
conda config --prepend channels conda-forge
conda create -n ox --strict-channel-priority osmnx
Alternatively, you can run OSMnx + Jupyter directly from the official docker container, or you can install OSMnx via pip if you already have all of its dependencies installed and tested on your system. Note: pip installation is nontrivial. If you don’t know exactly what you’re doing, just use conda as described above.
To upgrade OSMnx to a newer release, just remove the conda environment you created and then create a new one again following the steps above. Don’t just run conda update
or you could get package conflicts.
Support¶
If you’ve discovered a bug in OSMnx, please open an issue at the OSMnx GitHub repo documenting what is broken in the package. Alternatively, if you have a usage question, please ask it on StackOverflow.
License¶
The project is licensed under the MIT license.