Urban Growth Prediction Model
Description and Context
This repo contains code to run a model that predicts urban growth using a spatially-explicit stochastic land change modelling framework to produce projections of urban growth in a designated urban area and its surroundings.
The model is based on GIS-based frameworks such as SLEUTH and LEAM, which use raster data inputs (representing features like slope, no growth areas, transportation networks, and amenities) to forecast future urban land development patterns. Coupled sub-models integrate per-capita future housing demand with an urban suitability surface based on spatial drivers of urban change.
The model extracts random samples of the defined area (which should include area beyond the current boundaries of the city), identifies thresholds for urban growth, and runs a spatial logistic regression to predict urban growth based on attractors (such as transport, quality of life, topography and amenities) and restrictors (such as bodies of water or regulated areas).
The goal of this work is to accessibly generate development attractiveness maps and growth projections that are spatially-explicit, based on available datasets, and require little human intervention to produce. Such maps and projections can help inform policy decisions and elicit stakeholder input about growth and its effects. They can be used to plan optimized urban expansion, or estimate best- and worst-case scenarios regarding climate resilience.
The framework focuses on the following key implementation issues:
- Accessibility: The model is user-friendly and can be run by someone with minimal training on the subject. This opens access for many small municipalities and local governments where urban growth modelling is currently not readily accessible and there is relatively little experience with formally forecasting future land-use patterns.
- Modifiability: A variety of data inputs from a variety of sources – stakeholder inputs, variables extracted from satellite imagery, crowd-sourced geographic information (such as Open Street Maps) – can be accommodated in the framework. New data sources can be easily integrated and updated.
- Expandability: The framework is extensible and future versions of this ever-improving model can integrate more dynamic implementation of spatial gradients and land use types.
- Compatibility: The interface of the framework is designed to be interoperable with concurrent modelling efforts such as SLEUTH and can be extended to include further sub-modules.
This repo is actively maintained and incremental developments will occassionally be added here, including additional tutorials, examples or improvements to the script.
The simulation model takes the following as inputs:
- the designated potential urbanization surface
- the number of 30m urban cells needed per year or till the end year of simulation corresponding to the urban housing demand (in km2)
- a coefficient denoting the weight of the attractiveness index,
- a coefficient denoting the weight of random or spontaneous growth,
- a coefficient denoting the agricultural penalty factor,
- raster inputs. The raster inputs can be prepared in QGIS or another comparable software, and can take three forms:
- continuous maps which are usually distance to certain features of interest such as transportation,
- density of features of interest such as restaurants,
- dummy variables signifying zones where development is to be restricted (for instance, protected and highly flood-prone areas).
Each image should only contain information on a single feature, as each will be assigned a positive or negative weight. Examples of some raster data as input can be seen in the table below:
|Agglomeration||Proximity to and density of employment locations|
|Proximity to CBD and centre of commerce|
|Proximity to markets|
|Proximity to industrial areas|
|Proximity to the river bank|
|Proximity to Demerara bridge|
|Proximity to airports|
|Amenities||Proximity to and density of consumption centres|
|Proximity to and density of social services|
|Proximity to Government Housing Schemes|
|Proximity to Utilities|
|Transport||Proximity to primary, secondary and tertiary roads|
|Density of all roads including residential|
|Proximity to transport hubs|
|Topography||Elevation and slope|
|Topographic Diversity Index|
|Land surface temperature (day and night)|
|Quality of Life||Proximity to coasts|
|Proximity to greenspaces|
|Distance from landfill site|
|Urban Extensions||Proximity to urban areas|
|Proximity to areas recently developed|
The image below shows the physical map of Georgetown, Guyana and its surroundings, with higher altitude shown in lighter pixels:
The heat map below shows the availability of transportation in the same city, with lighter pixels showing areas where transportation is more available:
The restrictor file will change depending on the scenario being tested (changes can be prepared in QGIS or similar software). For Georgetown, one restrictor file was prepared to reflect the "business as usual" scenario, including only the most bastic restrictors:
Another restrictor file was prepared to project growth under a "smart" scenario, in which additional climatalogical factors, conservation efforts, and social protections were added:
As in any urban growth prediction model, attractors and restrictors of will vary from one metropolitan area to another, and thus inputs will also vary accordingly. This user-friendly script clearly designates an inputs section, the primary and often only section that will need to be updated to fit the model to a new urban area.
Using the designated inputs, a regularized spatial logistic regression model will predict urban growth on a pixel-by-pixel level within the determined boundaries. The model produces the following outputs:
- attraction surface (interim)
- combined attractor and restrictor surface (interim)
- binary predictor file (1=development likely, 0 otherwise)
- log file
The binary predictor file can be further processed in QGIS or other comparable software to produce hot spot, kernel density, or other analyses to identify the degree of development in parts of the designated area.
This model can be run from the Anaconda prompt using the simple command
All inputs should be housed in the same folder with the .py script. In addition to the basic Anaconda software, the following modules will be required to run the model:
<osr> (suggested installation of
<gdal> through Anaconda prompt)
How to Contribute
Questions or suggestions about this project can be directed to Neeraj Baruah at firstname.lastname@example.org. For all contributions to this project, this repository may be forked directly.
The Documentation of Support and Use of the software is licensed under Creative Commons IGO 3.0 Attribution-NonCommercial-NoDerivative (CC-IGO 3.0 BY-NC-ND)
The codebase of this repo uses AM-331-A3 Software License.
Limitation of responsibilities
The IDB is not responsible, under any circumstance, for damage or compensation, moral or patrimonial; direct or indirect; accessory or special; or by way of consequence, foreseen or unforeseen, that could arise:
I. Under any concept of intellectual property, negligence or detriment of another part theory; I
ii. Following the use of the Digital Tool, including, but not limited to defects in the Digital Tool, or the loss or inaccuracy of data of any kind. The foregoing includes expenses or damages associated with communication failures and / or malfunctions of computers, linked to the use of the Digital Tool.