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:using_subregions_in_a_simulation_model [2013/07/29 13:56]
juliana
tutorial:using_subregions_in_a_simulation_model [2020/02/18 23:09] (current)
argemiro
Line 2: Line 2:
  
  
-Load the model: ​simulate_deforestation_using_sub_regions.xml” ​from Examples\advanced\sub_regions\simulate_deforestation_using_sub_regions+Load the model: ​''​simulate_deforestation_using_sub_regions.egoml'' ​from ''​\Guidebook_Dinamica_5\Models\additional_resources_lucc\sub_regions\simulate_deforestation_using_sub_regions''​
  
 The Subregion set of functors are used to split a map into parts to process each subregion’s dataset separately, and then combine the results again (fig. 1). By making use of the subregion approach, you can define a sequence of operations that will be applied only to certain subregions or establish different parameters and coefficients for each subregion, modeling as a result the regional context that influences a particular phenomenon. The Subregion set of functors are used to split a map into parts to process each subregion’s dataset separately, and then combine the results again (fig. 1). By making use of the subregion approach, you can define a sequence of operations that will be applied only to certain subregions or establish different parameters and coefficients for each subregion, modeling as a result the regional context that influences a particular phenomenon.
Line 13: Line 13:
 {{ :​tutorial:​advanced_4.jpg |}} {{ :​tutorial:​advanced_4.jpg |}}
  
-In order to this, you need to slightly modify the simulation model of lesson 7. First, a specific calibration for each subregion should be performed. In the example above, transition matrices and a set of weights of evidence coefficients were calculated for each one of the map subregions. See models for calibrating different subregions in   “Examples\advanced\sub_regions\calibration.+In order to this, you need to slightly modify the simulation model of lesson 7. First, a specific calibration for each subregion should be performed. In the example above, transition matrices and a set of weights of evidence coefficients were calculated for each one of the map subregions. See models for calibrating different subregions in   ''​\Guidebook_Dinamica_5\Models\additional_resources_lucc\sub_regions\calibration''​.
  
-In the simulation model, one //Load Categorical Map// must be added. It will be responsible for loading the map with the subregions. ​+In the simulation model, one //[[:Load Categorical Map]]// must be added. It will be responsible for loading the map with the subregions. ​
  
 <note tip>​**TIP**:​ this must be a categorical map (in this example, a map of municipal limits). The area of each municipality is identified by its 6 digit code.  This code will identify the subregions and control the regionalization process.</​note>​ <note tip>​**TIP**:​ this must be a categorical map (in this example, a map of municipal limits). The area of each municipality is identified by its 6 digit code.  This code will identify the subregions and control the regionalization process.</​note>​
Line 22: Line 22:
  
  
-In this model, deforestation is simulated on an annual basis for each one of the municipalities. After that, the resulting maps are combined into a new land-use map that will be split again in the beginning of the next step. To ensure spatial continuity across subregions, some operations, such as the calculation of distance map to deforested cells using //Calc Distance Map//, are performed for the entire map. +In this model, deforestation is simulated on an annual basis for each one of the municipalities. After that, the resulting maps are combined into a new land-use map that will be split again in the beginning of the next step. To ensure spatial continuity across subregions, some operations, such as the calculation of distance map to deforested cells using //[[:Calc Distance Map]]//, are performed for the entire map. 
  
 {{ :​tutorial:​advanced_7.1.jpg |}} {{ :​tutorial:​advanced_7.1.jpg |}}
  
-A //Region Manager// is added outside of the main loop (//​Repeat//​). This container controls the creation and merging of subregions.+A //[[:Region Manager]]// is added outside of the main loop (//[[:Repeat]]//). This container controls the creation and merging of subregions.
  
 {{ :​tutorial:​advanced_8.jpg |}} {{ :​tutorial:​advanced_8.jpg |}}
  
-The container //For Each Category// also controls the subregion creation process. For each map category, //For Each Category// will repeat the sequence of functors within it. Make sure the Categorical Map 23267_municipalities.ers” is connected to //For Each Category// as well as to //Region Manager//. In this case, Step placed within the innermost container receives and passes on the subregions’ codes. Also any sequence of functors that affect each region should be put within this container.+The container //[[:For Each Category]]// also controls the subregion creation process. For each map category, //[[:For Each Category]]// will repeat the sequence of functors within it. Make sure the //​[[:​Load ​Categorical Map]]// ''​23267_municipalities.ers'' ​is connected to //[[:For Each Category]]// as well as to //[[:Region Manager]]//. In this case, Step placed within the innermost container receives and passes on the subregions’ codes. Also any sequence of functors that affect each region should be put within this container.
  
 {{ :​tutorial:​advanced_9.jpg |}} {{ :​tutorial:​advanced_9.jpg |}}
  
