#osmnx
If you have to use Python rather than #rstats for graph theory in road networks....
fosstodon.org/@michaeldorm...
Michael Dorman (@michaeldorman84@fosstodon.org)
Attached: 2 images I wrote a book on spatial networks, using Python, networkx, and osmnx Online version can be found here: https://bgu-geography.com/net/ Comments and ideas are welcome!
fosstodon.org
September 19, 2026 at 7:41 PM
I wrote a book on spatial networks, using Python, networkx, and osmnx
Online version can be found here:
bgu-geography.com/net/
Comments and ideas are welcome!
September 19, 2026 at 1:10 PM
Should be said that the below wouldn't be possible without the work of @geoffboeing.com on OSMnx, particularly a new feature (PBF loading) that makes it extra scalable

Git repo with code coming soon!
September 17, 2026 at 6:13 PM
It combines osmnx, matplotlib, shapely, and vsketch to handle feature fetching and geometric rendering. Instead of manually styling raw GIS layers, prettymaps renders customized vector maps directly from OpenStreetMap data.

https://github.com/marceloprates/prettymaps
August 31, 2026 at 12:51 AM
OSM is the basis for several transportation network datasets (think SharedStreets, etc). This #SOTMUS2026 talk explores how road network owners and transportation specialists can benefit from well-structured networks, making OSM the true worldwide datum for transportation.

🔗 youtu.be/SJI0RBd5gbw
The Usefulness of Road Networks in OSM ~ Mike Migurski
What good can you do with an OpenStreetMap road network? OSM has been the basis of several transportation network datasets like SharedStreets, OSMnx, and most recently Overture. Road network owners…
youtu.be
August 20, 2026 at 9:55 PM
OSM is the basis for several transportation network datasets (think SharedStreets, etc). This #SOTMUS2026 talk explores how road network owners and transportation specialists can benefit from well-structured networks, making OSM the true worldwide datum for transportation.

🔗 youtu.be/SJI0RBd5gbw
The Usefulness of Road Networks in OSM ~ Mike Migurski
What good can you do with an OpenStreetMap road network? OSM has been the basis of several transportation network datasets like SharedStreets, OSMnx, and most recently Overture. Road network owners…
youtu.be
August 20, 2026 at 3:07 PM
📦 marceloprates / prettymaps
⭐ 12,825 (+58)
🗒 Python

Draw pretty maps from OpenStreetMap data! Built with osmnx +matplotlib + shapely
GitHub - marceloprates/prettymaps: Draw pretty maps from OpenStreetMap data! Built with osmnx +matplotlib + shapely
Draw pretty maps from OpenStreetMap data! Built with osmnx +matplotlib + shapely - marceloprates/prettymaps
github.com
August 19, 2026 at 2:17 PM
TypeError("Must pass list-like as `names`."), Network generated via osm, geopandas, momepy. Objective: Run short path analysis via osmnx
I am trying to solve short path analysis via osmnx.distance.k_shortest_paths(G, orig, dest, k, weight='length') I have used this approach as I am limited in the SSL/memory, that is why I am not using osm.get_network or ox.graph_from_place. I want to be able to filter precisely (highways etc...). I have checked G , and I can draw it. Please find attached the code: from pyrosm import OSM, get_data import momepy import matplotlib.pyplot as plt import geopandas as gpd import pandas as pd import osmnx as ox import networkx as nx import scipy as sp from openpyxl import Workbook osm_keys_to_keep = "highway" custom_filter = dict(highway=['trunk', 'motorway', 'motorway_link','primary']) filter_type = "keep" osm = OSM(get_data("palma")) roadtanker = osm.get_data_by_custom_criteria(custom_filter=custom_filter, osm_keys_to_keep=osm_keys_to_keep, filter_type=filter_type) roadtankerline=gpd.GeoDataFrame.explode(roadtanker,ignore_index=True) roadtankerline2=roadtankerline.to_crs(3857) G = momepy.gdf_to_nx(roadtankerline2,approach='dual') print(type(G)) fig, ax = plt.subplots() nx.draw(G, {n:[n[0], n[1]] for n in G.nodes}, ax=ax, node_size=0) target_node = ox.distance.nearest_nodes(G,336678.742,4792756.319) plt.show() I have this message error: Traceback (most recent call last): File "C:\Users\xw6362\PycharmProjects\ES14\Transport 1.py", line 49, in target_node = ox.distance.nearest_nodes(G,336678.742,4792756.319) File "C:\Users\xw6362\.conda\envs\ES14\lib\site-packages\osmnx\distance.py", line 217, in nearest_nodes nodes = utils_graph.graph_to_gdfs(G, edges=False, node_geometry=False)[["x", "y"]] File "C:\Users\xw6362\.conda\envs\ES14\lib\site-packages\osmnx\utils_graph.py", line 56, in graph_to_gdfs gdf_nodes.index.rename("osmid", inplace=True) File "C:\Users\xw6362\.conda\envs\ES14\lib\site-packages\pandas\util\_decorators.py", line 331, in wrapper return func(*args, **kwargs) File "C:\Users\xw6362\.conda\envs\ES14\lib\site-packages\pandas\core\indexes\multi.py", line 3821, in set_names return super().set_names(names=names, level=level, inplace=inplace) File "C:\Users\xw6362\.conda\envs\ES14\lib\site-packages\pandas\util\_decorators.py", line 331, in wrapper return func(*args, **kwargs) File "C:\Users\xw6362\.conda\envs\ES14\lib\site-packages\pandas\core\indexes\base.py", line 1932, in set_names raise TypeError("Must pass list-like as `names`.") TypeError: Must pass list-like as `names`. *I do not know what went wrong as the type of variable seems okay, it may be linked to the indexation but I am not sure. Do you have a path to a solution?
gis.stackexchange.com
July 31, 2026 at 1:10 AM
5/ Regex & Overpass-style filtering 🔍

custom_filter now takes compiled regex values and Overpass-style bracket filters — the same syntax OSMnx users know. Extract things that used to need Overpass straight from a local PBF, e.g. protected cycling infrastructure.
July 2, 2026 at 6:58 AM
feedback ผมที่ให้ไปนี่คืออยากชมจริงๆนะที่มีคนไทยชอบเรื่องนี้ แค่ต้องระวังการใช้คำและการให้ cite สิ่งที่ใช้ อย่างงานนี้ชัดเจนว่ามี OSM และน่าจะเอา OSMnx (OSMnx เป็นแพ็กเกจ Python แบบโอเพนซอร์สที่สร้างขึ้นโดย Geoff Boeing) มาใช้แน่ๆ (Boeing นี่ผมตาม paper เขามาหลายงานละ)
June 25, 2026 at 1:04 AM
One Python Function to Rule Them All: How OSMnx Is Revolutionizing Urban Network Analysis + Video

Introduction: In the era of smart cities and data-driven urban planning, accessing and analyzing street networks has traditionally been a complex, multi-step process requiring disparate tools and…
One Python Function to Rule Them All: How OSMnx Is Revolutionizing Urban Network Analysis + Video
Introduction: In the era of smart cities and data-driven urban planning, accessing and analyzing street networks has traditionally been a complex, multi-step process requiring disparate tools and significant manual effort. OSMnx, a powerful Python package developed by Geoff Boeing at the University of Southern California, fundamentally changes this paradigm by enabling users to download, model, analyze, and visualize street networks and other geospatial features from OpenStreetMap with just a single line of code.
undercodetesting.com
June 20, 2026 at 8:23 PM
Quick question... Have you ever used OSMnx to analyze and visualise roadways?
May 12, 2026 at 5:45 AM
A new AI review! originalankur/maptoposter ⭐3.6/5.0
maptoposter is a Python CLI tool that generates minimalist, poster-style city maps using OpenStreetMap data (via OSMnx) and renders them with Matplotlib.
https://gitrated.com/originalankur/maptoposter
April 15, 2026 at 8:00 PM
[OC] Straßenraster-Score der Städte

https://www.bytesde.com/1863640/

