A Python
package for pedestrian-scale network-based urban analysis: network analysis, landuse accessibilities and mixed uses, statistical aggregations.
- Documentation for
v1.x
: see documented code per tagged release v1 - Documentation for
v2.x
: see documented code per tagged release v2 - Documentation for
v3.x
: see documented code per tagged release v3 - Documentation for
v4+
: https://cityseer.benchmarkurbanism.com/
Demo Notebooks: https://benchmark-urbanism.github.io/cityseer-examples/
Issues: https://github.com/benchmark-urbanism/cityseer-api/issues
Questions: https://github.com/benchmark-urbanism/cityseer-api/discussions
Cite as: The cityseer Python package for pedestrian-scale network-based urban analysis
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 either shortest or simplest path heuristics on either primal or dual graphs, including tailored methods such as harmonic closeness centrality (which behaves more suitably than traditional variants of closeness), 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".
- Land-use accessibilities and mixed-use calculations incorporate dynamic and directional aggregation workflows with the optional use of spatial-impedance-weighted forms. These can likewise be applied with either shortest or simplest path heuristics and on either primal or dual graphs. For more information, see "The application of mixed-use measures at the pedestrian-scale".
- 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" and "Prediction of 'artificial' urban archetypes at the pedestrian-scale through a synthesis of domain expertise with machine learning methods".
- 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. See the Graph Cleaning Guide. - 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.
brew install pdm rust rust-analyzer rustfmt
pdm install