GeoAI in Practice: From Geospatial Data to Graph Neural Networks with City2Graph
2026-08-31 , 609

This workshop introduces Graph Neural Networks (GNNs) for geospatial practitioners. Using open-source Python tools including PyTorch Geometric and City2Graph, participants will learn how to transform urban geospatial data into network structures and apply GNNs to model complex spatial relations.


As Geospatial Artificial Intelligence (GeoAI) evolves, Graph Neural Networks (GNNs) have emerged as a promising approach for predicting and understanding complex spatial relationships. This workshop provides a practical overview of the full GNN pipeline, from processing raw spatial data to training models, using an open-source Python stack: GeoPandas, NetworkX, PyTorch Geometric, OSMnx, and City2Graph.

Target audience

This workshop is intended for spatial data scientists, GIS analysts, and Python developers who are interested in GeoAI and spatial network modelling.

Schedule

Part 1: Graph Data Engineering, Spatial Network Analysis, and GNNs

Learn to construct and analyse spatial networks using GeoPandas and NetworkX. We will demonstrate how to convert standard geospatial data (e.g., OpenStreetMap, GTFS, etc.) into unified graph structures with OSMnx and City2Graph. We will then explore key GNN architectures and transition from spatial graphs into tensor formats using PyTorch Geometric and City2Graph.

(10-Minute Pause)

Part 2: Build Your Own GeoAI Pipeline (Jupyter Notebook)

Put your skills into practice. Choose your faviorite city, generate H3 hexagonal grids as graph nodes, and enrich them with POIs anf land uses from Overture Maps. Fetch streets network from OpenStreetMap or Overture Maps (optional), build a graph linking hexagons to street intersections, and compute 15-minute walkability. After preprocessing features, train a Graph Autoencoder (GAE) to learn node embeddings. Finally, cluster neighbourhoods using HDBSCAN and K-Means, and export the results as an interactive web map. We will conclude by discussing how GNN pipelines could be adopted for your business or research workflows.


Level of the workshop: 3 - advanced Pre-requirements for attendees:

By the workshop, all the contents will be uploaded to https://github.com/c2g-dev/city2graph-workshop. Please make sure that the Jupyter Notebooks uploaded are ready to be executed. If you will run codes on your local environment, please make sure that you clone the repository and set it up following the instruction in its README.md in advance. Google Colab notebooks will also be linked to each part of the workshop (e.g., part 2). If you use Google Colab, make sure that you have an account and enough storage on your Google Drive to keep the Jupyter Notebooks.

What skills do participants require to have?:

Basic proficiency in Python (especially GeoPandas) and GIS concepts. Basic knowledge of machine learning and neural networks (e.g., supervised vs. unsupervised learning, loss functions, activation functions, backpropagation). If you are not familiar with those topics of neural networks, I recommend watching 3Blue1Brown’s tutorial videos (Chapter 1-4) in advance (English Español 한국어 हिंदी 日本語 русский 中文). No prior network science (NetworkX) or GNN (PyTorch Geometric) skills required.

Link to software source code:

https://github.com/c2g-dev/city2graph

Yuta Sato is a PhD candidate at the Geographic Data Science Lab, University of Liverpool, focusing on graph representation learning for evaluating sustainable urban developments (e.g., 15-Minute City).

He is the lead maintainer of City2Graph, an open-source Python library that transforms geospatial datasets into heterogeneous graphs for Graph Neural Networks.

Yuta received a Master's degree in Geographic Data Science from the London School of Economics (LSE). He has four years of professional experience as a cybersecurity solution architect at Nissan Motor Corporation Ltd. and as a spatial data scientist at Spatial Pleasure Inc.