LESSON 6: Implementing a simple map algebra on Dinamica EGO

In this lesson we would like to demonstrate how to use Dinamica EGO in a very simple way: just converting the values of Belo Horizonte temperature map. We will transform it from Celsius into Fahrenheit.

Which Functors will you use in this lesson?
• Functors: Load Map, Calculate Map and Save Map
Now let us move forward and learn about a very important functor to work with maps: Calculate Map. This functor is used for map algebra: to combine and process maps, tables and constants. Inside Calculate Map it is possible to write expressions that can include arithmetic, logical and conditional elements.
Let's go! Click on the Input/output tab, grab and place on the sketch a Load Map and open the air_temperature.tiff file. Next, click on the Map Algebra tab, grab and place on the sketch one Calculate Map.

TIP: Calculate Map as a container, it mens does not function by itself. There is a need to add supplementary functors to it.

Click in the hook tool to create a hook functor with Number Map inside the Calculate Map. The container will resize to accommodate the Number Map. For this, click on the Number Map with the Functor Editor tool and enter “1” (do not write the quotation marks). This is a number identifier for a map and will be represented within the equation box as i1 (input 1).

TIP: Each map processed by this container will be represented by the Number Map functor. You can enter other maps by adding more Number Map functors, but each one must have a unique number identifier.

Now you can connect the functor Load Map to the Number Map. Use the connect tool (the arrow icon) to establish the connections:
Open the Calculate Map container by grabbing the Edit Functor and clicking on it. Note that map #1 is represented by i1. The Calculate Map enables the formulation of various algebraic and logic equations containing maps, tables and constants. Besides writing the equation, there are two parameters that must be set: The Cell Type and the Null Value. You will always find these parameters in functors that produce maps as output. The default is “Signed 32 Bit Integer”, but you can use “IEEE 754 32 Bit Real” to represent fractional numbers.

TIP: Try to use always the most economical representation for data cell type to save memory. If you are not sure about the numeric range of the output, use real number representation.

Now, let’s write a simple equation to convert the Belo Horizonte temperature in Celsius into Fahrenheit:
i1 * 1.8 + 32 or Belo Horizonte Temperature * 1.8 + 32

Although you won’t need it in this lesson, you might set the null value by first turning on the Null Value flag on the Load Map and then setting its value to “0”.

Click on the Input/output tab, grab and place on the sketch one Save Map and browse to the Dinamica EGO\Guidebook Dinamica_4\Models\Set_1\basics\1_load_save and write the name file (“temperature_fahrenheit.tif”).

TIP: You can rearrange the model by clicking on the button execute layout. Note that the model will be organized from left to right or left to bottom according to its execution sequence.

The final model will look like this:
Save and run the model by clicking on the run model script button on the top toolbar. The map will look like this: