UNA — Urban Network Analysis
UNA is an open-source Python package for modeling pedestrian and bicycle activity along street networks. It computes fine-grain accessibility metrics — Reach, Gravity, and KNN indices — at every origin point in a study area, and estimates pedestrian or cycling trip flows between origin–destination pairs over networks.
Estimated Foot-traffic volumes in NYC (5-6PM on weekdays). (Sevtsuk, A., Basu, R., Liu, L., Alhassan, A., & Kollar, J. (2026). Spatial Distribution of Foot-traffic in New York City and Applications for Urban Planning. Nature Cities. https://doi.org/10.1038/s44284-025-00383-y
The package is developed at the MIT City Form Lab in the Department of Urban Studies and Planning at MIT, and is released under the MIT License.
If you have never used UNA before, start with Your first analysis — a ten-minute walkthrough that produces your first accessibility map. If you already know the concepts and just want the parameters, go straight to the Settings reference.
These docs cover UNA version 2.5.5.
Getting Started
User Guide
- UNA_Workspace.py — annotated walkthrough
- Anatomy of the script
- Part 1: Boot
- Part 2: Data files
- Part 3: Which accessibility metrics to compute
- Part 4: Search radius and decay
- Part 5: Nearest-destination filter
- Part 6: Flow decay method
- Part 7: Weights
- Part 8: Detour envelope
- Part 9: Turn penalties
- Part 10: Elevation penalties
- Part 11: Output settings (optional)
- Part 12: Run
- A minimal workspace file
- Common workspace patterns
- Next steps
- Settings reference
- Input files
- Selecting accessibility metrics
- Origins, destinations, and weights
- Search radius and nearest-destination filtering
- Gravity decay parameters
- KNN accessibility parameters
- Impedance factors — elevation and turns
- Clustering and parallelism
- Output formats and paths
- Flow analysis — engine selection
- Flow analysis — detour envelope and path enumeration
- Flow — decay and trip-generation elasticity
- Flow — origin, destination, and directional weighting
- Observer points
- Obstacle points
- K-nearest destinations cap
- K-alternative paths (Plateau’s method)
- Route-alternatives output (route-choice studies)
- Flow — output and tracking options
- Batch composite output
- Other
- RunAccessibility()
- RunFlow()
- RunODM()
- Project workflow — RunBatch()
- Observers and obstacles
- Impedance: elevation, turns, obstacles
Tutorials
- Tutorial 1 — Networks, concepts, and object classes
- Tutorial 2 — Accessibility step-by-step (Boston)
- (a) Reach to transit stops — two origins, radius 400 m
- (b) Add destination weights (weekly_departures)
- (c) Add Gravity (exponential), β = 0.001
- (d) Add Gravity (logistic), midpoint = 500 m
- (e) Add KNN access — knn_weights = (1.0,)
- (f) Scale up — all 14,751 Cambridge building centroids
- (g) Enable elevation, penalty = 4
- (h) Enable turns, threshold = 45°, penalty = 35
- (i) WalkScore-style composite with UNA_Batch.py
- What we covered
- Tutorial 3 — Foot-traffic flow analysis in Cambridge
- (a) Shortest path only — one simple trip
- (b) Add distance decay, β = 0.001
- (c) Add origin weight — 100 residents at MIT_SAP
- (d) Loosen the envelope — detour_ratio = 1.2
- (e) Include both destinations
- (f) Huff destination choice — destination weights on
- (g) Enable elevation, penalty = 4
- (h) Enable turns, threshold = 45°, penalty = 35
- (i) Switching to the aggregate-flow engine
- (j) Many-to-many — 14,751 buildings → 18 metro stations
- (k) Automating multiple flows with UNA_Batch.py
- What we covered
- Tutorial 4 — Evaluating a design intervention
- (a) The intervention area
- (b) Baseline — flow with Geometric cost
- (c) Add 7 observer points along Main St
- (d) Build the pedestrianized network
- (e) Re-run flow on the pedestrianized network
- (f) Observer comparison — the money table
- (g) Directional flow
- (h) Node flow — busiest intersections
- What we covered
Concepts
Developer Guide
Citing UNA
If you use UNA in academic work, please cite our recent paper in the Journal of Transport Geography:
Sevtsuk, A. (2025). Urban Network Analysis for pedestrian and bicycle modeling. Journal of Transport Geography. https://www.sciencedirect.com/science/article/pii/S0966692325000213
Contact & Contributions
The package is maintained by Andres Sevtsuk and Raul Kalvo at the
MIT City Form Lab. Bug reports, feature requests, and contributions are welcome
via the project’s GitHub repository (link forthcoming). For questions about
academic collaboration or teaching engagements, contact Prof. Sevtsuk at
asevtsuk@mit.edu.