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:building_a_land-use_and_land-cover_change_simulation_model [2013/08/14 19:30]
admin
tutorial:building_a_land-use_and_land-cover_change_simulation_model [2017/10/17 03:23] (current)
admin
Line 78: Line 78:
 ==== Second step: Calculating ranges to categorize gray-tone variables ==== ==== Second step: Calculating ranges to categorize gray-tone variables ====
  
-The Weights of Evidence method [[http://​dx.doi.org/​10.1016/​0040-1951(93)90011-8|(Goodacre et al. 1993]] +The Weights of Evidence method [[http://​dx.doi.org/​10.1016/​0040-1951(93)90011-8|(Goodacre et al. 1993]][[https://books.google.com/books?​printsec=frontcover&​vid=ISBN0080424201&​vid=ISBN0080418678&​vid=LCCN94028315#​v=onepage&​q&​f=false|Bonham-Carter 1994)]] is applied in Dinamica EGO to produce a transition probability map (fig. 3), which depicts the most favourable areas for a change [[http://​dx.doi.org/​10.1016/​S0304-3800(02)00059-5|(Soares-Filho et al. 2002]][[http://​dx.doi.org/​ 10.1111/​j.1529-8817.2003.00769.x|,​ 2004)]]. ​
-[[http://www.rc.unesp.br/igce/​geologia/​GAA01048/​papers/​Bonham-Carter_Cap9.pdf|Bonham-Carter1994)]] is applied in Dinamica EGO to produce a transition probability map (fig. 3), which depicts the most favourable areas for a change [[http://​dx.doi.org/​10.1016/​S0304-3800(02)00059-5|(Soares-Filho et al. 2002]][[http://​dx.doi.org/​ 10.1111/​j.1529-8817.2003.00769.x|,​ 2004)]]. ​+
  
 Weights of Evidence consists of a Bayesian method, in which the effect of a spatial variable on a transition is calculated independently of a combined solution. The Weights of Evidence represent each variable’s influence on the spatial probability of a transition i-j and are calculated as follows. Weights of Evidence consists of a Bayesian method, in which the effect of a spatial variable on a transition is calculated independently of a combined solution. The Weights of Evidence represent each variable’s influence on the spatial probability of a transition i-j and are calculated as follows.
Line 96: Line 95:
 }}] }}]
  
