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
tutorial:incorporating_iterations_into_a_model [2016/11/23 16:46]
isabella
tutorial:incorporating_iterations_into_a_model [2017/01/25 17:56] (current)
francisco [What will you learn?]
Line 31: Line 31:
 Now assign a number to each //[[:Number Map]]// and then connect //[[:Load Map]]// and //[[:Load Categorical Map]]// to them.{{ :​tutorial:​inc._it._model_2.jpg |}} Now assign a number to each //[[:Number Map]]// and then connect //[[:Load Map]]// and //[[:Load Categorical Map]]// to them.{{ :​tutorial:​inc._it._model_2.jpg |}}
  
-Load ''​amazon_states.tif''​ using the //[[:Load Categorical Map]]// and "​Brazilian_amazon_landscape.tif"​ with //[[:Load Map]]//. Add a //[[:Number Value]]// from Map Algebra Supplementary tab inside ​the //​[[:​Calculate Map]]//, assign "​1"​ to it and write the following equation: \\+Load ''​amazon_states.tif''​ using the //[[:Load Categorical Map]]// and "​Brazilian_amazon_landscape.tif"​ with //[[:Load Map]]//. Add a //[[:Number Value]]// from hook tool in the //​[[:​Calculate Map]]//, assign "​1"​ to it and write the following equation: \\
 \\ **if i1 = v1 and i2 = 2 then 1 else null** \\ **if i1 = v1 and i2 = 2 then 1 else null**
  
Line 40: Line 40:
 {{ :​tutorial:​inc._it._model_4.jpg|}}Grab the container //​[[:​Repeat]]//​ from the Control tab and place it on the sketch. Drag //​[[:​Calculate Map]]// into it. It will automatically resize to envelop //​[[:​Calculate Map]]//. 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]]//. {{ :​tutorial:​inc._it._model_4.jpg|}}Grab the container //​[[:​Repeat]]//​ from the Control tab and place it on the sketch. Drag //​[[:​Calculate Map]]// into it. It will automatically resize to envelop //​[[:​Calculate Map]]//. 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]]//.
  
-Open //​[[:​Repeat]]//​ with the Edit Functor tool and insert "​9"​.{{:​tutorial:​inc._it._model_5.jpg?​300 |}}+Open //​[[:​Repeat]]//​ with the Edit Functor tool and insert "​9"​. 
 + 
 +{{:​tutorial:​inc._it._model_5.jpg?​300 |}}
 \\ \\
 \\ \\
Line 52: Line 54:
 Now you need to sum all cells that represent forest. Note that the output is a binary map with only ones and nulls, the latter is represented by zero. Next, use //​[[:​Extract Map Attributes]]//​ (Map Algebra tab) to extract the sum of non-null cells. ​ This functor produces as output a table with   ​[[:​extract_map_attributes#​Notes|these map attributes]].{{ :​tutorial:​inc._it._model_6.jpg |}} Now you need to sum all cells that represent forest. Note that the output is a binary map with only ones and nulls, the latter is represented by zero. Next, use //​[[:​Extract Map Attributes]]//​ (Map Algebra tab) to extract the sum of non-null cells. ​ This functor produces as output a table with   ​[[:​extract_map_attributes#​Notes|these map attributes]].{{ :​tutorial:​inc._it._model_6.jpg |}}
  
-The area extent is the sum of non-null cells (field 9) multiplied by the cell area in hectares (field 7). You need to add one //​[[:​Calculate Value]]//, located in the Table tab, to perform this calculation. Also, drag one //[[:Number Table]]// ​into it (from Map Algebra Supplementary tab), which will receive the attribute table output from //​[[:​Extract Map Attributes]]//​. You need to enter "​1"​ to assign an identifier for this table. Finally, write:\\ **t1[7]*t1[9]**\\ (cell area (in hectares) * sum of the values (excluding null cells))+The area extent is the sum of non-null cells (field 9) multiplied by the cell area in hectares (field 7). You need to add one //​[[:​Calculate Value]]//, located in the Table tab, to perform this calculation. Also, select ​one //[[:Number Table]]// ​clicking in Create a hook (magnet iconinside functor action bar, which will receive the attribute table output from //​[[:​Extract Map Attributes]]//​. You need to enter "​1"​ to assign an identifier for this table. Finally, write:\\ **t1[7]*t1[9]**\\ (cell area (in hectares) * sum of the values (excluding null cells))
  
 <note tip>​**TIP**:​ You can replace the\\ <note tip>​**TIP**:​ You can replace the\\
