Thursday, December 08, 2022

Simulating Geographical Systems using CA and ABMs

In the chapter we discuss how thinking and studying of geographical systems like cities has changed over time from top down aggregate analysis to more bottom up approaches which captures the complex nature of such systems. We then discuss how we can model such systems from a cellular automata and agent-based perspectives. and how these styles of models have evolved and how they can be used to model future systems. If this sounds of interest below we provide the abstract to the chapter, some of the figures that accompany it and at the  bottom of the page we provide the full reference to the paper along with a link to the chapter itself.
"Abstract: How we view and understand the processes driving and shaping geographical systems is constantly evolving. This is due to the appearance of new rich data sources, increased computing power and storage, and the development of individual-level approaches. This allows us to explore geographical systems (from the bottom up) at scales not possible in the past. In this chapter, we examine the utility of two of the most commonly used individual-level modelling approaches, cellular automata and agent-based modelling. We outline their key differences and how these models are being used to further our understanding of geographical systems through simulation. We conclude with a discussion about the challenges that both approaches need to meet to continue developing into the future.
Keywords: Cellular automata; Agent-based models; Geographical systems; Machine learning

A SLEUTH like model stylized on Santa Fe, New Mexico denoting how land use charges over time from undeveloped (grey) to urban (red).

Example applications of agent-based models at different spatial and temporal scales

Full reference:

Heppenstall, A., Crooks, A.T., Manley, E. and Malleson, N. (2022) Simulating Geographical Systems using Cellular Automata and Agent-based Models, in Rey S. and Franklin, R. (eds.), Handbook of Spatial Analysis in the Social Sciences, Edward Elgar Publishing, Cheltenham, UK, pp. 142-157. (pdf)

Friday, November 11, 2022

Announcing MASON 21, Geomason 1.7 & Distributed MASON 1

Many visitors and readers to this site know that for a long time I have been involved with and developing agent-based models utilizing MASON. To this end, the other day Sean Luke posted a message to the MASON list-serve regarding new releases of MASON, GeoMASON  and the first release of Distributed MASON which is part of our NSF CI-EN: Enhancement of a Large-scale Multiagent Simulation Tool project

To quote from the email:

"MASON is a high performance open-source modeling toolkit in pure Java, designed to be fast, highly hackable and modifiable, and to guarantee repeatable results, among many other capabilities. MASON comes with extensive visualization capabilities and regularly runs on everything from laptops to back-end supercomputers".

"Distributed MASON is an open-source, massively distributed version of MASON meant for server/farm and cloud computing deployment using a combination of MPI and RMI. It runs MASON over a large number of collective machines. "

"GeoMASON is an open source set of extensions to MASON which add GIS capabilities, including reading and writing standard formats, embodying agents in GIS environments, and visualization."

"Distributed GeoMASON is an open source set of extensions to GeoMASON to enable it to run over Distributed MASON in both server/farm and cloud computing environments."

For those interested in GIS and agent-based models, we have added many more application examples (a sample of which is shown below), along with fixing a number of bugs, and adding new code for compatibility with Distributed MASON. For more details check out the MASON webpage:

Examples of some of the GeoMason Models

If you have questions regarding MASON, GeoMason, or their distributed versions, join the MASON mailing list and ask


Tuesday, November 01, 2022

Mesa-Geo: ABM and GIS in Python (A Update)

A couple of months ago we had a post about Mesa-Geo but only a short one. Now we want to go into more detail as we (Boyu Wang, Vincent Hess and myself) just presented a paper about it at the 5th ACM SIGSPATIAL International Workshop on Geospatial Simulation (GeoSim 2022). The paper itself was entitled "Mesa-Geo: A GIS Extension for the Mesa Agent-Based Modeling Framework in Python" in which we discuss in detail the need for a python library for creating geographically explicit agents (or GeoAgents) and introduce its architecture. 

In the paper we detail how we have designed Mesa-Geo to handle spatial data (both in terms of raster and vector via GeoSpace), how we have enabled visualization of geographical data and such models along with creating features to export geographical data from the simulations (using Rasterio and GeoPandas). To support this discussion we also provide some explicit examples on how the pieces fit together  range from rainfall flowing over a digital terrain model (DEM) to Schelling types of models using points and polygons as agents, to that of agents using road networks to navigate over an area. Boyu has also put together more details about the examples at: (which includes movies of them running).  The actual code for the models and Mesa-Geo can be found at Just to give you a sense of the paper and what Mesa-Geo can do, below we provide the abstract to the paper, some figures showing the architecture, along with some example applications. While at the bottom of the post you can see the full reference and a link to the paper itself.  


Abstract: Mesa is an open-source agent-based modeling (ABM) framework implemented in the Python programming language, allowing users to build and visualize agent-based models. It has been used in a diverse range of application areas over the years ranging from biology to workforce dynamics. However, there has been no direct support for integrating geographical data from geographical information systems (GIS) into models created with Mesa. Users have had to rely on their own implementations to meet such needs. In this paper we present Mesa-Geo, a GIS extension for Mesa, which allows users to import, manipulate, visualize and export geographical data for ABM. We introduce the main components and functionalities of Mesa-Geo, followed by example applications utilizing geographical data which demonstrates Mesa-Geo's core functionalities and features common to agent-based models. Finally, we conclude with a discussion and outlook on future directions for Mesa-Geo.

Class diagram of the Agent, GeoAgent, and Cell classes
Component diagram of GeoSpace and its related classes
Example applications using Mesa and Mesa-Geo: (a) Rainfall model, (b) Population model, (c) GeoSchelling (polygons) model, (d) GeoSchelling (points \& polygons) model, and (e) Agents and networks model.

 If you have any thoughts or comments about Mesa-Geo please let us know.

Full reference:

Wang, B., Hess, V. and Crooks A.T. (2023), Mesa-Geo: A GIS Extension for the Mesa Agent-Based Modeling Framework in Python, Proceedings of the 5th ACM SIGSPATIAL International Workshop on Geospatial Simulation (GeoSim 2022), Seattle, WA. pp 1-10. (PDF)

Friday, October 28, 2022

Modeling Farmers’ Adoption Potential to New Bioenergy Crops

Close on the heals of the last post on farming, we have a new paper co-authored with Kazi Masel entitled "Modelling Farmers’ Adoption Potential to New Bioenergy Crops: An Agent-based Approach" which was presented at the 2022 Computational Social Science Society of the Americas (CSS 2022) Annual Conference. In the paper we explore the potential of farmers to adopt carinata in the state of Georgia. Carinata in an oilseed crop which could be used as a sustainable aviation fuel. Through our agent-based model our results suggest that a viable contract price made by investors could persuade farmers to adopt carinata. If this sounds of interest, below we provide the abstract to the paper along with a movie showing the model running along with some figures of the model logic and an example of one of the results. At the bottom of the post you can find the full reference to the paper and a link to a pdf of it. Similar to our other papers a detailed Overview, Design concepts and Details (ODD) protocol along with the model and the data needed to run the model has been made available at This additional material allows for a more in-depth description of the model, as well as facilitates the replication of results or extension of the model.

Abstract: The use of fossil fuels is the primary source of greenhouse gas emissions but there are alternatives to these especially in the form of biofuels, fuels derived from bioenergy crops. This paper aims to determine farmers’ potential adoption rates of newly introduced bioenergy crops with a specific example of carinata in the state of Georgia. The determination is done using an agent-based modeling technique with two principal assumptions – farmers are profit maximizer and they are influenced by neighboring farmers. Two diffusion parameters (traditional and expansion) are followed along with two willingness (high and low) scenarios to switch at varying production economics to carinata and other prominent traditional field crops (cotton, peanuts, corn) in the study region. The paper finds that a contract prices around $9, $8 and $7 can be a viable option for encouraging farmers to adopt carinata in low, average, and high profit conditions, respectively. Expansion diffusion (that diffuses all over the geographical area), rather than centered to the few places like traditional diffusion at the early stage of adoption in conjunction with higher willingness conditions influences higher adoption rates in the short-term. As such, the model can be used to understand the behavioral economics of carinata in Georgia and beyond, as well as offering a potential tool to study similar bioenergy crops.
Keywords: Adoption, Agent-based modeling, Bioenergy Crops, Farming.
County-wise land availability for carinata production
Process, overview and scheduling of the model
Number of farmers who adopt carinata in the rotation years with high profit condition  (carinata yield = 60 bu/acre, carinata production cost = $260/acre)

Full Reference:

Ullah, K. and Crooks A.T., (2022), Modelling Farmers’ Adoption Potential to New Bioenergy Crops: An Agent-based Approach, The 2022 Computational Social Science Society of Americas Conference, Santa Fe, NM. (PDF)

Thursday, October 27, 2022

Water reuse adoption by farmers & the impacts on local water resources using an ABM

In the past we heave explored a how farmers might sell their land but not how they might adapt new technologies or farming practices such as water reuse. But this has now changed with a new paper co-authored with Farshid Shoushtarian and  Masoud Negahban-Azar entitled "Investigating the micro-level dynamics of water reuse adoption by farmers and the impacts on local water resources using an agent-based model" which was recently published in the journal Socio-Environmental Systems Modelling. In the paper we introduce the WRAF  (water  reuse  adoption  by  farmers) model which explores how farmers might adopt water recycled water (reuse) practices. Using the model, results suggest that it might be possible through freshwater shortage or groundwater withdrawal regulations could increase recycled water use by farmers. If this sounds of interest, below we provide an abstract to the model, some figures from the agent logic (i.e., decision making), an overview of simulation results and the  full reference to the paper. Along with the paper, we have also provided more details  about the WRAF  model following the Overview, Design concepts, Details, and Decision-making (ODD) protocol along with the  NetLogo source code which can be found at

Abstract: Agricultural water reuse is gaining momentum to address freshwater scarcity worldwide. The main objective of this paper was to investigate the micro-level dynamics of water reuse adoption by farmers at the watershed scale. An agent-based model was developed to simulate agricultural water consumption and socio-hydrological dynamics. Using a case study in California, the developed model was tested, and the results showed that agricultural water reuse adoption by farmers is a gradual and time-consuming process. In addition, results also showed that agricultural water reuse could significantly decrease the water shortage (by 57.7%) and groundwater withdrawal (by 74.1%). Furthermore, our results suggest that recycled water price was the most influential factor in total recycled water consumption by farmers. Results also showed how possible freshwater shortage or groundwater withdrawal regulations could increase recycled water use by farmers. The developed model can significantly help assess how the current water reuse management practices and strategies would affect the sustainability of agricultural water resources.

Keywords: Water reuse; agent-based modelling; agricultural water management; recycled water for irrigation

(a) WRAF framework; (b) Farmers' decision-making flowchart

(a) Water reuse adoption sub-model framework; (b) Wastewater treatment plants flowchart

Representative simulation results: farmers’ water resources distribution in year one (a) andyear84(b);  available recycled water in the storage ponds of Modesto (c) and Turlock (d)wastewater treatment plants; total recycled water used by farmers in year two (e) and year 84(f)

Full Reference:

Shoushtarian, F., Negahban-Azar, M. and Crooks A.T. (2022), Investigating the Micro-level Dynamics of Water Reuse Adoption by Farmers and the Impacts on Local Water Resources using an Agent-based Model, Socio-Environmental Systems Modelling, 4: 18148. Available at (pdf)