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.

Tip

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 cityseer

Or from a notebook:

!pip install --upgrade cityseer

The 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).