Skip to content

DisSModel

Discrete Spatial Modeling framework for Python

DisSModel is a modular, production-ready Python framework for spatially explicit dynamic modeling. Developed by the LambdaGeo group at the Federal University of Maranhão (UFMA), it provides a unified environment for building Cellular Automata (CA) and System Dynamics (SysDyn) models.

Inspired by the TerraME framework, DisSModel brings the same modeling expressiveness to Python — replacing the TerraLib/Lua stack with GeoPandas, NumPy, and Salabim, while remaining fully interoperable with the broader Python data science ecosystem.

pip install dissmodel

Architecture

DisSModel is organized into five core modules designed for reproducibility and scalability:

Module Description
dissmodel.core Simulation clock and execution lifecycle powered by Salabim.
dissmodel.geo Spatial substrates — Dual-design (Vector + Raster) for flexible modeling.
dissmodel.executor (New) Standardized execution layer for CLI and Remote Workers.
dissmodel.io (New) Storage-agnostic I/O handling local files and MinIO/S3.
dissmodel.visualization Observer-based visualization — Chart, Map, RasterMap, display_inputs.

Dual Substrate Performance

The geo module provides two independent spatial substrates:

  • Vector substrate (geo.vector): Backed by GeoPandas. Ideal for irregular geometries and GIS joins.
  • Raster substrate (geo.raster): Backed by NumPy. Fully vectorized operations (up to 4,500× faster than vector at scale).
Feature Vector Raster
Data structure GeoDataFrame NumPy 2D array
Neighbourhood Queen / Rook (libpysal) Moore / Von Neumann (vectorized)
Best for GIS Interoperability Large grids / High performance

Quickstart: System Dynamics

from dissmodel.core import Environment
from examples.models.sysdyn import SIR
from dissmodel.visualization import Chart

env = Environment()
SIR(susceptible=9998, infected=2, recovered=0, contacts=6, probability=0.25)
Chart(show_legend=True)
env.run(30)

📦 Model Ecosystem

To keep the core framework lean, we maintain specialized libraries containing ready-to-use models. These are excellent starting points for your own research:

  • DisSModel-CA: A collection of Cellular Automata models including Game of Life, Forest Fire, and Growth models.
  • DisSModel-SysDyn: System Dynamics implementations such as SIR, Predator-Prey, and the Lorenz Attractor.

License

MIT © 2026 Sérgio Costa & Nerval Santos Junior — LambdaGeo/UFMA