Centre for Earth Systems Engineering Research

An Open Source Framework for Urban Modelling

An Open Source Framework for Urban Modelling

An open source framework for integrated urban spatial modelling.


Urban spatial modelling (USM) software was developed within the Tyndall Cities and ARCADIA projects. It has been  successfully employed in several cities-based EPSRC funded research projects. 

However, many components have been developed in heterogeneous programming environments.

There is a need to harmonise the software environment so that components can be employed in a truly integrated manner. This will allow the full impact of the unique capability of the software to be realised.

This project is creating an open-source modelling framework. This will provide a genuinely-integrated software environment for urban spatial modeling and impact assessment.

This work is sponsored by an EPSRC grant in ”Earth Systems Engineering” (no: EP/G013403/1)

Python framework

The framework is driven by a Python module. This encapsulates user-models. It provides an ubiquitous environment for model-parameterisation, inter-model interactions and data access (Figure 1).

Within the framework there are three key classes:

The model wrapper

This handles loading, running and internal data provision for models.

Data wrapper

This manages connections to input and output data sources including database access.

Run configuration

This builds a model run instruction-set (based on user configuration). It controls execution of models via calls to the model wrapper. It also handles inter-model data interaction and iterative processing (eg ensemble runs).

NetworkX/PostGIS network analysis framework module

As part of the framework the project has developed a relational spatial database schema and a python coupled-interface to the NetworkX graph analysis package.

Working in collaboration with the Infrastructure Transitions Research Consortium the module provides tools for the representation, encoding and analysis of networks and their dependencies/interdependencies.

The database schema is exposed through a set of plpgsql functions which act as the data wrapper. A series of python classes using methods from the NetworkX package provide the network model wrapper.

The network module is currently being used to implement network cost analysis for London transport networks (Figure 2). This is part of the Tyndall Cities urban integrated assessment analysis.