# Differences

This shows you the differences between two versions of the page.

Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||

lesson_18 [2020/02/13 06:59] britaldo |
lesson_18 [2020/02/20 16:16] pedrog |
||
---|---|---|---|

Line 41: | Line 41: | ||

==== First step: Calculating transition matrices ==== | ==== First step: Calculating transition matrices ==== | ||

- | First, you need to calculate the historical transition matrices. The transition matrix describes a system that changes over discrete time increments, in which the value of any variable in a given time period is the sum of fixed percentages of values of all variables in the previous time step. The sum of fractions along the column of the transition matrix is equal to one. The diagonal line of the transition matrix does not need to be specified since Dinamica EGO does not model the percentage of unchangeable cells, nor the transitions equal to zero. The transition rate can be passed to the LUCC model as a fixed parameter or be updated from model feedback. | + | First, you need to calculate the historical transition matrices. The transition matrix describes a system that changes over discrete time increments, in which the value of any variable in a given time period is the sum of fixed percentages of values of all variables in the previous time step. The sum of fractions along the column of the transition matrix is equal to one. The diagonal line of the transition matrix need not to be specified since Dinamica EGO does not model the percentage of unchangeable cells, nor the transitions equal to zero. The transition rate can be passed to the LUCC model as a fixed parameter or be updated from model feedback. |

{{:tutorial:lucc_3.jpg?300|}}(1) | {{:tutorial:lucc_3.jpg?300|}}(1) | ||

Line 47: | Line 47: | ||

The single-step matrix corresponds to a time period represented as a single time step, in turn the multiple-step matrix corresponds to a time step unit (year, month, day, etc) specified by dividing the time period by a number of time steps. For Dinamica EGO, time step can comprise any span of time, since time unit is only an external reference. A multiple-step transition matrix can only be derived from an Ergodic matrix, i.e. a matrix that has real number Eigen values and vectors. | The single-step matrix corresponds to a time period represented as a single time step, in turn the multiple-step matrix corresponds to a time step unit (year, month, day, etc) specified by dividing the time period by a number of time steps. For Dinamica EGO, time step can comprise any span of time, since time unit is only an external reference. A multiple-step transition matrix can only be derived from an Ergodic matrix, i.e. a matrix that has real number Eigen values and vectors. | ||

- | The transition rates set the net quantity of changes, that is, the percentage of land that will change to another state (land use and cover attribute), and thus they are known as net rates, and denoted in percentage. In turn, gross rates are specified as an area unit, such as hectares or km<sup>2</sup> per unit of time. In the case that there is not a solution for the multiple-step transition matrix, you still can run the model in several time steps, as defined above, calculating a fixed gross rate per time step (e.g. year) by dividing the accumulated change over the period by the number of steps over which the period is composed (this might not apply to complex transition model). Dinamica EGO converts gross rates into net rate, dividing the extent of change by the fraction of each land use and cover class prior to change, before passing it to the transition functors: //[[:Patcher]]// and //[[:Expander]]//.\\ | + | The transition rates set the net quantity of changes, that is, the percentage of land that will change to another state (land use and cover attribute), and thus they are known as net rates, and denoted in percentage. In turn, gross rates are specified as an area unit, such as hectares or km<sup>2</sup> per unit of time. In the case that there is not a solution for the multiple-step transition matrix, you still can use the submodel: Calc Net Transition Rates (See online store). Regardless matrix ergodicity, this functor calculates gross transition rates for a time-period and specified number of time-steps and then derives the matrix of mean net transition rates. Output transition matrix is an approximation of the multiple-step transition matrix at the order of 0.1% (for most cases) and thus can be used as input for multiple-step land change simulations. Or you can calculate fixed gross rate per time step (e.g. year) by dividing the accumulated change over the period by the number of steps over which the period is composed. Dinamica EGO converts gross rates into net rate, dividing the extent of change by the fraction of each land use and cover class prior to change, before passing it to the transition functors: //[[:Patcher]]// and //[[:Expander]]//.\\ |

| | ||

Open the model ''determine_transition_matrix.egoml'' located in ''\Guidebook_Dinamica_5\Models\LUCC_model\1_transition_matrix_calculation''\\ | Open the model ''determine_transition_matrix.egoml'' located in ''\Guidebook_Dinamica_5\Models\LUCC_model\1_transition_matrix_calculation''\\ | ||

