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
lesson_14 [2020/02/13 13:13]
argemiro
lesson_14 [2020/02/20 17:43] (current)
argemiro
Line 1: Line 1:
 {{ :​logo_logo.png?​400 |}} {{ :​logo_logo.png?​400 |}}
 \\ \\
-=====LESSON 14: Using "​For"​ to make successive calculations=====  ​+=====  LESSON 14: Using "​For ​Each Category"​ and "​Region Manager" to works with the concept of region  ​===== 
 + 
 + 
 +==== What will you learn? ==== 
 +  
 +  
 + 
 +  * How to use the concept of Regions 
 +  * Functors: \\ - //[[:Region Manager]]//​\\ - //[[:For Each Category]]//​ 
 + 
 +{{ :​tutorial:​region1.jpg|}}\\
 \\ \\
-In this lesson we will calculate ​the biomass ​of the expanded Legal Amazon Protected Areas per yearFor this, we will use: +This subset of functors permits division of a map into several regional maps, which can be input for separate models or submodels, whose parameters are customized for each map’s region. Let’s adapt the model ''​Calc_forest_remaining_extent_per_state''​ (You can find this model in the folder: ''​\Guidebook_Dinamica_5\Models\using_concept_of_region''​) to use the concept ​of regions. First open the Region Tab in the library window.\\
 \\ \\
-  * The protected areas map in the year 2000 ''​Guidebook_Dinamica_5/​Database/​Protected_areas/​protected_areas_2000.tif''​ 
-  * The protected areas map in the year 2006 ''​Guidebook_Dinamica_5/​Database/​Protected_areas/​protected_areas_2006.tif''​ 
-  * The Legal Amazon Biomass map ''​Guidebook_Dinamica_5/​Database/​biomass/​biomass.tif''​ 
 \\ \\
-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. 
 \\ \\
 +These functors can be combined to produce regional maps and submodels, as well as to merge the regional maps into a single map after a processing is performed. In this lesson you will learn how to retrieve the area of the remaining forest for each state; as a result each regional map will correspond to a state area. Open the model the model ''​Calc_forest_remaining_extent_per_state''​. Select the functors within the container //​[[:​Repeat]]//​ with the Hand tool and then drag them out of //​[[:​Repeat]]//​.\\
 \\ \\
-{{ :14a.png?​200 ​|}}+ {{:tutorial:​inc._it._model_17.jpg|}}{{:​tutorial:​region2.jpg|}} 
 + 
 + 
 + 
 +<note tip>​**TIP**:​ Use Crtl + right button to keep continually selecting the functors, this will avoid selecting //​[[:​Repeat]]//​ as well. The functor //​[[:​Repeat]]//​ will shrink. 
 +</​note>​ 
 + 
 +Delete the container //​[[:​Repeat]]//​ and place the containers //[[:Region Manager]]// from the Region tab and //[[:For Each Category]]//​ from the Control tab. Place the latter within the first.{{ :​tutorial:​region3.jpg |}}\\
 \\ \\
 +//[[:Region Manager]]// manages the regionalization process, while //[[:For Each Category]]//​ replaces the //​[[:​Repeat]]//​ making the model iterate for each category present in the categorical map used to define the regions, in this case the map of the Brazilian Amazon states.
 +
 +<​note>​While //​[[:​Repeat]]//​ iterates sequentially,​ //[[:For Each Category]]//​ iterates according to the map categories, which do not need to be sequential.</​note>​
 +
 +Now select all functors, except the input and output maps, and place them within //[[:For Each Category]]//​.
 +
 +<note tip>​**TIP**:​ it is easier to select everything to be placed within //[[:For Each Category]]//​ and then to take only //[[:Load Map]]// and //[[:Save Map]]// out of it.</​note>  ​
 +
 +Now break the link between //[[:Load Categorical Map]]// and //​[[:​Calculate Map]]// (use the Remove Items tool and click on the arrow connecting both functors); next, connect the first to //[[:Region Manager]]// and to //[[:For Each Category]]//​ too. This map will control the regionalization process splitting the other maps into several regions according to its cell classes or categories through the functor //​[[:​Regionalize Map]]//. Drag this functor and place it within //[[:For Each Category]]//,​ break the link between Map ''​brazilian_amazon_lanscape.tif''​ (You can find this map in the folder: ''​\Guidebook_Dinamica_5\Database\using_concept_of_region''​) and //​[[:​Calculate Map]]// and finally connect the first to //​[[:​Regionalize Map]]//​.  ​
 +
 +{{ :​tutorial:​region6.jpg |}}\\
 \\ \\
