Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
lesson_14 [2019/08/30 15:00]
argemiro
lesson_14 [2020/02/18 00:26]
argemiro
Line 1: Line 1:
-{{ :logo_guidebook1.jpg?400 |}}+{{ :logo_logo.png?400 |}}
 \\ \\
 =====LESSON 14: Using "​For"​ to make successive calculations=====  ​ =====LESSON 14: Using "​For"​ to make successive calculations=====  ​
 \\ \\
 +In this lesson we will calculate the biomass of the expanded Legal Amazon Protected Areas per year. For this, we will use: 
 \\ \\
- +  ​* The protected areas map in the year 2000 ''​Guidebook_Dinamica_5/​Database/​Protected_areas/​protected_areas_2000.tif''​ 
-==== What will you learn? ==== +  * The protected areas map in the year 2006 ''​Guidebook_Dinamica_5/​Database/​Protected_areas/​protected_areas_2006.tif''​ 
-Thus, it was not necessary to construct a model for each time transition. +  * The Legal Amazon Biomass map ''​Guidebook_Dinamica_5/​Database/​biomass/​biomass.tif''​
-\\ +
-\\ +
-**The intent of this exercise** is calculate the biomass of the expanded Legal Amazon Protected Areas every year.  +
- +
-\\ +
-\\ +
-For this, we will use:  +
-  ​* The protected areas map in the year 2000 i.e. (Guidebook Dinamica_4/​Database/​Protected_areas/​protected_areas_2000.tif) +
-  * The protected areas map in the year 2006 (Guidebook Dinamica_4/​Database/​Protected_areas/​protected_areas_2006.tif) +
-  * The Legal Amazon Biomass map (Guidebook Dinamica_4/​Database/​biomass/​biomass.tif+
-\\+
 \\ \\
-Initially, we must open all the files that will be used. Click on the Input/​output tab and from the library window, grab two Load Categorical Map functors and place on the sketch. Double click each Load Categorical Map Functor ​and open the Protected ​areas map files for 2000 and 2006. Also grab and place one Load Map functor ​and open the Legal Amazon Biomass map.+Initially, we must open all the files that will be used. Grab two **Load Categorical Map** functors and place them on the sketch. Double click each **Load Categorical Map** and open the protected ​areas map files for 2000 and 2006. Also grab and place one **Load Map** and open the Legal Amazon Biomass map.
 \\ \\
 \\ \\
Line 25: Line 15:
 \\ \\
 \\ \\
-Grab and place on the sketch one Calculate Map Container. Click in the hook tool to insert three Number ​Map functor. Assign a numbers ​to each Number Value. Connect the Load Map and Load Categorical Map to Number Map functors. ​+Grab and place on the sketch one **Calculate Map**. Click on the hook tool to insert three **Number ​Maps**. Assign a number ​to each Number Value. Connect the **Load Map** and **Load Categorical Map** to the **Number Map** functors. ​
 \\ \\
 \\ \\
Line 31: Line 21:
 \\ \\
 \\ \\
-Now, write the following ​equation ​inside ​to Calculate Map to calculate biomass in expanded protected areas (2000-2006) using the Number Map functors:  ​+Now, write the following ​code inside ​of Calculate Map to calculate ​the biomass in expanded protected areas (2000-2006) using the Number Map functors:  ​
 \\ \\
-if not isNull(i2) and isNull(i3) then +    ​if not isNull(i2) and isNull(i3) then 
-    i1 +        i1 
-else  +    else  
-    null+        null
 \\ \\
 {{ :​14c.png?​400 |}} {{ :​14c.png?​400 |}}
 \\ \\
 \\ \\
-Click on the Input/​output from the library window, grab and place on the sketch ​the Save map functor ​and connect ​the functor ​Calculate Map and Save Table. Open Save Map, browse to the Guidebook Dinamica_4/​Models/​Set_3/​basics/​3_calculate map4/ and  write the name file (Suggestion: ​expanded protected areas biomass.tif). +Select ​the IEEE 754 32 bit real as the data cell type. Grab and place on the sketch ​a **Save map** and connect ​**Calculate Map** to it. Open **Save Map**, browse to ''​Guidebook_Dinamica_5/​Models/​Set_3/​basics/​3_calculate map4/'' ​and chose a file name (e.g. expanded protected areas biomass.tif). 
-Grab and place on the sketch ​the Extract map attributes ​functor ​and Connect the functor ​Calculate Map to Extract map attributes.+Grab and place on the sketch ​**Extract map attributes** and connect ​Calculate Map to it.
 \\ \\
 \\ \\
Line 48: Line 38:
 \\ \\
 \\ \\
-Now, grab and place on the sketch one Calculate value functor ​to . Click in the hook tool to create three hook functors inside the Calculate Map: one Number table and two Number value functors. Click on the Number value functor and number table with the Functor Editor tool and enter “1”, “2” ​and “3”, respectively. This is a number identifier for each element and will be represented within the equation box as v1 (value 1), v2 (value 2) and t1(table 1) respectively. ​+Now, grab and place on the sketch one Calculate value functor. Click on the hook tool to create three hook functors inside the Calculate Map: one Number table and two Number value functors. Click on the Number value functor and number table with the Functor Editor tool and enter “1”, “2”“3”, respectively. This is a number identifier for each element and will be represented within the equation box as v1 (value 1), v2 (value 2) and t1 (table 1) respectively. ​
 \\ \\
 Grab and place on the sketch two Real value functors to insert a double precision real constant: A CO2 conversion factor (3.666) and a Carbon Content (0.47). Connect the Extract map attributes Map to Number Table and the two Real Value functors to Number Value Functor inside the Calculate Value. Grab and place on the sketch two Real value functors to insert a double precision real constant: A CO2 conversion factor (3.666) and a Carbon Content (0.47). Connect the Extract map attributes Map to Number Table and the two Real Value functors to Number Value Functor inside the Calculate Value.
Line 57: Line 47:
 \\ \\
 Now, write the following equation inside to Calculate Map to calculate CO2 content in expanded protected areas (2000-2006):​ \\ Now, write the following equation inside to Calculate Map to calculate CO2 content in expanded protected areas (2000-2006):​ \\
-t1["​cellSum"​] * t1["​cellArea"​] * v1 * v2+\\ 
 +    ​t1["​cellSum"​] * t1["​cellArea"​] * v1 * v2
 \\ \\
 \\ \\
Line 72: Line 63:
 \\ \\
 \\ \\
-Click on the Input/​output from the library window, grab and place on the sketch the Save Lookup Table functor. ​Connect the Set Lookup Table Value to Save Lookup Table. Open Save Table, browse to the C:/​Users/​at-lf/​Documents/​GuideBook Dinamica/​Guidebook Dinamica_4/​Models/​Set_3/​basics/​3_calculate map4/ and  write the name file (expanded protected areas co2.csv). \\ +Click on the Input/​output from the library window, grab and place on the sketch the Save Lookup Table functor. ​
-Mark the eye button at the top of “Save Table” to viewer the results hereafter. Save and run the model!+
 \\ \\
-Click on the layout tool Left to Right and your final model will look like the one below: ​+Connect the Set Lookup Table Value to Save Lookup Table. Open Save Table, browse to ''​Guidebook_Dinamica_5/​Models/​Set_3/​basics/​3_calculate map4/ and  write the name file (expanded protected areas co2.csv).  
 +\\ 
 +Save and run the model. 
 +\\ 
 +Click on the Execute Layout ​and your final model will look like the one below: ​
 \\ \\
 \\ \\
Line 87: Line 81:
 \\ \\
 \\ \\
-**Now, the input map is produced for each iteration, ​calculating ​Map produces ​a map containing the remaining forest for each category.**+Now, an output ​map and an output table are produced for each iteration, ​Calculate ​Map outputs ​a map containing the remaining forest for each category ​of protected areas (1, 2, 3 or 4).
 \\ \\
 +Grab the container Repeat from the Control tab and place it on the sketch. Drag the previous model into it: 
 +{{ :​13_02a.png?​600 |}}
 +
 \\ \\
-Grab the container ​Repeat from the Control tab and place it on the sketch. Drag the previously model into it. It will automatically resize to envelop Calculate Map. +Double-click ​the For container and in the window that opens enter the values 1 as the initial step and 4 as the final step:
 \\ \\
 \\ \\
-Then add the functor Step into Repeat. Open Calculate Map by clicking on its top left icon and connect Step to Value port of Number Value. The Step functor ​self-associates to the enveloping container ​and passes to Calculate Map the current step. Thus for each iteration Calculate Map produces a map containing the current Amazon Protected areas for each time step. +{{ :13_02b.png?600 | 
 +\\}} 
 +The Step functor associates to the enveloping container passes to Calculate Map the current step (1 to 4, that refer to each type of protected area). Thus for each iteration Calculate Map produces a map containing the current Amazon Protected areas for each time step. 
 \\ \\
 \\ \\
-{{ :​14j.png?​600 |}} +Mark the eye button ​at the top of “Save ​Table” and "Save Map" ​to viewer ​the results hereafter: \\ \\
-\\ +
-\\ +
-Now you need to fill in a table in order to store the area calculated for each category. The functor Set Table Cell Value updates a table placing a value to a position defined by a key. To fill in the entire table, you need to develop a loop that enables this functor to browse through the table. To close this loop, you will need a functor that is key to the development of dynamic models.  +
-\\ +
-\\ +
-Here we introduce the concept of Mux functor. A Mux functor can be a map, a categorical map, a lookup table, a table or a value. Look at the Control tab to find Mux Table and drag it into Repeat. Also drag Set Table Cell Value from the Table tab. +
-\\ +
-\\ +
-{{ :​14k.png?​400 |}} +
-\\ +
-\\ +
-Now, click on the Mux Table with the Edit Functor Ports. Every Mux functor has two input ports. In the first iteration, it reads the input from the Initial port; thereafter it receives the data from the model step through the port Feedback. This process allows data to be updated by the model, thus becoming dynamic. Hence this functor is key to the incorporation ​of feedback into a dynamic model.  +
-\\ +
-\\ +
-{{ :​14l.png?​400 |}} +
-\\ +
-\\ +
-Also open Set Table Cell Value with the Edit Functor Ports. This functor receives a table that will be updated with a value placed in a position defined by a key. So you need to connect table output from the functor Mux Lookup table to the input port of Set Table Cell Value. +
-\\ +
-\\ +
-{{ :​14m.png?​400 |}} +
-\\ +
-\\ +
-Again, let’s connect the output from Set Table Cell Value to Mux Table. When a connection has two or more options, the Edit Functor Ports window opens automatically. You have to choose the port Feedback.  +
-\\ +
-\\ +
-{{ :​14n.png?​500 |}} +
-\\ +
-\\ +
-Now click on the port Initial with the right mouse button. You will open a table editor. In this case you just need to enter “0“ and “0” as Key and Value for the first table record, and then save these inputs using the ”+” button. \\ +
-Still, you need to connect the output from Calculate Value to the input port of Set Lookup Table Value.  +
-\\ +
-\\ +
-{{ :​14o.png?​500 |}} +
-\\ +
-\\ +
-The Edit Functor Ports window pops up because there are two options. Connect the arrow to the port Value; the key comes from the current model step via the connection of Step to Set Lookup Table Value. \\ +
-Observe that the feedback connection is between Mux Lookup Table and Set Calculate Value. As a last step, you need to save the lookup table into a file. Drag the functor ​Save Lookup Table from the Input/​Output tab. Connect Set Lookup Table Value to it and edit the name for the CSV file.  +
-\\ +
-\\ +
-{{ :14p.png?500 |}} +
-\\ +
-\\ +
-<note tip>TIP: Although Suffix Digits is “2” by default, the file name won’t have a suffix because it will be saved after Repeat is done.</​note>​ +
-\\ +
-\\ +
-As a last step, you need to save the lookup table into a file. Drag the functor Save Lookup Table from the Input/​Output tab. Connect Set Lookup Table Value to it and edit the name for the CSV file. +
  
-Mark the eye button at the top of “Save Table” to viewer the results hereafter. \\ \\ 
 **Save and run the model!** ​ \\ \\ **Save and run the model!** ​ \\ \\
-Click on the layout tool Left to Right and your final model will look like the one below:  + 
-\\ +The results found will be:  
-\\ + 
-{{ :14q.png?600 |}} +**4 maps:** The biomass map for each type of protected area in the Legal Amazon
-\\ + 
-\\ +**4 Tables:** The biomass table for each type of protected area in the Legal Amazon. 
-Now, click on eye button ​of “Save Lookup Table” to see the resultThis functor output is table that looks like this:+
 \\ \\
 \\ \\
-{{ :​14r.png?​600 |}}+===Congratulations,​ you have successfully completed this lesson!===
 \\ \\
 +☞[[lesson_15|Next Lesson]]
 \\ \\
 +☞[[:​guidebook_start| Back to Guidebook Start]]