-The functors //​Regionalize Map// and //​Regionalize Categorical Map// spilt the map into regional maps. . All maps that are combined after these functors need to have the same dimensions. So make sure that they all are regionalized through these functors, as the example of distance maps and static variables. Note also, that you can set different transition matrices or Weights of Evidence files for the subregions by assigning the subregion’s code (in this case 6 digits) as a suffix to these files and placing //Load Table// and //Load Weights// inside //For Each Category// Container.  ​+The functors //[[:Regionalize Map]]// and //[[:Regionalize Categorical Map]]// spilt the map into regional maps. . All maps that are combined after these functors need to have the same dimensions. So make sure that they all are regionalized through these functors, as the example of distance maps and static variables. Note also, that you can set different transition matrices or Weights of Evidence files for the subregions by assigning the subregion’s code (in this case 6 digits) as a suffix to these files and placing //[[:Load Table]]// and //[[:Load Weights]]// inside //[[:For Each Category]]// Container.  ​
  
 <note tip>​**TIP**:​ you need also to set suffix digits to 6.</​note>​ <note tip>​**TIP**:​ you need also to set suffix digits to 6.</​note>​
Line 40: Line 40:
 {{ :​tutorial:​advanced_10.jpg |}} {{ :​tutorial:​advanced_10.jpg |}}
  
-At the end of an iteration of //For Each Category//, a functor //Regional Categorical Map// stores the regional maps. Assign a **Global Map Name** to these maps. After //For Each Category// runs, the regional maps can be merged into an updated landscape map. The functor// Merge Regional Categorical ​Map// is in charge of merging the regional maps. Its **Global Map Name** must be the same as //Regional Categorical Map//.// Merge Regional Categorical ​Map// must be placed within// Region Manager// and, in order to ensure a proper sequence of processing, you need to establish a dependence effect between this functor and the //Regional Categorical Map//. A way  to do this is by placing //Merge Regional Categorical ​Map// within a //Group// and linking this //Group// to //For Each Category// using a functor //Int// as a link. //Int// simply passes an integer constant from //For Each Category// to //Group//, establishing as a result a time-dependence between the executions of both. +At the end of an iteration of //[[:For Each Category]]//, a functor //[[:Regional Categorical Map]]// stores the regional maps. Assign a **Global Map Name** to these maps. After //[[:For Each Category]]// runs, the regional maps can be merged into an updated landscape map. The functor //[[:Merge Regional Categorical ​Maps]]// is in charge of merging the regional maps. Its **Global Map Name** must be the same as //[[:Regional Categorical Map]]//. //[[:Merge Regional Categorical ​Maps]]// must be placed within //[[:Region Manager]]// and, in order to ensure a proper sequence of processing, you need to establish a dependence effect between this functor and the //[[:Regional Categorical Map]]//. A way  to do this is by placing //[[:Merge Regional Categorical ​Maps]]// within a //[[:Group]]// and linking this //[[:Group]]// to //[[:For Each Category]]// using a functor //[[integer_value]]// as a link. //[[integer_value]]// simply passes an integer constant from //[[:For Each Category]]// to //[[:Group]]//, establishing as a result a time-dependence between the executions of both. 
  
 {{ :​tutorial:​advanced_11.jpg |}} {{ :​tutorial:​advanced_11.jpg |}}
  
-After the regional maps are merged, the model iterates and a new landscape map is fed back into// Mux Categorical Map// closing the loop. Therefore, the saved landscape map represents a mosaic of changed regional landscapes.+After the regional maps are merged, the model iterates and a new landscape map is fed back into //[[:Mux Categorical Map]]// closing the loop. Therefore, the saved landscape map represents a mosaic of changed regional landscapes.
  
 [[tutorial:​using_sojourn_time| Next Lesson]] [[tutorial:​using_sojourn_time| Next Lesson]]