This is an old revision of the document!


PHP's gd library is missing or unable to create PNG images



LESSON 5: Implementing simple map algebra on Dinamica EGO


In this lesson we would like to demonstrate how to use Dinamica EGO to convert the values of Belo Horizonte temperature map from Celsius into Fahrenheit scale.

Which Functors will you use in this lesson? Load Map, Calculate Map and Save Map

The Calculate Map 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.tif file used in the previous lesson. Next, click on the Map Algebra tab, grab and place on the sketch one Calculate Map and one Save Map functor. In the Save Map functor browse to Guidebook_Dinamica_5\Models\Set_1\basics\1_load_save and write the file name temperature_fahrenheit.tif.

Click on the hook tool to create a hook functor with Number Map inside the Calculate Map if there isn't one already. The container will resize to accommodate the Number Map. Double click on the Number Map and enter “1” (do not write the quotation marks) as the Map Number. This is a number identifier for a map and will be represented within the equation box as i1 (input 1).



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, each one having an unique number identifier.



Now you can connect the functor Load Map to the Number Map. Use the connect tool (the lightning icon) to establish the connections. Note that the connection must be established between the Load Map functor and the Number Map inside of Calculate Map and not to Calculate Map itself.



Open Calculate Map by double 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 set to “Signed 32 Bit Integer”, but you can use “IEEE 754 32 Bit Real” to represent fractional numbers.

Always aim at 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 the Celsius scale to Fahrenheit:

i1 * 1.8 + 32


where i1 represents the Belo Horizonte Temperature map.

Despite the fact that the expression is presented using the alias of the functor from where the corresponding map is coming, you have to specify the map just typing the identifier i1. That identifier will be automatically replaced by the corresponding map alias. Another easy option to enter the map identifier is to click on the corresponding map name on the list above the image expression.

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





You can rearrange the model on the sketch by clicking on the Execute Layout button.



The final model will look like this:


Save and run the model by clicking on the run model script button on the main toolbar. After adjusting limits and choosing a suitable transformation, as shown in the previous lesson, the map will look like this:



Congratulations, you have successfully completed this lesson!

Next Lesson
Back to Guidebook Start