Benchmarks and Design Notes¶
IduEdu is designed as a single Python pipeline for city-network analysis: OpenStreetMap extraction,
graph construction, public-transport integration and large origin-destination computations all use the
same UrbanGraph data model. The 2026 paper benchmark suite in paper2026/ measures those stages from
raw CSV outputs, with repeated runs and median values.
The numbers below are not a general ranking of geospatial libraries. OSMnx remains a mature and widely
used toolkit for street-network analysis. This comparison isolates one common workload: pedestrian graph
construction from the same city-scale AOIs, using both simplify=False and simplify=True in IduEdu and
OSMnx.

What IduEdu Adds¶
UrbanGraph: a tabular graph representation backed byGeoDataFramenode and edge tables.Lazy CSR adjacency built directly from edge tables and reused by shortest-path routines.
Street-graph builders for drive and walk networks from OSM with metric projection and optional simplification.
Static public-transport graph construction directly from OSM relations, without requiring GTFS.
Intermodal graph construction by projecting stops, platforms and subway access points onto the walking graph.
OD-matrix computation on Numba-backed CSR kernels with cutoff thresholds and adaptive graph reversal.
Optional NetworkX adapters for interoperability without using NetworkX as the internal graph representation.
Pedestrian Graph Construction¶
Benchmark B1 compares graph construction time, stored edge rows and a deterministic object-size estimate
for the final in-memory geospatial graph representation. For IduEdu, the estimate covers UrbanGraph
node and edge GeoDataFrame tables plus Shapely geometry coordinate buffers. For OSMnx, the estimate
covers the returned networkx.MultiDiGraph dictionaries, attributes, geometry and coordinate buffers.
It is not peak process RSS during construction.
Without simplification, IduEdu’s time ratio is highest in this workload: OSMnx takes 5.8-9.3x longer across the tested cities, with a median ratio of 8.9x. With simplification enabled, the ratio is 3.3-6.0x with a median of 5.7x. In both modes, the final graph representation has a roughly 10-12x lower deterministic object-size estimate.
Rows are lightly shaded by simplify mode. Ratios are OSMnx / IduEdu.
| Simplify | City | Build time | Graph object size | Stored edge rows | |||||
|---|---|---|---|---|---|---|---|---|---|
| IduEdu | OSMnx | Ratio | IduEdu | OSMnx | Ratio | IduEdu | OSMnx | ||
| false | Helsinki | 10.3 s | 89.5 s | 8.7x | 128 MB | 1.6 GB | 12.4x | 911.4k | 1.82M |
| Saint Petersburg | 10.0 s | 90.3 s | 9.0x | 137 MB | 1.6 GB | 11.8x | 1.00M | 1.99M | |
| New York | 25.0 s | 144.6 s | 5.8x | 163 MB | 1.8 GB | 11.6x | 1.17M | 2.34M | |
| Seoul | 13.4 s | 121.6 s | 9.1x | 207 MB | 2.3 GB | 11.5x | 1.44M | 2.85M | |
| Moscow | 16.0 s | 148.1 s | 9.3x | 217 MB | 2.4 GB | 11.4x | 1.56M | 3.11M | |
| London | 31.0 s | 259.8 s | 8.4x | 394 MB | 4.5 GB | 11.8x | 2.74M | 5.45M | |
| true | Helsinki | 18.0 s | 108.2 s | 6.0x | 59 MB | 666 MB | 11.3x | 369.6k | 720.8k |
| Saint Petersburg | 20.0 s | 114.7 s | 5.7x | 76 MB | 865 MB | 11.3x | 516.9k | 1.01M | |
| New York | 52.6 s | 171.6 s | 3.3x | 86 MB | 879 MB | 10.3x | 570.3k | 1.04M | |
| Seoul | 25.6 s | 146.7 s | 5.7x | 85 MB | 908 MB | 10.6x | 510.4k | 1.01M | |
| Moscow | 32.4 s | 184.5 s | 5.7x | 119 MB | 1.3 GB | 10.9x | 800.0k | 1.56M | |
| London | 56.6 s | 319.7 s | 5.6x | 161 MB | 1.7 GB | 11.0x | 958.9k | 1.85M | |
Edge counts should be read as stored edge rows in each representation, not as an independent quality
metric. UrbanGraph can encode bidirectional pedestrian edges with one row and an edge-direction column,
while a directed multigraph representation commonly stores separate directed edge rows.
Protocol¶
All B1 measurements use the same area of interest per city. The benchmark suite downloads PBF files, extracts the PBF bounding box and uses that bounding box as the AOI for each library. Every measurement is repeated at least three times, and the documentation reports medians.
Environment recorded for the B1 run:
CPU class: Intel Core i7-12700F workstation, 64 GB RAM.
Platform: Windows 10 / Windows 11 family.
Python: 3.11.9.
IduEdu: 2.0.0.
OSMnx: 2.1.0.
NetworkX: 3.6.1.
GeoPandas: 1.1.4.
Shapely: 2.1.2.
Raw results and environment captures are stored in:
paper2026/results/build_benchmark.csvpaper2026/results/intermodal_benchmark.csvpaper2026/results/od_benchmark.csvpaper2026/results/env_build.json
OD Matrices¶
IduEdu computes OD matrices directly on the graph representation produced by its builders. The CSR
adjacency is built from UrbanGraph.edges_gdf, cached, and passed to Numba kernels without converting the
graph into another library’s format.
Two mechanisms are important for accessibility workloads:
Cutoff thresholds stop Dijkstra expansion once the travel-time or distance threshold is exceeded.
Adaptive graph reversal swaps origins and destinations on the transposed graph when
|origins|is much larger than|destinations|, reducing the number of shortest-path launches.
The paper benchmark validates OD results against NetworkX on an identical graph: reachability sets match,
and the maximum finite difference is about 3e-4 minutes, explained by float32 arithmetic in the
accelerated kernel versus the float64 reference.
Limitations¶
The public-transport graph is static. It uses route topology and stop infrastructure from OSM and does not model schedules, headways or time-dependent waiting. This is appropriate for structural accessibility and network-coverage studies, but not for exact timetable routing.
The benchmark advantages are strongest for large city graphs and batch computations such as OD matrices, many-source accessibility and repeated spatial analysis. For one-off route queries, specialized routing engines can still be the right tool, especially when schedule-aware or turn-cost routing is required.