Cityseer Guide
cityseer is a Python package for pedestrian-scale network analysis and urban morphology. It computes centrality, accessibility, mixed-use, statistical, and visibility metrics over street networks, using a high-performance rust backend so that analyses scale to large cities.
This guide provides tutorials and worked examples to help you get started. If you’re looking for the API reference or source code:
What can cityseer do?
- Network Centrality: Identify the most connected and important streets using shortest-path and simplest-path centrality measures.
- Accessibility: Quantify how easily amenities (shops, parks, restaurants) can be reached from each point in the network.
- Statistics: Aggregate numeric properties of nearby features (e.g., building heights) over the network.
- Visibility: Assess street enclosure and openness from building footprints or terrain data.
- Continuity: Measure how consistently named routes and road classifications extend through the network.
Getting Started
Python 101
New to Python or computational notebooks? Start with the Python 101 section, which covers the basics of Python, spatial data with Shapely and GeoPandas, and an introduction to urban analytics with osmnx and momepy.
Quickstart
Ready to use cityseer? The Getting Started page introduces core concepts (primal/dual graphs, NetworkStructure, distance thresholds) and walks through a minimal end-to-end analysis.
Recipes
For practical, worked examples covering network preparation, centrality, accessibility, statistics, and visibility analysis, head to the recipes section.
The recipes assume familiarity with Python, geopandas, and projected coordinate reference systems. If any of these are new to you, start with Python 101 first.
Datasets
The datasets used in the recipes are available on the datasets page, with source links and licensing information.
Glossary
Unfamiliar with terms like “dual graph” or “edge rolloff”? See the Glossary for definitions of key concepts.
Installation
Install cityseer with pip:
pip install --upgrade cityseerOr from a notebook:
!pip install --upgrade cityseerThe examples in this guide also use packages such as geopandas, networkx, osmnx, momepy, matplotlib, and seaborn. These can be installed in the same way, or you can install all dependencies at once by cloning the repository and running uv sync (see uv documentation).