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.
In this model, we introduce subregions in a simulation to enable the use of different transition matrices and Weight of Evidence coefficients for each subregion of a map.
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 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.
A Region Manager is added outside of the main loop (Repeat). This container controls the creation and merging of subregions.
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.
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.
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.
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.