Causality in Time and Space: Agent-Based Modeling for GIS Users

Kevin Johnston has been part of Esri’s software development team for more than 20 years, focusing on the ArcGIS Spatial Analyst extension and various aspects of dynamic and statistical modeling.  In addition to working at Esri, Kevin does volunteer conservation work on a variety of conservation projects, including elephant-movement models for Amboseli National Park in Kenya, snow leopard corridor models in Nepal, and agent-based models of cougar movement in Arizona.  With the release of a new book he edited called Agent Analyst: Agent-Based Modeling in ArcGIS, I asked Kevin to share some basic information on agent-based modeling and how the GIS community might leverage it in their projects.
Matt Artz: What is agent-based modeling?
Kevin Johnston: Agent-based modeling (ABM) explicitly models the causality of individuals or objects in time and space. Conceptually, in ABM you give instructions to virtual agents that allow the agents to interact with each other and their environment. Agents can be people, wildlife, tanks, cars, or any discrete object. From the resulting decisions and actions of the agents, patterns are created in time and space. Unlike many other modeling techniques that quantify and then re-create the patterns, agent-based models explore the causes of the patterns; the patterns are emergent properties from the individual decisions of the agents.

Agent Analyst: Agent-Based Modeling in ArcGIS
Agent Analyst: Agent-Based Modeling in ArcGIS

Matt Artz: What kinds of decisions are aided by agent-based modeling?

Kevin Johnston: Agent-based modeling, combined with spatial data, allows you to address a wide array of problems such as:

Many phenomena or agents exist and make decisions in, and relative to, space. The location of an agent and its surrounding environment will influence the agent’s decision making. The agent can influence or change the landscape it interacts with. GIS is a spatial modeling tool that stores and displays geographic data and analyzes spatial relationships. A natural synergy exists between ABM and GIS.

Matt Artz: How does an agent-based model work?

Kevin Johnston: In its simplest form, an agent-based model works in the following manner: identify the agents and define their actions.
First, the agents need to be identified. As mentioned earlier, agents can be animals, terrorists, land parcels, delivery trucks, weather patterns, or anything that “makes a decision”, performs an action, or changes state. “Making a decision” is being used in the most general meaning: the agent does “this” as opposed to “that.”
Next, the agents act; at each time step they perform an action or no action based on their state and what is occurring around them. An animal agent might run, walk, eat, or sleep. A terrorist might attack. A land parcel might change from agricultural use to residential use.
Time is explicit in the simulation of an agent-based model. Each decision is made in some specified time step. The length of each time step is controlled through a scheduler. The duration for the time step should be determined based on the decision making and characteristics of the agents being modeled. For example, if the model is exploring delivery truck movement, the time step will be much smaller (e.g., every hour), as opposed to possibly using a much longer time interval when modeling the change in land use types based on an economic model.

The main Agent Analyst interface (upper left) for a cougar movement model running within ArcGIS.
The main Agent Analyst interface (upper left) for a cougar movement model running within ArcGIS. The Data Source Editor is displayed (lower right) for the male cougar agents. It reflects a cougar GIS shapefile as the data source for male cougar agents, and the fields (the properties) for the agents were derived from the shapefile.

Matt Artz: Can an Esri user create an agent-based model from within ArcGIS using their existing data?

Kevin Johnston: Yes they can, with Agent Analyst, a free, open-source software developed to integrate an ABM development platform—the Recursive Porous Agent Simulation Toolkit (Repast)—with ArcGIS 10.0. Agent Analyst is a mid-level integration that takes advantage of both modeling environments. Repast is used for the creation of the agent rules, object support, and scheduling. ArcGIS is used for data creation, GIS analysis, and display of the simulations. Agent Analyst is implemented as a new model-tool type supported in the ArcGIS geoprocessing environment. As a result, an Agent Analyst model can be used as any model tool in the geoprocessing environment. With Agent Analyst, the model developer can utilize ArcGIS Java objects, allowing the developer to access the full suite of GIS functions and incorporate them into the agent model.
Esri has provided a great deal of support in the development of Agent Analyst, but it’s important to note that Agent Analyst is not an Esri supported product.

Matt Artz: What resources are available for ArcGIS users interested in using Agent Analyst?

Kevin Johnston: Twelve eminent agent-based modeling experts recently collaborated on a step-by-step tutorial style book called Agent Analyst: Agent-Based Modeling in ArcGIS. Each exercise is designed to expose you to different ABM techniques on agents that are associated with different types of spatial features. The book focuses on agents that can be represented as points, polygons, or raster cells and agents on networks, and its structure is based on these agent types. The exercises build upon previous chapters and progressively get more sophisticated. The exercises are placed in the context of application models that include animal movement, housing segregation, land use change, and criminal activity; however, this book is not about creating specific application models.

Matt Artz: Where can people get a copy of your new book?

Kevin Johnston: Agent Analyst: Agent-Based Modeling in ArcGIS and the tutorial data as well as the Agent Analyst software can be downloaded for free from

Next Article

The Science of Where for Sustainable Development Webinar Series

Read this article