Quelle: GHSL Urban Center Database R2024A (EU JRC, CC BY 4.0), OpenStreetMap über OSMnx (ODbL), World Bank Open Data API (CC BY 4.0). Tools: Bruin (Pipeline), BigQuery (Warehouse), OSMnx + NetworkX (Straßenanalyse), Altair + …
[OC] Straßenraster-Score der Städte - Bytes Deutschland
Quelle: GHSL Urban Center Database R2024A (EU JRC, CC BY 4.0), OpenStreetMap über OSMnx (ODbL), World Bank Open Data API (CC BY 4.0).
www.bytesde.com
April 14, 2026 at 4:01 PM
TypeError("Must pass list-like as `names`."), Network generated via osm, geopandas, momepy. Objective: Run short path analysis via osmnx
I am trying to solve short path analysis via osmnx.distance.k_shortest_paths(G, orig, dest, k, weight='length') I have used this approach as I am limited in the SSL/memory, that is why I am not using osm.get_network or ox.graph_from_place. I want to be able to filter precisely (highways etc...). I have checked G , and I can draw it. Please find attached the code: from pyrosm import OSM, get_data import momepy import matplotlib.pyplot as plt import geopandas as gpd import pandas as pd import osmnx as ox import networkx as nx import scipy as sp from openpyxl import Workbook osm_keys_to_keep = "highway" custom_filter = dict(highway=['trunk', 'motorway', 'motorway_link','primary']) filter_type = "keep" osm = OSM(get_data("palma")) roadtanker = osm.get_data_by_custom_criteria(custom_filter=custom_filter, osm_keys_to_keep=osm_keys_to_keep, filter_type=filter_type) roadtankerline=gpd.GeoDataFrame.explode(roadtanker,ignore_index=True) roadtankerline2=roadtankerline.to_crs(3857) G = momepy.gdf_to_nx(roadtankerline2,approach='dual') print(type(G)) fig, ax = plt.subplots() nx.draw(G, {n:[n[0], n[1]] for n in G.nodes}, ax=ax, node_size=0) target_node = ox.distance.nearest_nodes(G,336678.742,4792756.319) plt.show() I have this message error: Traceback (most recent call last): File "C:\Users\xw6362\PycharmProjects\ES14\Transport 1.py", line 49, in target_node = ox.distance.nearest_nodes(G,336678.742,4792756.319) File "C:\Users\xw6362\.conda\envs\ES14\lib\site-packages\osmnx\distance.py", line 217, in nearest_nodes nodes = utils_graph.graph_to_gdfs(G, edges=False, node_geometry=False)[["x", "y"]] File "C:\Users\xw6362\.conda\envs\ES14\lib\site-packages\osmnx\utils_graph.py", line 56, in graph_to_gdfs gdf_nodes.index.rename("osmid", inplace=True) File "C:\Users\xw6362\.conda\envs\ES14\lib\site-packages\pandas\util\_decorators.py", line 331, in wrapper return func(*args, **kwargs) File "C:\Users\xw6362\.conda\envs\ES14\lib\site-packages\pandas\core\indexes\multi.py", line 3821, in set_names return super().set_names(names=names, level=level, inplace=inplace) File "C:\Users\xw6362\.conda\envs\ES14\lib\site-packages\pandas\util\_decorators.py", line 331, in wrapper return func(*args, **kwargs) File "C:\Users\xw6362\.conda\envs\ES14\lib\site-packages\pandas\core\indexes\base.py", line 1932, in set_names raise TypeError("Must pass list-like as `names`.") TypeError: Must pass list-like as `names`. *I do not know what went wrong as the type of variable seems okay, it may be linked to the indexation but I am not sure. Do you have a path to a solution?
gis.stackexchange.com
March 29, 2026 at 6:10 PM
Mitigating these 3 problems is a project I’ve been iteratively refining for the past decade. It was a central focus of my dissertation and a key motivation for originally developing OSMnx.
February 23, 2026 at 3:56 PM
Street network data was a biggish deal 8 years back, and it’s been interesting to see how influential projects like OSMnx and SharedStreets have been realized in the more recent work at Overture Maps Foundation.

medium.com/@michalmigur...
Weeknotes, 2026W06: Old News About Road Networks
A few years back we saw a rush of attention to road network software and data from city and county transportation departments, particularly…
medium.com
February 19, 2026 at 2:11 AM