https://github.com/benchmark-urbanism/cityseer-api
Computational tools for urban analysis
https://github.com/benchmark-urbanism/cityseer-api
architecture centrality geographical-information-system landuse morphometrics network-analysis network-centralities network-topology networks networkx numba numpy openstreetmap osmnx python3 shapely spatial-analysis spatial-data spatial-data-analysis urban-planning
Last synced: 11 days ago
JSON representation
Computational tools for urban analysis
- Host: GitHub
- URL: https://github.com/benchmark-urbanism/cityseer-api
- Owner: benchmark-urbanism
- License: agpl-3.0
- Created: 2018-10-08T19:46:28.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2026-04-01T04:10:15.000Z (2 months ago)
- Last Synced: 2026-04-01T06:56:57.478Z (2 months ago)
- Topics: architecture, centrality, geographical-information-system, landuse, morphometrics, network-analysis, network-centralities, network-topology, networks, networkx, numba, numpy, openstreetmap, osmnx, python3, shapely, spatial-analysis, spatial-data, spatial-data-analysis, urban-planning
- Language: Python
- Homepage: https://cityseer.benchmarkurbanism.com
- Size: 323 MB
- Stars: 117
- Watchers: 7
- Forks: 11
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# cityseer
A `Python` package for pedestrian-scale network-based urban analysis: network analysis, landuse accessibilities & mixed uses, statistical aggregations.
[](https://badge.fury.io/py/cityseer)
[](https://github.com/benchmark-urbanism/cityseer-api/actions/workflows/publish_package.yml)
[](https://github.com/benchmark-urbanism/cityseer-api/actions/workflows/firebase-hosting-merge.yml)
Examples:
API Documentation:
Issues:
Questions:
## Installation
```bash
pip install cityseer
```
## Development
`brew install uv rust rust-analyzer rustfmt`
`uv sync`
## Cite
Cite as: [The cityseer Python package for pedestrian-scale network-based urban analysis](https://journals.sagepub.com/doi/full/10.1177/23998083221133827)
## Background
The `cityseer-api` `Python` package addresses a range of issues specific to computational workflows for urban analytics from an urbanist's point of view and contributes a combination of techniques to support developments in this field:
- High-resolution workflows including localised moving-window analysis with strict network-based distance thresholds; spatially precise assignment of land-use or other data points to adjacent street-fronts for improved contextual sensitivity; dynamic aggregation workflows which aggregate and compute distances on-the-fly from any selected point on the network to any accessible land-use or data point within a selected distance threshold; facilitation of workflows eschewing intervening steps of aggregation and associated issues such as ecological correlations; and the optional use of network decomposition to increase the resolution of the analysis.
- Localised computation of network centralities using shortest paths on primal or dual graphs, and simplest-path heuristics on dual graphs, including tailored methods such as harmonic closeness centrality, and segmented versions of centrality (which convert centrality methods from a discretised to an explicitly continuous form). For more information, see [_"Network centrality measures and their correlation to mixed-uses at the pedestrian-scale"_](https://arxiv.org/abs/2106.14040).
- Land-use accessibilities and mixed-use calculations incorporate dynamic and directional aggregation workflows with the optional use of spatial-impedance-weighted forms. Shortest-path workflows operate on primal or dual graphs, while simplest-path workflows require dual graphs. For more information, see [_"The application of mixed-use measures at the pedestrian-scale"_](https://arxiv.org/abs/2106.14048).
- Network centralities dovetailed with land-use accessibilities, mixed-uses, and general statistical aggregations from the same points of analysis to generate multi-scalar and multi-variable datasets facilitating downstream data science and machine learning workflows. For examples, see [_"Untangling urban data signatures: unsupervised machine learning methods for the detection of urban archetypes at the pedestrian scale"_](https://arxiv.org/abs/2106.15363) and [_"Prediction of 'artificial' urban archetypes at the pedestrian-scale through a synthesis of domain expertise with machine learning methods"_](https://arxiv.org/abs/2106.15364).
- The inclusion of graph cleaning methods reduce topological distortions for higher quality network analysis and aggregation workflows while accommodating workflows bridging the wider `NumPy` ecosystem of scientific and geospatial packages.
- Underlying loop-intensive algorithms are implemented in `rust`, allowing these methods to be applied to large and, optionally, decomposed graphs, which have substantial computational demands.