Line 75: | Line 75: | ||

{{ :tutorial:lucc_7.jpg |}} | {{ :tutorial:lucc_7.jpg |}} | ||

- | The only transition occurring is from forest (2) to deforested (1). The rates indicate that a percent of the forest is changing to deforested per unit time step, which is 3 years for the first matrix and 1 year for the latter. Thus, within this time-period deforestation is occurring at a net rate of 2.8 % per year, which means that the remaining forest is shrinking 2.8% per year. Bear in mind that like interest rates, transition rates are superimposed again and again over the stock variable, which in this case is represented by the extent of remaining forest.\\ | + | The only transition occurring is from forest (2) to deforested (1). The rates indicate that a percent of the forest is changing to deforested per unit time step, which is 3 years for the first matrix and 1 year for the latter. Thus, within this time-period deforestation is occurring at a net rate of 2.8% per year, which means that the remaining forest is shrinking 2.8% per year. Bear in mind that like interest rates, transition rates are superimposed again and again over the stock variable, which in this case is represented by the extent of remaining forest.\\ |

The net transition matrix is passed to the simulation model and Dinamica EGO browses the landscape (land use and cover) map to count the number of cells to calculate the gross rate in terms of quantity of cells to be changed. In order to set a constant gross rate you will need to pass a variable net rate to the model, which is also possible due to the ability of Dinamica EGO to incorporate feedback into the simulation. Let’s move on to the next step. | The net transition matrix is passed to the simulation model and Dinamica EGO browses the landscape (land use and cover) map to count the number of cells to calculate the gross rate in terms of quantity of cells to be changed. In order to set a constant gross rate you will need to pass a variable net rate to the model, which is also possible due to the ability of Dinamica EGO to incorporate feedback into the simulation. Let’s move on to the next step. | ||

==== 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]][[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)]]. | + | 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 favorable 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 97: | Line 97: | ||

}}] | }}] | ||

- | 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: | + | Since Weights of Evidence only applies to categorical data, it is necessary to categorize continuous gray-tone maps (quantitative data, such as distance maps, elevation, 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 120: | Line 120: | ||

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 ''23267statics.ers'' from ''\Guidebook_Dinamica_5\Database\LUCC_files'' 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> | + | Open the file ''23267statics.ers'' from ''\Guidebook_Dinamica_5\Database\LUCC_files'' on the Map Viewer. An option to select the layer will appear on the Maps (right of window). 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]]//. </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 145: | Line 145: | ||

Protected areas, vegetation and soil are already categorical data, thus mark them as such. The others will need to be categorized. The parameters for the categorization process are the increment – the map unit minimum buffer increment, e.g. in meters or degrees the minimum and maximum deltas representing intervals on the Y axis of the graphs in fig.4, and the tolerance angle, which measures the angle of deviation from a straight line. Some default values are suggested. The output of this functor will be a Weights of Evidence skeleton file, showing the categorization ranges, but with all weights set to zero. Run the model and open the output file with a text editor. | Protected areas, vegetation and soil are already categorical data, thus mark them as such. The others will need to be categorized. The parameters for the categorization process are the increment – the map unit minimum buffer increment, e.g. in meters or degrees the minimum and maximum deltas representing intervals on the Y axis of the graphs in fig.4, and the tolerance angle, which measures the angle of deviation from a straight line. Some default values are suggested. The output of this functor will be a Weights of Evidence skeleton file, showing the categorization ranges, but with all weights set to zero. Run the model and open the output file with a text editor. | ||

- | <note tip>**TIP**: in case of the map of distance, this will be equivalent to the cell resolution</note> | + | |

<note tip>**TIP**: if the model has more than one transition, you can copy and paste the range parameters on the other transitions’ windows. Dinamica EGO enables defining different ranges for each transition.</note> | <note tip>**TIP**: if the model has more than one transition, you can copy and paste the range parameters on the other transitions’ windows. Dinamica EGO enables defining different ranges for each transition.</note> | ||

Line 184: | Line 184: | ||

