GROWTH Coefficients

Five coefficient, or parameter, values affect how the growth rules are applied. These values are calibrated by comparing simulated land cover change to a study area's historical data. The descriptions below outline the five coefficient values, which types of growth they affect, and how the applied values are derived from the coefficients.

dispersion_coefficient; breed_coefficient; spread_coefficient; slope_coefficient; road_gravity_coefficient

Dispersion coefficient

spontaneous growth: the dispersion_coefficient (previously referred to as diffusion_coefficient) controls the number of times a pixel will be randomly selected for possible urbanization.

  • Applied value is derived from coefficient by:

dispersion_value = ((dispersion_coeff * 0.005) * sqrt (rows_sq + cols_sq))

so that dispersion_value at its maximum (dispersion_coeff == 100) will be 50% of the image diagonal.

  • dispersion_value is applied to spontaneous growth by:

for (k=0; k<dispersion_value; k++)
     select pixel (i,j) at random
     try to urbanize (i,j)

road influenced growth: the dispersion_coefficient, possibly influenced by road weighting, controls how many "steps", or pixels, make up a random walk along the transportation network on a road trip.

How the dispersion_coefficient affects road influenced growth has been altered through a patch application. Road weighting will no longer affect this step. If using a weighted roads data base please see a desription of patch.

  • Dispersion_coefficient is applied to road_influenced growth by:

    run_value = (roads(i, j) / max_road_value* dispersion_coefficient)

    where run_value is the maximum number of steps traveled along the road network by an urban pixel. Run_value is at a maximum of 100 when (road(i,j) == max_road_value) and (dispersion_coefficient == 100). For further explanation of these variables see road weighting.

back to top

Breed coefficient

new spreading center growth: the breed_coefficient determines the probability of a spontaneous growth pixel becoming a new spreading center.

  • breed_coefficient is applied to new_spreading_center growth by:

    given: a newly urban pixel (i,j) from the spontaneous growth step
    if (random_number < breed_coefficient)
         try to urbanize two (i,j) neighbors

road influenced growth: the breed_coefficient determines the number of times a road trip will be taken.

  • Breed_coefficient is applied to road_influenced growth by:

    for (k = 0; k <= breed_coefficient; k++)
         head off on a road trip

back to top

Spread coefficient

edge growth: the spread_coefficient determines the probability that any pixel that is part of a spreading center (a cluster of urban pixels > 2 in 3x3 neighborhood) will generate an additional urban pixel in its neighborhood.

  • spread_coefficient is applied to edge_growth by:

    if (random_number < spread_coefficient)
         try to urbanize a neighboring pixel

back to top

Slope coefficient

Lower slopes are easier to build upon that steeper slopes, and eventually, a percent slope will be reached at which building is impossible (CRITICAL_SLOPE). The relative pressure to build upon ever steeper slope is dynamic and related to the proportion of flatland available and the steeper area's proximity to an already established settlement.

The slope_coefficient affects all growth rules in the same way:
When a location is being tested for suitability of urbanization, the slope at that location is considered. Instead of enforcing a simple linear relationship between the percent of slope and urban development, the slope_coef acts as a multiplier. If the slope coefficient is high, increasingly steeper slopes are less likely to urbanize. As the slope coefficient gets closer to zero, an increase in local slope has less affect on the likelihood of urbanization (figure 1).

slope coefficient influence graph
   Figure 1

This relationship is enforced by creating a lookup table which relates actual slope values to slope coefficient influenced probabilities.

  • the slope_coefficient is used to calculate slope weights by first calculating:

    exp = slope_coefficient / MAX_SLOPE_RESISTANCE_VALUE / 2.0

    where MAX_SLOPE_RESISTANCE == 100. Using this exp value a lookup table is then built by:

    for ( i = 0; i < lookup table size; i++)
         if ( i < CRITICAL_SLOPE )
              val = ( CRITICAL_SLOPE - i ) / CRITICAL_SLOPE;
              lookup table[i] = 1.0 - pow (val, exp);
              lookup table[i] = 1.0;


back to top

Road gravity coefficient

road influenced growth: the maximum search distance for a road from a pixel selected for a road trip is determined as some proportion of the image dimensions.

  • Applied value is derived from coefficient by:

rg_value = (rg_coeff/MAX_ROAD_VALUE) * ((row + col) / 16.0)

where MAX_ROAD_COEFF_VALUE is defined as 100, and (row, col) are the row and column pixel counts, so that rg_value at its maximum (rg_coeff == 100) will be 1/16 of the image dimensions. If the rg_coeff value is less than 100, then the rg_value will be some proportion less than 1/16 of the image dimensions.

  • rg_value is applied to road influenced growth by:

max_search_index = 4 * (rg_value * (1 + rg_value))

where rg_value defines maximum number of neighborhoods from selected newly urban pixel to search for a road.

The first neighborhood (rg_value == 1) is made up of the selected urban pixel's adjacent 8 cells. The second neighborhood (rg_value == 2) would be the 16 pixels outwardly adjacent to the first neighborhood, etc. In this way the outward search for a road will continue until (a) a road is found, or (b) the search distance is greater than max_search_index.

back to top


back to Growth