Mesa-Geo: GIS Extension for Mesa Agent-Based Modeling#

GitHub CI Read the Docs Codecov Code Style PyPI PyPI - License PyPI - Downloads Matrix Chat DOI

Mesa-Geo implements a GeoSpace that can host GIS-based GeoAgents, which are like normal Agents, except they have a geometry attribute that is a Shapely object and a crs attribute for its Coordinate Reference System. You can use Shapely directly to create arbitrary geometries, but in most cases you will want to import your geometries from a file. Mesa-Geo allows you to create GeoAgents from any vector data file (e.g. shapefiles), valid GeoJSON objects or a GeoPandas GeoDataFrame.

Using Mesa-Geo#

To install Mesa-Geo on linux or macOS run

pip install mesa-geo

On windows you should first use Anaconda to install some of the requirements with

conda install fiona pyproj rtree shapely
pip install mesa-geo

Since Mesa-Geo is in early development you could also install the latest version directly from Github via

pip install -e git+

Take a look at the examples folder for sample models demonstrating Mesa-Geo features.

For more help on using Mesa-Geo, check out the following resources:

Contributing to Mesa-Geo#

Want to join the team or just curious about what is happening with Mesa & Mesa-Geo? You can…

  • Join our Matrix chat room in which questions, issues, and ideas can be (informally) discussed.

  • Come to a monthly dev session (you can find dev session times, agendas and notes at Mesa discussions.

  • Just check out the code at GitHub.

If you run into an issue, please file a ticket for us to discuss. If possible, follow up with a pull request.

If you would like to add a feature, please reach out via ticket or join a dev session (see Mesa discussions). A feature is most likely to be added if you build it!

Don’t forget to check out the Contributors guide.

Citing Mesa-Geo#

To cite Mesa-Geo in your publication, you can use the CITATION.bib.

Indices and tables#