Notice that the first ranges show a positive association, favoring deforestation, especially the first, in contrast, the final ranges show negative values, thus repelling deforestation. The middle range shows values close to zero, meaning that these distance ranges do not exert an effect on deforestation. | Notice that the first ranges show a positive association, favoring deforestation, especially the first, in contrast, the final ranges show negative values, thus repelling deforestation. The middle range shows values close to zero, meaning that these distance ranges do not exert an effect on deforestation. | ||

- | The Contrast measures the association/repelling effect. Near zero, there is no effect at all, whereas the larger and more positive it becomes, the greater is the attraction; on the other hand, the larger and more negative the value, the greater is the repelling effect. | + | The Contrast measures the association/repelling effect. Near zero, there is no effect at all, while the larger and more positive it becomes, the greater is the attraction; on the other hand, the larger and more negative the value, the greater is the repelling effect. |

Now open the graphical Weights of Evidence editor within the Save Weights functor (eye icon). | Now open the graphical Weights of Evidence editor within the Save Weights functor (eye icon). | ||

Line 330: | Line 330: | ||

==== Seventh step: Validating simulation using multiple windows and constant decay function ==== | ==== Seventh step: Validating simulation using multiple windows and constant decay function ==== | ||

- | Open the model ''determine-muti-window-similarity-of-differences_complete.egoml'' in folder ''\7_validate_using_multiple_windows_constant_decay_function''. | + | Open the model ''determine-muti-window-similarity-of-differences_complete.egoml'' in folder ''\Guidebook_Dinamica_5\Models\LUCC_model\7_validate_using_multiple_windows_constant_decay_function''. |

{{ :tutorial:lucc_40.jpg |}} | {{ :tutorial:lucc_40.jpg |}} | ||

Line 360: | Line 360: | ||

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. | ||

- | 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. | + | The fitness goes from 21% at 1 by 1 cell to 90% at 11 by 11 cell resolution. 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 366: | Line 366: | ||

[{{ :tutorial:lucc_48.1.jpg |Fig.6 Model fitness}}] | [{{ :tutorial:lucc_48.1.jpg |Fig.6 Model fitness}}] | ||

- | From the graph in fig. 6, we can assert the simulation reached a similarity fitness value over 50% at a spatial resolution of ˜800 meters. | + | From the graph in fig. 6, we can assert that the simulation reached a similarity fitness value over 50% at a spatial resolution of ˜800 meters. |

<note>This method applies to multiple transitions too.</note> | <note>This method applies to multiple transitions too.</note> | ||

Line 412: | Line 412: | ||

[{{ :tutorial:lucc_57.jpg |Fig.7 Transition probabilities transformed to simulate expansion process.}}] | [{{ :tutorial:lucc_57.jpg |Fig.7 Transition probabilities transformed to simulate expansion process.}}] | ||

- | Now, open the model ''simulate_deforestation_from_1997_2000_with_patch_formation_and_expansion.egoml'' in the folder ''Examples\setup_run_and_validate _a_lucc_model\9_run_lucc_with_patch_formation_and_expansion''. | + | Now, open the model ''simulate_deforestation_from_1997_2000_with_patch_formation_and_expansion.egoml'' in the folder ''\Guidebook_Dinamica_5\Models\LUCC_model\9_run_lucc_with_patch_formation_and_expansion''. |

{{ :tutorial:lucc_60.1.jpg |}} | {{ :tutorial:lucc_60.1.jpg |}} | ||

Line 452: | Line 452: | ||

- | Did this model approximate more to the structure of the final historical landscape? | + | Did this model approximate more closely to the structure of the final historical landscape? |

Try to change the parameters of //[[:Modulate Change Matrix]]//, //[[:Expander]]// and //[[:Patcher]]// to see what you get. | Try to change the parameters of //[[:Modulate Change Matrix]]//, //[[:Expander]]// and //[[:Patcher]]// to see what you get. | ||

Line 465: | Line 465: | ||