-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 ValueConnect ​the **Load Map** and **Load Categorical Map** to the **Number Map** functors+Note that there are two //[[:Number Map]]// functors disconnected within //[[:Calculate Map]]//You do not need the Map #2 and Value #1 anymore, so delete themNow connect //​[[:​Regionalize Map]]// ​to Map #1Open the [[:Save  
 +Lookup Table]] functor ​and change the file name to ''​remaining_forest_extent_per_state''​Make sure it will be saved into folder ''​\Guidebook_Dinamica_5\Models\using_concept_of_region''​\\
 \\ \\
 +{{ :​tutorial:​region7.jpg |}}\\
 \\ \\
-{{ :​14b.png?​400 |}} 
 \\ \\
 +At a last step, you will need to modify the //​[[:​Calculate Map]]//. Open it with Edit Functor. Write: **if i1 = 2 then 1 else null**. Remember that "​2"​ represents forest.\\
 \\ \\
-Now, write the following code inside of Calculate Map to calculate the biomass in expanded protected areas (2000-2006) using the Number Map functors +{{ :tutorial:​region5.jpg |}}\\
 \\ \\
-    if not isNull(i2) ​and isNull(i3) then +Finally save the model as a new file ''​calc_forest_remaining_extent_per_state_using_subregions''​ into folder ''​\Guidebook_Dinamica_5\Database\using_concept_of_region'' ​and run it.\\ 
-        i1 +
-    else  +
-        null+
 \\ \\
-{{ :14c.png?400 |}}+Can you explain how this model works?\\
 \\ \\
 +Observe that you did not need to segregate the information per state in //​[[:​Calculate Map]]// because //​[[:​Regionalize Map]]// already did it.
 + 
 +<​note>​The region approach is a helpful way to break the map into several subsets either to customize a submodel, for example to run with different parameters per country, state or county, or to optimize the memory usage as the model does not need to handle all the map cells for a specific calculation or processing, but only the cells selected from a region per time</​note>​
 \\ \\
-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 **Extract map attributes** and connect Calculate Map to it. 
 \\ \\
 +===Congratulations,​ you have successfully completed this lesson!===
 \\ \\
-{{ :​14d.png?​400 ​|}}+☞[[lesson_15|Next Lesson]]
 \\ \\
-\\ +[[:guidebook_startBack to Guidebook Start]]
-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” 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.  +
-\\ +
-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. +
-\\ +
-\\ +
-{{ :​14e.png?​400 |}} +
-\\ +
-\\ +
-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 +
-\\ +
-\\ +
-{{ :14f.png?​400 ​|}} +
-\\ +
-\\ +
-<note tip>TIP: You can copy an equation from a text editor (using Ctrl+C) and paste it in the equation box (using Ctrl+V).</​note>​ +
-\\ +
-\\ +
-Grab and place on the sketch one Set Lookup Table Value Functor to insert the calculate values into a lookup table. It is important to pay attention to add correctly the key to the line in which the value will be inserted. +
-\\ +
-\\ +
-{{ :​14g.png?​400 |}} +
-\\ +
-\\ +
-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 ''​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:  +
-\\ +
-\\ +
-{{ :​14h.png?​600 |}} +
-\\ +
-\\ +
-Now, click on eye button of “Save Lookup Table” to see the result. This functor output is table that looks like this: +
-\\ +
-\\ +
-{{ :​14i.png?​500 |}} +
-\\ +
-\\ +
-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. +
-\\ +
-Grab the container Repeat from the Control tab and place it on the sketch. Drag the previous model into it:  +
-{{ :​13_02a.png?​600 |}} +
- +
-\\ +
-Double-click the For container and in the window that opens enter the values 1 as the initial step and 3 as the final step: +
-\\ +
-\\ +
-{{ :​13_02b.png?​600 | +
-\\}} +
-The Step functor associates to the enveloping container passes to Calculate Map the current step (1 to 3, 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.  +
-\\ +
-\\ +
-Now you need to fill in a table in order to store the area calculated for each category. To close this loop, you will need a functor that is key to the development of dynamic models.  +
- +
-Mark the eye button at the top of “Save Table” to viewer the results hereafter. \\ \\ +
- +
-**Save and run the model!** ​ \\ \\ +
- +
-**The final result will be 3 biomass maps and 3 tables (one for each category).** +
- +
-Congratulations,​ you have successfully completed this lesson! Now let’s move to the **next lesson:** [[lesson_15|LESSON 15: Using "​while" ​to make successive calculations]] +
- +
- +
- +