Chapter 8: The SLEUTH Urban Growth Model

8.1 What is SLEUTH?

SLEUTH is the most widely used CA-based urban growth model, developed by Keith Clarke at UC Santa Barbara. The name is an acronym for its input data layers:

  • Slope
  • Land use
  • Exclusion (protected areas, water bodies)
  • Urban extent (historical urban maps)
  • Transportation (road network)
  • Hillshade (for visualisation)

SLEUTH simulates urban growth through five distinct growth rules, each controlled by a coefficient in the range \([0, 100]\). The model is calibrated by brute-force Monte Carlo search over the five-dimensional parameter space.

8.2 The Five Growth Rules

Rule 1: Spontaneous Growth

Random urbanisation of any non-excluded, non-urban cell. Models new development seeds unrelated to existing urban areas. Controlled by the dispersion coefficient\(C_d\):

$$P_{\text{spont}}(i,j) = \frac{C_d}{100} \cdot \left(1 - \frac{\text{slope}(i,j)}{\text{slope}_{\max}}\right)^{C_s}$$

where \(C_s\) is the slope resistance coefficient.

Rule 2: New Spreading Centre Growth

When two or more spontaneous growth cells occur near each other, they form a new urban cluster (“spreading centre”). Controlled by the breed coefficient\(C_b\):

$$\text{If } |\{k \in \mathcal{N}_3(i,j) : s_k^{\text{new}} = 1\}| \geq 2 \text{ and } \text{rand} < C_b/100 \text{, spawn new centre}$$

Rule 3: Edge Growth (Organic Growth)

Existing urban edges expand outward. For each urban cell at the boundary, neighbouring non-urban cells may become developed. Controlled by the spread coefficient\(C_p\):

$$P_{\text{edge}}(i,j) = \frac{C_p}{100} \cdot \frac{n_{\text{urban}}(i,j)}{|\mathcal{N}|} \cdot \left(1 - \frac{\text{slope}(i,j)}{\text{slope}_{\max}}\right)^{C_s}$$

Rule 4: Road-Influenced Growth

New development is attracted to transportation corridors. When a new urban cell forms, it may “walk” toward the nearest road and develop along it. Controlled by road gravity \(C_g\):

$$d_{\text{walk}} = C_g / 100 \cdot d_{\max}, \qquad \text{develop along road within } d_{\text{walk}} \text{ cells}$$

Rule 5: Slope Resistance

All rules are modulated by slope. Steep terrain resists urbanisation:

$$R_{\text{slope}}(i,j) = \left(1 - \frac{\text{slope}(i,j)}{\text{slope}_{\max}}\right)^{C_s / 100 \cdot \text{MAX\_SLOPE\_RESISTANCE}}$$

8.3 Calibration: Brute-Force Monte Carlo

SLEUTH is calibrated by searching over the five-dimensional parameter space\((C_d, C_b, C_p, C_g, C_s) \in [0, 100]^5\). For each parameter combination, the model is run multiple times (Monte Carlo replicates) and the output is compared to historical data.

Figure of Merit: Jaccard Index

The primary calibration metric is the Figure of Merit (FoM), based on the Jaccard index between the simulated urban extent\(A\) and the observed extent\(B\):

$$\text{FoM} = J(A, B) = \frac{|A \cap B|}{|A \cup B|} = \frac{|A \cap B|}{|A| + |B| - |A \cap B|}$$

Properties:

  • \(\text{FoM} = 1\): perfect agreement
  • \(\text{FoM} = 0\): no overlap
  • • Penalises both omission errors (observed but not simulated) and commission errors (simulated but not observed)

Three-Phase Calibration

SLEUTH uses a hierarchical calibration strategy:

  1. Coarse: step = 25, range [0, 100] (5 values per parameter = 3125 combinations)
  2. Fine: step = 5, range around best coarse values
  3. Final: step = 1, range around best fine values

8.4 Self-Modification Rules

A distinctive feature of SLEUTH is that its coefficients evolve during the simulation via self-modification rules. If growth is too fast or too slow compared to a target, the coefficients are adjusted:

$$\text{If growth rate} > \text{critical}_{\text{high}}: \quad C_d \leftarrow C_d \cdot \text{boom}, \quad C_b \leftarrow C_b \cdot \text{boom}$$

$$\text{If growth rate} < \text{critical}_{\text{low}}: \quad C_d \leftarrow C_d \cdot \text{bust}, \quad C_b \leftarrow C_b \cdot \text{bust}$$

where \(\text{boom} > 1\) and\(\text{bust} < 1\) are multipliers. This creates boom-bust cycles that mimic real urban growth dynamics.

8.5 Python: SLEUTH Growth Rules & Calibration

Implementation of the five SLEUTH growth rules with a simplified calibration loop.

SLEUTH: Growth Rules & Calibration Loop

Python
script.py152 lines

Click Run to execute the Python code

Code will be executed with Python 3 on the server

8.6 Summary & Key Takeaways

  • • SLEUTH uses five growth rules: spontaneous, new spreading, edge, road-influenced, slope resistance
  • • Five coefficients \((C_d, C_b, C_p, C_g, C_s) \in [0, 100]\) control growth behaviour
  • • Calibration via brute-force Monte Carlo with three-phase refinement
  • • Figure of Merit = Jaccard index: \(\text{FoM} = |A \cap B| / |A \cup B|\)
  • • Self-modification rules create realistic boom-bust growth cycles
  • • Widely applied globally but computationally expensive to calibrate