Thus, as the current example, we can apply the simulation model to assess the impacts of future trajectories of deforestation under various socioeconomic and public policies scenarios, on the emission of greenhouse gases [[http://dx.doi.org/10.1038/nature04389|(Soares-Filho et al., 2006)]], regional climate change [[ftp://cola.gmu.edu/pub/ctr/ctr_226.pdf|(Schneider et al., 2006]]; [[http://se-server.ethz.ch/staff/af/fi159/S/Sa123.pdf|Sampaio et al, 2007)]], fluvial regime [[http://dx.doi.org/10.1016/S0022-1694(03)00267-1|(Costa et al, 2003]][[http://dx.doi.org/10.1016/j.jhydrol.2009.02.043|,Coe et al, 2009)]], habitat loss and fragmentation[[http://dx.doi.org/10.1038/nature04389|(Soares-Filho et al., 2006,]] [[ http://dx.doi.org/10.1016/j.foreco.2008.10.011|Texeira et al., 2009)]] as well as the loss of the forest environmental services and economic goods [[http://dx.doi.org/10.1016/S0921-8009(96)00066-3|(Fearnside, 1997)]]. | Thus, as the current example, we can apply the simulation model to assess the impacts of future trajectories of deforestation under various socioeconomic and public policies scenarios, on the emission of greenhouse gases [[http://dx.doi.org/10.1038/nature04389|(Soares-Filho et al., 2006)]], regional climate change [[ftp://cola.gmu.edu/pub/ctr/ctr_226.pdf|(Schneider et al., 2006]]; [[http://se-server.ethz.ch/staff/af/fi159/S/Sa123.pdf|Sampaio et al, 2007)]], fluvial regime [[http://dx.doi.org/10.1016/S0022-1694(03)00267-1|(Costa et al, 2003]][[http://dx.doi.org/10.1016/j.jhydrol.2009.02.043|,Coe et al, 2009)]], habitat loss and fragmentation[[http://dx.doi.org/10.1038/nature04389|(Soares-Filho et al., 2006,]] [[ http://dx.doi.org/10.1016/j.foreco.2008.10.011|Texeira et al., 2009)]] as well as the loss of the forest environmental services and economic goods [[http://dx.doi.org/10.1016/S0921-8009(96)00066-3|(Fearnside, 1997)]]. | ||

- | Open the model simulate_deforestation_from_1997_2000_30years_ahead.xml available in ''Examples\setup_run_and_validate_a_lucc_model\10_run_deforestation_trajectories''. | + | Open the model simulate_deforestation_from_1997_2000_30years_ahead.xml available in ''\Guidebook_Dinamica_5\Models\LUCC_model\10_run_deforestation_trajectories''. |

{{ :tutorial:lucc_68.jpg |}} | {{ :tutorial:lucc_68.jpg |}} | ||

Line 491: | Line 491: | ||

You may want to improve this model by incorporating dynamic rates, other dynamic variables, submodels, such as the road constructor, and feedbacks from the landscape attributes to the transition rate calculation. All of these are possible in Dinamica EGO. An example of road constructor module is found in the model mato_grosso_road.xml in ''Examples\run_lucc_northern_mato_grosso\run_roads_with_comments''. Also, Dinamica EGO allows the incorporation of economic, social and political scenarios into a model that integrates the effect of these underlying causes [[http://www.eldis.org/go/topics&id=14501&type=Document#.Ufba_421EZ4|(Geist, & Lambin, 2001)]] on the trajectory of deforestation (usually these variables are input to the model using tables with keys assigned to a geographic unit, such as county, state or country). | You may want to improve this model by incorporating dynamic rates, other dynamic variables, submodels, such as the road constructor, and feedbacks from the landscape attributes to the transition rate calculation. All of these are possible in Dinamica EGO. An example of road constructor module is found in the model mato_grosso_road.xml in ''Examples\run_lucc_northern_mato_grosso\run_roads_with_comments''. Also, Dinamica EGO allows the incorporation of economic, social and political scenarios into a model that integrates the effect of these underlying causes [[http://www.eldis.org/go/topics&id=14501&type=Document#.Ufba_421EZ4|(Geist, & Lambin, 2001)]] on the trajectory of deforestation (usually these variables are input to the model using tables with keys assigned to a geographic unit, such as county, state or country). | ||

- | Congratulations, you have successfully completed this lesson! Now let’s move to the **next lesson:** [[lesson_19|LESSON 19: The wizard editor in Dinamica EGO]] | + | \\ |

+ | \\ | ||

+ | ===Congratulations, you have successfully completed this lesson!=== | ||

+ | \\ | ||

+ | ☞[[lesson_19|Next Lesson]] | ||

+ | \\ | ||

+ | ☞[[:guidebook_start| Back to Guidebook Start]] |