Line 71: Line 73:
 Now you need to fill in a table in order to store the area calculated for each state. The functor [[:​set_lookup_table_value|Set Lookup Table Value]] updates a lookup table placing a value to a position defined by a key. To fill in the entire lookup table, you need to develop a loop that enables this functor to browse through the lookup 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. Now you need to fill in a table in order to store the area calculated for each state. The functor [[:​set_lookup_table_value|Set Lookup Table Value]] updates a lookup table placing a value to a position defined by a key. To fill in the entire lookup table, you need to develop a loop that enables this functor to browse through the lookup 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 Lookup Table]]// and drag it into //​[[:​Repeat]]//​. Also drag //[[:Set Lookup Table Value]]// from the Table tab.+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 Lookup Table]]// and drag it into //​[[:​Repeat]]//​. Also drag //[[:Set Lookup Table Value]]// from the Lookup ​Table tab.
  
 {{ :​tutorial:​inc._it._model_9.jpg |}} {{ :​tutorial:​inc._it._model_9.jpg |}}
Line 89: Line 91:
 \\ \\
 \\ \\
-Still, you need to connect the output from //​[[:​Calculate Value]]// to the **input** port of //[[:Set Lookup Table Value]]//​. ​ 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]]//.{{:​tutorial:​inc._it._model_13.jpg|}} +Still, you need to connect the output from //​[[:​Calculate Value]]// to the **input** port of //[[:Set Lookup Table Value]]//​. ​\\ 
-{{ :​tutorial:​inc._it._model_14.jpg|}}\\\+{{:​tutorial:​inc._it._model_13.jpg|}}\\ 
 +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]]//​. 
 +{{ :​tutorial:​inc._it._model_14.jpg|}} 
 \\ \\
 \\ \\
Line 101: Line 106:
 \\ \\
 \\ \\
 +\\
 +\\
 +\\
 +\\
 +
 Click on the layout tool Left to Right and your model will look like the one below.\\ Click on the layout tool Left to Right and your model will look like the one below.\\
 \\ \\
 +
 {{ :​tutorial:​inc._it._model_15.jpg |}} {{ :​tutorial:​inc._it._model_15.jpg |}}
  
Line 110: Line 121:
 <note tip>​**TIP**:​ If //[[:Save Map]]// is placed inside //​[[:​Repeat]]//,​ it will save a file per time step and a digit representing the time step will be added to the end of the file name.</​note>​ <note tip>​**TIP**:​ If //[[:Save Map]]// is placed inside //​[[:​Repeat]]//,​ it will save a file per time step and a digit representing the time step will be added to the end of the file name.</​note>​
  
-At a last step, open //[[:Set Lookup Table Value]]// with the Edit Functor Ports. Click on  ​{{ :​tutorial:​inc._it._model_16.jpg |}}+{{ :​tutorial:​inc._it._model_16.jpg |}}
  
-Test the model integrity, save it and if everything is O.K., click on the run button. This may take a short while. ​+Save it and if everything is O.K., click on the run button. This may take a short while. ​
 {{ :​tutorial:​inc._it._model_17.jpg |}} {{ :​tutorial:​inc._it._model_17.jpg |}}
  
-Go to //[[:Set Lookup Table Value]]//, open it with Edit Functor Ports and click with the right button on **Updated Table** to view the result. Also make a chart clicking on the chart button (bottom left).+Go to //[[:Set Lookup Table Value]]//, open inspect functor into functor action bar and click to inspect ​the output port **Updated Table** ​and run the model again to view the result. Also make a chart clicking on the chart button (bottom left).
  
-{{:​tutorial:​inc._it._model_19.jpg|}} {{:​tutorial:​inc._it._model_19_2.jpg|}}+{{:​tutorial:​inc._it._model_19.jpg|}}{{:​tutorial:​inc._it._model_19_2.jpg|}} ​
  
 These are the areal extents of the remaining Amazon forest in hectares per state. These are the areal extents of the remaining Amazon forest in hectares per state.
Line 125: Line 136:
 __You have successfully completed the two introductory lessons__. Another way to solve the query of this lesson is through the use of a subset of Region functors. This will be the topic of the next lesson. __You have successfully completed the two introductory lessons__. Another way to solve the query of this lesson is through the use of a subset of Region functors. This will be the topic of the next lesson.
  
-[[tutorial:​using_the_concept_of_region| Next Lesson]]+[[tutorial:​using_the_concept_of_region|Next ​lesson]]