Wednesday, August 31, 2022

Mesa-Geo: ABM and GIS in Python

In the past I have blogged a lot on creating geographically explicit models in NetLogo, Repast and Mason but not so much about models created in Python. Even though Python is growing in popularity and their exists an agent-based modeling framework in Python called Mesa (click here to see a paper on this). But this lack of blogging about geographically explicit agent-based models will be changing as I have been recently working with Boyu Wang (a PhD student here at UB) who together with others have been developing Mesa-Geo. To give you as sense of Mesa-Geo, below are some example models that can be downloaded from or These models range from rainfall flowing over a digital terrain model to Schelling types of models using points  and polygons as agents, to that of agents using road networks to navigate over an area.  In a future post we will go into more details but if you are interested in creating geographically explicit agent-based models in Python please check out the repositories.

 Mesa-Geo example models: (a) Rainfall, (b) Population, (c) Schelling (polygons) , (d) Schelling (points & polygons), and (e) Agents and networks.