osmnx
Download, model, analyze, and visualize street networks and other geospatial features from OpenStreetMap
What it is and what it does
OSMnx is a Python geospatial library that bridges OpenStreetMap data and network analysis. It lets you download street networks, building footprints, transit stops, amenities, and other geographic features with simple function calls, then model them as graphs using networkx for analysis and visualization. The package handles the complexity of querying OSM's API, parsing the results, and converting them into spatial data structures (via geopandas and shapely) that you can analyze for routing, connectivity, urban planning, or research.
You work with it by specifying a place name or geographic boundary, choosing a network type (walking, driving, biking), and calling a single function to get back a graph or GeoDataFrame. It's designed for urban researchers, planners, and developers who need to programmatically access and analyze real-world street and amenity data without manual downloads or GIS software.
Use it for:
- Download and analyze street connectivity and network topology for urban planning or transportation research.
- Extract building footprints and amenities (restaurants, shops, transit stops) from OSM for location-based analysis.
- Model walking or cycling networks to study accessibility, route efficiency, or urban design patterns.
- Visualize street orientations and network structure to understand urban morphology.
- Compute routing and travel-time analysis on real street networks for mobility studies.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
OSMnx downloads, models, and analyzes street networks and geospatial features from OpenStreetMap, letting you work with walking, driving, or biking networks, amenities, building footprints, and routing data.
Yes. OSMnx is actively maintained, has no known vulnerabilities, low install friction, and a permissive MIT license. It solves a real problem—programmatic access to OSM street and geospatial data—with a mature API backed by strong community adoption. Install it if you need to work with street networks, urban amenities, or geospatial features from OpenStreetMap.
Install
osmnx on PyPI
pip
pip install osmnxuv
uv add osmnxpoetry
poetry add osmnxInstalling osmnx
Before you install
Low install friction with a pure-Python wheel and six well-established runtime dependencies (geopandas, networkx, numpy, pandas, requests, shapely). Actively maintained with a recent release 24 days ago and strong community engagement (5811 GitHub stars).
License in practice
MIT license is permissive and imposes no restrictions on your use. OpenStreetMap's open data license requires that derivative works provide proper attribution to the source.
Quickstart
pip install osmnx
import osmnx as ox
# Download and model a street network
G = ox.graph_from_place('Manhattan, New York, USA', network_type='drive')
Requires Python 3.11 or later. Depends on geopandas and its system-level spatial library requirements (GEOS, PROJ).
Verify before relying
- Whether the package handles large-scale network downloads efficiently or has memory/performance limits for very large areas.
- Specifics on which OpenStreetMap data types and tags are supported beyond street networks and amenities.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — geopandas, networkx, numpy, pandas, requests, shapely |
| Maintenance | actively maintained — 24 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 731,517/month — #5,205 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: osmnx-2.1.1-py3-none-any.whl
Keywords: GIS, Networks, OpenStreetMap, Routing
Tags
More Information Analysis packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyarrowpyarrow provides Python bindings to Apache…
permissive · top 100 on PyPI
networkxNetworkX provides data structures and…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
snowflake-snowpark-pythonSnowpark Python provides APIs to query and…
permissive · top 1,000 on PyPI
cityseerComputes network centrality, land-use…
agpl · top 15,000 on PyPI
momepyMomepy quantifies urban form through…
permissive · top 15,000 on PyPI
osmiumosmium provides Python bindings for the…
permissive · top 15,000 on PyPI
overpyA Python wrapper for querying the Overpass API…
permissive · top 15,000 on PyPI
osm2geojsonConverts OpenStreetMap and Overpass API data…
permissive · top 15,000 on PyPI
spatial-accessComputes travel times and spatial access…
permissive · top 15,000 on PyPI
pysalPySAL is a meta-package that bundles 29 spatial…
permissive · top 15,000 on PyPI
arcgisAccess Esri's ArcGIS services and geospatial…
unclear · top 15,000 on PyPI
staticmapGenerates static map images with geographic…
unclear · top 15,000 on PyPI
overturemapsDownload and convert Overture Maps geospatial…
permissive · top 15,000 on PyPI