-Since Weights of Evidence only applies to categorical data, it is necessary to categorize continuous gray-tone maps (quantitative data, such as distance maps, altitude, and slope). A key issue to any categorization process concerns the preservation of the data structure. The present method adapted from Agterberg & BonhamCarter ​(1990), calculates ranges according to the data structure by first establishing a minimum delta – specified as the increment in the graphical interface – (//Dx//) for a continuous gray-tone variable x that is used to build n incremental buffers (//Nx//) comprising intervals from //X<wrap lo>​minimum</​wrap>//​ to //X<wrap lo>​minimum</​wrap>//​ + //​nDx//​.Each //n// defines a threshold that divides the map into two classes: //(Nx)// and //(Nx2)//. //An// is the number of cells for a buffer (//Nx//) multiple of //n// and //dn// is the number of occurrences for the modeled event (//D//) within this buffer. The quantities An and dn are obtained for an ordered sequence of buffers //​N(xminimum + nDx)//. Subsequently,​ values of //W+// for each buffer are calculated using equations 2 to 4. A sequence of quantities //An// is plotted against //​An*exp(W+)//​. Thereafter breaking points for this graph are determined by applying a line-generalizing algorithm (Intergraph,​ 1991) that contains three parameters: 1) minimum distance interval along //x, mindx//, 2) maximum distance interval along //x, maxdx//, and 3) tolerance angle //ft//. For //dx// (a distance between two points along x) between //mindx// and  //maxdx//, a new breaking point is placed whenever //dx >= maxdx// (an angle between //v// and //v’//- vectors linking the current to the last point and the last point to its antecedent, respectively) exceeds the tolerance angle //ft//. Thus, the number of ranges decreases as a function of ft. The ranges are finally defined by linking the breaking points with straight lines. Note that //An// is practically error-free whereas //dn// is subject to a considerable amount of uncertainty because it is regarded as the realization of a random variable. Since small //An// can generate noisy values for //W+//, [[http://​dx.doi.org/​10.1016/​0040-1951(93)90011-8|Goodacre et al. (1993)]] suggest that, instead of calculating it employing equations 2 and 4, one should estimate //W+// for each defined range through the following expression:+Since Weights of Evidence only applies to categorical data, it is necessary to categorize continuous gray-tone maps (quantitative data, such as distance maps, altitude, and slope). A key issue to any categorization process concerns the preservation of the data structure. The present method adapted from Agterberg & Bonham-Carter ​(1990), calculates ranges according to the data structure by first establishing a minimum delta – specified as the increment in the graphical interface – (//Dx//) for a continuous gray-tone variable x that is used to build n incremental buffers (//Nx//) comprising intervals from //X<wrap lo>​minimum</​wrap>//​ to //X<wrap lo>​minimum</​wrap>//​ + //​nDx//​.Each //n// defines a threshold that divides the map into two classes: //(Nx)// and //(Nx2)//. //An// is the number of cells for a buffer (//Nx//) multiple of //n// and //dn// is the number of occurrences for the modeled event (//D//) within this buffer. The quantities An and dn are obtained for an ordered sequence of buffers //​N(xminimum + nDx)//. Subsequently,​ values of //W+// for each buffer are calculated using equations 2 to 4. A sequence of quantities //An// is plotted against //​An*exp(W+)//​. Thereafter breaking points for this graph are determined by applying a line-generalizing algorithm (Intergraph,​ 1991) that contains three parameters: 1) minimum distance interval along //x, mindx//, 2) maximum distance interval along //x, maxdx//, and 3) tolerance angle //ft//. For //dx// (a distance between two points along x) between //mindx// and  //maxdx//, a new breaking point is placed whenever //dx >= maxdx// (an angle between //v// and //v’//- vectors linking the current to the last point and the last point to its antecedent, respectively) exceeds the tolerance angle //ft//. Thus, the number of ranges decreases as a function of ft. The ranges are finally defined by linking the breaking points with straight lines. Note that //An// is practically error-free whereas //dn// is subject to a considerable amount of uncertainty because it is regarded as the realization of a random variable. Since small //An// can generate noisy values for //W+//, [[http://​dx.doi.org/​10.1016/​0040-1951(93)90011-8|Goodacre et al. (1993)]] suggest that, instead of calculating it employing equations 2 and 4, one should estimate //W+// for each defined range through the following expression:
  
 {{:​tutorial:​lucc_11.jpg?​200|}} ​ (5) {{:​tutorial:​lucc_11.jpg?​200|}} ​ (5)
Line 119: Line 118:
  
 In addition to the initial and final landscape maps, this model receives a raster cube composed of a series of static maps, e.g. vegetation, soil, altitude (they are named so because they do not change during model iteration. A raster cube encompasses a set of co-registered map layers. ​ In addition to the initial and final landscape maps, this model receives a raster cube composed of a series of static maps, e.g. vegetation, soil, altitude (they are named so because they do not change during model iteration. A raster cube encompasses a set of co-registered map layers. ​
-Open the file ''​23267static.ers''​ from ''​\setup_run_and_validate_a_lucc_model\originals''​ on the Map Viewer. An option to select the layer will appear on the bottom left of the Map Viewer. Change the layer to examine the other maps. <note tip>​**TIP**:​ you can build a raster cube assembling a set of co-registered raster maps through the functor //[[:Create Cube Map]]// and extract a layer from the cube using the functor //​[[:​Extract Map Layer]]//. Cube raster data are only supported in ER format.</​note>​+Open the file ''​23267statics.ers''​ from ''​\setup_run_and_validate_a_lucc_model\originals''​ on the Map Viewer. An option to select the layer will appear on the Maps (right ​of window), it has a combobox into field Layer to select it. Change the layer to examine the other maps. <note tip>​**TIP**:​ you can build a raster cube assembling a set of co-registered raster maps through the functor //[[:Create Cube Map]]// and extract a layer from the cube using the functor //​[[:​Extract Map Layer]]//. Cube raster data are only supported in ER format.</​note>​
  
 Furthermore,​ Dinamica EGO can incorporate dynamic layers into the simulation, which are so-called because they are updated during model iteration. For this model you will include the variable "​distance to previously deforested areas" as a dynamic map.  For this purpose, the model employs the functor //[[:Calc Distance Map]]//. Open it with the Edit Functor Ports. ​ Furthermore,​ Dinamica EGO can incorporate dynamic layers into the simulation, which are so-called because they are updated during model iteration. For this model you will include the variable "​distance to previously deforested areas" as a dynamic map.  For this purpose, the model employs the functor //[[:Calc Distance Map]]//. Open it with the Edit Functor Ports. ​
Line 129: Line 128:
 {{ :​tutorial:​lucc_16.jpg |}} {{ :​tutorial:​lucc_16.jpg |}}
  
-Instead of //[[:Number Map]]//, now you find //[[:Name Map]]// within this container. This functor is applied to containers that need a map name or alias to identify the maps passed to them. //[[:Name Map]]// is found in the Map Algebra Supplementary tab. This can be any name, but you must be consistent, therefore using the same names when setting the container internal parameters, as shown below. Examples of containers that need Name Map are //​[[:​Determine Weights Of Evidence Ranges]]//, //​[[:​Determine Weights Of Evidence Coefficients]]//,​ and //​[[:​calc_w._of_e._probability_map|Calc W. Of E. Probability Map]]//.+Instead of //[[:Number Map]]//, now you find //[[:Name Map]]// within this container. This functor is applied to containers that need a map name or alias to identify the maps passed to them. //[[:Name Map]]// is found in the Create Hook into container action bar. This can be any name, but you must be consistent, therefore using the same names when setting the container internal parameters, as shown below. Examples of containers that need Name Map are //​[[:​Determine Weights Of Evidence Ranges]]//, //​[[:​Determine Weights Of Evidence Coefficients]]//,​ and //​[[:​calc_w._of_e._probability_map|Calc W. Of E. Probability Map]]//.
  
 There are two //[[:Name Map]]// functors within this container, one for the map ''​23267statitcs.ers''​ and another for the distance map output from the //[[:Calc Distance Map]]//. There are two //[[:Name Map]]// functors within this container, one for the map ''​23267statitcs.ers''​ and another for the distance map output from the //[[:Calc Distance Map]]//.
Line 188: Line 187:
  
 {{ :​tutorial:​lucc_23.1.jpg |}} {{ :​tutorial:​lucc_23.1.jpg |}}
- 
-{{:​tutorial:​lucc_24.jpg |}}\\ 
 \\ \\
 \\ \\
Line 196: Line 193:
 \\ \\
 \\ \\
-\\ 
-\\ 
-\\ 
- 
 ==== Fourth step: Analyzing map correlation ==== ==== Fourth step: Analyzing map correlation ====
  
-The only assumption for the Weights of Evidence method is that the input maps have to be spatially independent. A set of measures can be applied to assess this assumption, such as the Cramer test and the Joint-Uncertainty Information [[http://www.rc.unesp.br/igce/​geologia/​GAA01048/​papers/​Bonham-Carter_Cap9.pdf|( Bonham-Carter,​ 1994)]]. As a result, correlated variables must be disregarded or combined into a third that will replace the correlated pair in the model. ​+The only assumption for the Weights of Evidence method is that the input maps have to be spatially independent. A set of measures can be applied to assess this assumption, such as the Cramer test and the Joint-Uncertainty Information [[https://books.google.com/books?​printsec=frontcover&​vid=ISBN0080424201&​vid=ISBN0080418678&​vid=LCCN94028315#​v=onepage&​q&​f=false|(Bonham-Carter,​ 1994)]]. As a result, correlated variables must be disregarded or combined into a third that will replace the correlated pair in the model. ​
  
 Open model ''​weights_of_evidence_correlation.egoml''​ in ''​setup_run_and_validate_a_lucc_ model\4_weights_of_evidence_correlation''​. Open model ''​weights_of_evidence_correlation.egoml''​ in ''​setup_run_and_validate_a_lucc_ model\4_weights_of_evidence_correlation''​.
Line 211: Line 204:
 \\ \\
 \\ \\
-This model performs pairwise tests for categorical maps in order to test the independence assumption. Methods employed are the Chi^2, ​Crammers, the Contingency,​ the Entropy and the Uncertainty Joint Information [[http://www.rc.unesp.br/igce/​geologia/​GAA01048/​papers/​Bonham-Carter_Cap9.pdf|( Bonham-Carter,​ 1994)]]. In addition to the links to be connected, the only parameter to be set in the Determine Weights of Evidence Correlation is the transition as follows:+\\ 
 +\\ 
 +This model performs pairwise tests for categorical maps in order to test the independence assumption. Methods employed are the Chi^2, ​Cramer, the Contingency,​ the Entropy and the Uncertainty Joint Information [[https://books.google.com/books?​printsec=frontcover&​vid=ISBN0080424201&​vid=ISBN0080418678&​vid=LCCN94028315#​v=onepage&​q&​f=false|(Bonham-Carter,​ 1994)]]. In addition to the links to be connected, the only parameter to be set in the Determine Weights of Evidence Correlation is the transition as follows:
  
-{{ :​tutorial:​lucc_26.2.jpg |}}+{{ :​tutorial:​lucc_26.2.jpg |}}\\
  
 Before running the model, maximize the log window. This is a part of the log reported:\\ Before running the model, maximize the log window. This is a part of the log reported:\\
Line 234: Line 229:
 ==== Fifth step: Setting up and running a LUCC simulation model ==== ==== Fifth step: Setting up and running a LUCC simulation model ====
  
-Let’s start setting up the deforestation simulation model by loading the input data. You will need //[[:Load Categorical Map]]// to load the initial landscape: ''​original/​23267_1997.ers'',​ //[[:Load Map]]// for ''​originals/​23267statics.ers'',​ //[[:Load Weights]]// for ''​new_weights.dcf'',​ and //[[:Load Lookup Table]]// for the multi-step transition matrix: ''​multiple_steps.csv''​ because you will run the model in annual time-steps. Add the following comments to each functor:+Let’s start setting up the deforestation simulation model by loading the input data. You will need //[[:Load Categorical Map]]// to load the initial landscape: ''​originals/​23267_1997.ers'',​ //[[:Load Map]]// for ''​originals/​23267statics.ers'',​ //[[:Load Weights]]// for ''​new_weights.dcf'',​ and //[[:Load Lookup Table]]// for the multi-step transition matrix: ''​originals/multiple_steps.csv''​ because you will run the model in annual time-steps. Add the following comments to each functor:
  
 {{ :​tutorial:​lucc_28.jpg |}} {{ :​tutorial:​lucc_28.jpg |}}
Line 242: Line 237:
 {{ :​tutorial:​lucc_29.jpg |}} {{ :​tutorial:​lucc_29.jpg |}}
  
-Let’s connect the functors: first //[[:Load Categorical Map]]// ''​23267_1997.ers''​ to the **Initial** port of the //[[:Mux Categorical Map]]//, the output from this to //[[:Calc Distance Map]]//, //[[:Calc Change Matrix]]// and //​[[:​calc_w._of_e._probability_map|Calc W. Of E. Probability Map]]//. Connect //[[:Load Table]]// ''​multiple_steps.csv''​ to //[[:Calc Change Matrix]]//, //[[:Load Map]]// ''​23267statics.ers''​ to //[[:Name Map]]// "​static_var",​ the output from //[[:Calc Distance Map]]// to //[[:Name Map]]// "​distance",​ //[[:Load Weights]]// ''​new_weigths.dcf''​ to //​[[:​calc_w._of_e._probability_map|Calc W. Of E. Probability Map]]// and its output to //[[:Save Map]]// ''​probabities.ers''​ (Note that this map will receive a ## suffix from the model iteration).+Drag a //[[:Calc Change Matrix]]// from Simulation tab within //​[[:​Repeat]]//​. Now let’s connect the functors: first //[[:Load Categorical Map]]// ''​23267_1997.ers''​ to the **Initial** port of the //[[:Mux Categorical Map]]//, the output from this to //[[:Calc Distance Map]]//, //[[:Calc Change Matrix]]// and //​[[:​calc_w._of_e._probability_map|Calc W. Of E. Probability Map]]//. Connect //[[:Load Table]]// ''​multiple_steps.csv''​ to //[[:Calc Change Matrix]]//, //[[:Load Map]]// ''​23267statics.ers''​ to //[[:Name Map]]// "​static_var",​ the output from //[[:Calc Distance Map]]// to //[[:Name Map]]// "​distance",​ //[[:Load Weights]]// ''​new_weigths.dcf''​ to //​[[:​calc_w._of_e._probability_map|Calc W. Of E. Probability Map]]// and its output to //[[:Save Map]]// ''​probabities.ers''​ (Note that this map will receive a ## suffix from the model iteration).
  
 {{ :​tutorial:​lucc_30.jpg |}} {{ :​tutorial:​lucc_30.jpg |}}
Line 248: Line 243:
 Now place two additional functors, //​[[:​Patcher]]//​ from the Simulation tab and another //[[:Save Map]]//. Enter ''​Landscape.ers''​ and leave “2” as **Suffix**. Connect the output from //[[:Mux Categorical Map]]// to the //​[[:​Patcher]]//​ **Landscape** port, the output from //​[[:​calc_w._of_e._probability_map|Calc W. Of E. Probability Map]]// to the //​[[:​Patcher]]//​ **Probabilities** port, and the output from //[[:Calc Change Matrix]]// to the **Changes** port of the //​[[:​Patcher]]//​. ​ Now place two additional functors, //​[[:​Patcher]]//​ from the Simulation tab and another //[[:Save Map]]//. Enter ''​Landscape.ers''​ and leave “2” as **Suffix**. Connect the output from //[[:Mux Categorical Map]]// to the //​[[:​Patcher]]//​ **Landscape** port, the output from //​[[:​calc_w._of_e._probability_map|Calc W. Of E. Probability Map]]// to the //​[[:​Patcher]]//​ **Probabilities** port, and the output from //[[:Calc Change Matrix]]// to the **Changes** port of the //​[[:​Patcher]]//​. ​
  
-To close the loop you will need to connect the output port **Changed Landscape** of //​[[:​Patcher]]//​ to the port **Feedback** of //[[:Mux Categorical Map]]// and to //[[:Save Map]]// ''​Landscape.ers''​ to save the maps from model execution. ​The model should now look like this: +To close the loop you will need to connect the output port **Changed Landscape** of //​[[:​Patcher]]//​ to the port **Feedback** of //[[:Mux Categorical Map]]// and to //[[:Save Map]]// ''​Landscape.ers''​ to save the maps from model execution.
- +
-{{ :​tutorial:​lucc_31.jpg |}}+
  
 The functor //[[:Mux Categorical Map]]// enables dynamic update of the input landscape map. It receives the //[[:Load Categorical Map]]// ''​23267_1997.ers''​ in its **Initial** port in the beginning of the simulation and thereafter the map output from //​[[:​Patcher]]//​ via the **Feedback** port.  The functor //[[:Mux Categorical Map]]// enables dynamic update of the input landscape map. It receives the //[[:Load Categorical Map]]// ''​23267_1997.ers''​ in its **Initial** port in the beginning of the simulation and thereafter the map output from //​[[:​Patcher]]//​ via the **Feedback** port. 
Line 257: Line 250:
  
 In turn, the //[[:Calc Change Matrix]]// receives the transition matrix, composed of net rates, and uses it to calculate crude rates in terms of quantity of cells to be changed by multiplying the transition rates by the number of cells available for a specific change. In turn, the //[[:Calc Change Matrix]]// receives the transition matrix, composed of net rates, and uses it to calculate crude rates in terms of quantity of cells to be changed by multiplying the transition rates by the number of cells available for a specific change.
 +
 +Let’s set the other functors’ parameters. Open //[[:Calc Distance Map]]// and enter “1”. Remember that you want “distance_to_1” (deforested areas). Open //​[[:​calc_w._of_e._probability_map|Calc W. Of E. Probability Map]]// and enter transition "2 to 1", which represents deforestation. Finally open //​[[:​Repeat]]//​ and set the **Number of Iterations** to “3”, as you will run the model in annual time steps. The model should now look like this:
 +
 +{{ :​tutorial:​lucc_31.jpg |}}
  
 Dinamica EGO uses as a local Cellular Automata rule a transition engine composed of two complementary transition functions, the //​[[:​Expander]]//​ and the //​[[:​Patcher]]//,​ especially designed to reproduce the spatial patterns of change (both are found in the Simulation tab). The first process is dedicated only to the expansion or contraction of previous patches of a certain class, while the second process is designed to generate or form new patches through a seeding mechanism. The //​[[:​Patcher]]//​ searches for cells around a chosen location for a joint transition. The process is started by selecting the core cell of the new patch and then selecting a specific number of cells around the core cell, according to their //​P<​sub>​ij</​sub>//​ transition probabilities. Dinamica EGO uses as a local Cellular Automata rule a transition engine composed of two complementary transition functions, the //​[[:​Expander]]//​ and the //​[[:​Patcher]]//,​ especially designed to reproduce the spatial patterns of change (both are found in the Simulation tab). The first process is dedicated only to the expansion or contraction of previous patches of a certain class, while the second process is designed to generate or form new patches through a seeding mechanism. The //​[[:​Patcher]]//​ searches for cells around a chosen location for a joint transition. The process is started by selecting the core cell of the new patch and then selecting a specific number of cells around the core cell, according to their //​P<​sub>​ij</​sub>//​ transition probabilities.
Line 265: Line 262:
  
 Since the input map resolution is approximately 250 meters, setting the **Mean Patch** and **Patch Size Variance** to “1” won’t allow the formation of patches. Since the input map resolution is approximately 250 meters, setting the **Mean Patch** and **Patch Size Variance** to “1” won’t allow the formation of patches.
- 
-Now let’s set the other functors’ parameters. Open //[[:Calc Distance Map]]// and enter “1”. Remember that you want “distance_to_1” (deforested areas). Open //​[[:​calc_w._of_e._probability_map|Calc W. Of E. Probability Map]]// and enter transition "2 to 1", which represents deforestation. Finally open //​[[:​Repeat]]//​ and set the **Number of Iterations** to “3”, as you will run the model in annual time steps. 
  
 Finally verify the model and run it. Check the log reported and open the maps ''​probabilities3.ers''​ using “PseudoColor” and ''​landscape3.ers''​ using “Amazon” **Color Palette** on the Map Viewer. <note tip>​**TIP**:​ When Save Map is placed within //​[[:​Repeat]]//,​ it saves one output map per time step, if you want only the final simulated landscape, drag it out of //​[[:​Repeat]]//​.</​note>​ Finally verify the model and run it. Check the log reported and open the maps ''​probabilities3.ers''​ using “PseudoColor” and ''​landscape3.ers''​ using “Amazon” **Color Palette** on the Map Viewer. <note tip>​**TIP**:​ When Save Map is placed within //​[[:​Repeat]]//,​ it saves one output map per time step, if you want only the final simulated landscape, drag it out of //​[[:​Repeat]]//​.</​note>​
Line 358: Line 353:
  
 //​[[:​Calculate Value]]// selects the minimum fitness value (formula applied is min(v1, v2)) and passes it to //[[:Set Table Cell Value]]//, which also receives as input the current step as the table key.  //​[[:​Calculate Value]]// selects the minimum fitness value (formula applied is min(v1, v2)) and passes it to //[[:Set Table Cell Value]]//, which also receives as input the current step as the table key. 
- 
-{{ :​tutorial:​lucc_45.jpg |}} 
  
 As the //​[[:​For]]//​ iterates, the //[[:Calc Reciprocal Similarity Map]]// calculates similarity values for a window size and passes them to //​[[:​Calculate Value]]://, which selects the minimum and passes it on to //[[:Set Table Cell Value]]//, which updates the value for the table key corresponding to the model step. A second //[[:Set Table Cell Value]]// updates the maximum similarity and feedbacks the updated table to //[[:Mux Table]]//. When //​[[:​For]]//​ is finished, the table is passed to //[[:Save Table]]//. As the //​[[:​For]]//​ iterates, the //[[:Calc Reciprocal Similarity Map]]// calculates similarity values for a window size and passes them to //​[[:​Calculate Value]]://, which selects the minimum and passes it on to //[[:Set Table Cell Value]]//, which updates the value for the table key corresponding to the model step. A second //[[:Set Table Cell Value]]// updates the maximum similarity and feedbacks the updated table to //[[:Mux Table]]//. When //​[[:​For]]//​ is finished, the table is passed to //[[:Save Table]]//.
Line 365: Line 358:
 Register viewer on the **Result** port of //[[:Set Table Cell Value]]//, run the model and analyze the resulting table by clicking on **Result** port with the right button. Register viewer on the **Result** port of //[[:Set Table Cell Value]]//, run the model and analyze the resulting table by clicking on **Result** port with the right button.
  
-{{:​tutorial:​lucc_46.jpg |}}The fitness goes from 21% at 1 by 1 cell to 90% at 11 by 11 cell resolution. Note that because the simulation receives as input a fixed transition matrix setting the quantity of changes, we only need to assess the model fitness with respect to the location of changes. Taking into account that cell resolution is 250 meters and the window search radius is half of the resolution, you can draw a graph depicting model fitness per spatial resolution ​(fig. 6)+The fitness goes from 21% at 1 by 1 cell to 90% at 11 by 11 cell resolution. Note that because the simulation receives as input a fixed transition matrix setting the quantity of changes, we only need to assess the model fitness with respect to the location of changes. Taking into account that cell resolution is 250 meters and the window search radius is half of the resolution, you can draw a graph depicting model fitness per spatial resolution. ​
  
 <note tip>​**TIP**:​ Use //[[:Get Table Column]]// and //[[:Lookup Table]]// to convert the column corresponding to the minimum similarity to a [[:lookup table type]]. Then, open table with the chart editor to produce the following graph.</​note>​ <note tip>​**TIP**:​ Use //[[:Get Table Column]]// and //[[:Lookup Table]]// to convert the column corresponding to the minimum similarity to a [[:lookup table type]]. Then, open table with the chart editor to produce the following graph.</​note>​
Line 406: Line 399:
 {{ :​tutorial:​lucc_56.jpg |}}  {{ :​tutorial:​lucc_56.jpg |}} 
  
- 5th  Step------------------------------------------------------------------------23267_2000 ​--------------------------------------------------------This Step   +                             5th  Step---------------------------------------------- 23267_2000 ----------------------------------------------This Step   
  
 Note that the simulated landscape from this step shows a landscape structure closer to that of the final historical landscape. Let’s now add the //​[[:​Expander]]//​ Functor to the simulation model. ​ Note that the simulated landscape from this step shows a landscape structure closer to that of the final historical landscape. Let’s now add the //​[[:​Expander]]//​ Functor to the simulation model. ​