finds.dev← search

// the find

gboeing/osmnx

★ 5,711 · Python · MIT · updated May 2026

Download, model, analyze, and visualize street networks and other geospatial features from OpenStreetMap.

OSMnx wraps the OpenStreetMap Overpass API and NetworkX to let you pull real street networks, building footprints, and points of interest with one or two lines of Python. It handles geocoding, projection, graph simplification, and basic routing so you don't have to stitch those pieces together yourself. Aimed at urban researchers, transport planners, and anyone doing geospatial analysis who doesn't want to hand-roll OSM queries.

1. The graph simplification is genuinely well-thought-out — it collapses OSM's fragmented way segments into clean edges while preserving topology, which is the hardest part of working with raw OSM data. 2. Projection handling is automatic and correct; it picks an appropriate UTM zone for distance calculations rather than naively using lat/lon, which is a common failure point in DIY solutions. 3. Actively maintained with a published peer-reviewed paper (Geographical Analysis, 2025), meaning the underlying methodology is documented and citable — useful if you're using this in academic work. 4. CI tests against both minimum and latest dependency versions, which is rare and catches the NumPy/NetworkX/GeoPandas compatibility churn that plagues this ecosystem.

1. You are entirely at the mercy of the Overpass API — rate limits, server load, and data freshness are all out of your control. Offline workflows require pre-downloaded PBF files and extra tooling that OSMnx doesn't provide. 2. Memory usage gets painful with large city-scale or regional networks; the in-memory NetworkX graph doesn't scale beyond a few hundred thousand nodes without careful truncation. 3. Routing is basic shortest-path only (via NetworkX) — no turn penalties, no traffic, no multi-modal. Anything production-grade needs OSRM or Valhalla instead. 4. The elevation module depends on a third-party raster API with its own rate limits, and the integration feels bolted on compared to the rest of the library.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →