One of the key goals for geoprocessing at ArcGIS 9.2 was to extend the existing framework beyond the bounds of static cartographic-style, descriptive modeling into the world of dynamic, stochastic, process modeling. Simulation modeling has many applications in GIS including modeling errors (what is the effect of errors in a DEM on the derived stream network?), sensitivity analysis (how sensitive is my housing suitability model to the slope parameter in the terrain input layer?), or what-if scenarios (how will a fire move across a landscape, based on information about land cover, terrain and wind direction?). The following new capabilities have been added to ArcGIS 9.2 to support this type of work:

Branching. Branching has in fact been available for several releases, but I’ll cover it here because it is so useful in dynamic simulation modeling. Branching can be used to control the flow of a model. ArcGIS includes both If-Then-Else logic and precondition tests that output True/False. For example, in a fire model If-Then-Else logic can be used to branch depending on whether an area is Forest or Grassland.
Iteration. Iteration is a general term that describes how many times a model (or part of a model) will run. There are several ways to control iteration including looping (execute a model n times), conditional logic (looping until value=true), and running a model for all values in an input list.
Feedback. This is the ability for a downstream process to influence an upstream process. For example, as a fire burns the amount of fuel will reduce until it is all used up and the fire can no longer burn. The amount of fuel can also control the temperature (and therefore the rate at which the fire can burn). During the first run of a fire model, the amount of fuel is reduced and this can then feedback into the next iteration to control burning subsequent burning.
Random functions/values. Both random functions and values can be incorporated into ArcGIS 9.2 models. For example, the location of a fire can be determined using a random function to generate a raster with a random point. A random value can be generated using one of the nine supported distributions (and a seed value) to simulate sparks jumping from a fire to start another fire.
List/series processing. ArcGIS 9.1 only supported one data layer as input to a tool. ArcGIS 9.2 additionally supports both lists and series of data values as input. Lists force all downstream processes to execute once for each value in the list, whereas series force entire model execution once for each input value.
Result visualization. Iterative models typically generate one output layer for each iteration. To mange and visualization model output two new capabilities have been added to 9.2: geoprocessing layers and animation. A geoprocessing layer allows the symbology for an output to be specified once and then new reused for each subsequent iteration. Each time the model runs the output is written to the same layer, over-writing the previous output. An alternative approach is to write each iteration out to a separate layer. If the output layers of a model are of type raster then the layers can be managed as a raster catalog (a collection of rasters). The animation framework at 9.2 can be used to visualize multiple layers in either 2D or 3D. Animations can be displayed directly onscreen and can be saved as animated movies such AVIs.


Several of these capabilities are shown in the two parts of a fire model. Random variables are used to define wind speed and direction (using weights in a kernel), random values are used to represent fire temperature, feedback connectors (blue lines) provide a control over the number of iterations that vegetation can burn, and branching with random variables determines when sparks jump from a fire to initiate new sub-fires.
In summary, ArcGIS 9.2 has many new capabilities for creating dynamic process models that represent or simulate aspects of real world ecological, environmental, and social systems which focus on geographic patterns and processes.