DINAMICA EGO (Environment for Geoprocessing Objects) ( is a spatially explicit, high performance, modeling freeware used by many scholars around the world. Dinamica EGO modeling platform presents outstanding possibilities for the design of spatial models, from analytical to the very complex dynamic ones. These models can ultimately include nested iterations, dynamic feedbacks, multi-region, multi-scale and multi-scale approach, manipulation and algebraic combination of data in several formats - such as maps, tables, matrices and constants - decision processes for bifurcating and joining execution pipelines, and a series of complex spatial algorithms for the analysis and simulation of space-time phenomena.

Dinamica EGO has been applied to numerous environmental studies, including the modeling of deforestation in the Amazon from local to basin-wide scales, urban dynamics, logging and other forestry rents in the Amazon, cattle ranching, forest fires, river regime, biodiversity, and agricultural expansion in Brazil.
See a list of publications at

What will you learn?

  • What is Dinamica EGO?
  • How is this guidebook is structured?
  • Where are the data and models used in the lessons?

Welcome to Dinamica EGO!

The software environment, written in C++ and Java, holds a series of algorithms called functors. Each functor performs an operation. To date, we have implemented the most common spatial analysis algorithms available in commercial GIS (Geographic Information System), plus a series of algorithms especially designed for spatial simulations, including transition functions, calibration and validation methods.

These functors are sequenced to establish data flow in the form of graphs. Through the graphical interface one can create models by simply dragging and connecting functors via their ports, which represent connectors to types of data, such as maps, tables, matrices, mathematical expressions and constants. Functors can be enveloped by “containers”, a special type of functor that is used, for example, to execute iterations or process data from specific regions of a map. Thus models can be designed as a diagram and their executions follow a data flow chain. This friendly interface enables designing from simple to very complex spatial models that are saved in a script language in XML format or EGO programming language.

In sum, Dinamica EGO software favors simplicity, flexibility and top performance, optimizing speed and computer resources, such as memory and parallel processing. Most of the algorithms are designed to take advantage of the multicore processor architecture, from version 5 onwards the software architecture is fully parallel. The parallel execution system uses a fixed number of execution threads (called workers) with task stealing to provide load balancing and increase the flexibility of how parallel tasks can be designed. In theory, all model components can run in parallel, including independent functors, independent loop steps, and pieces of map. Dinamica EGO handles large raster maps that are manipulated in parallel even when they are too big to fit in memory. In addition, Dinamica EGO provides online coupling with R and Python.

Modular Guidebook Structure

This guidebook introduces the user to the vast possibilities of Dinamica EGO for the design of space-time models that can fully represent the complexity of various geographic phenomena. This Guidebook is modular in structure. Each module is divided into lessons or examples and is assigned to a particular level in a progressive series of steps:

MODULE I: Welcome to Dinamica EGO!

MODULE II: Working with maps

MODULE III: Working with tables

MODULE IV: Creating and using Submodels

MODULE V: Incorporating control structures into a model

MODULE VI: Advanced spatial analyses

MODULE VII: Additional Features

MODULE VIII: Additional Applications

This document contains internal links. Clicking on an internal link opens a Website. Links are in blue.

We hope you can learn how to use software and apply it to countless environmental applications.

Next Lesson

Back to Guidebook Start