Forest+matrix+growth+model

Forest growth in the Trails Forward system is based on the NorthPro Model, developed to model the growth of uneven-aged stands, although we use it to model even-aged stands as well. This model is based on a matrix algebra approach, where mortality and transition between size classes is implemented via matrix multiplication (or, a series of equations) and the ingrowth (recruitment of new individuals into the smallest size class) is calculated separately and added in. This can be formally expressed as:

math \left[ \begin{matrix} T_{2,t+1} \\ T_{4,t+1} \\ T_{6,t+1} \\ \vdots \\ T_{24,t+1} \end{matrix} \right] = \left[ \begin{matrix} S_2(1-U_{2,4}) & 0 & 0 & \cdots & 0 \\ S_2U_{2,4} & S_4(1-U_{4,6}) & 0 & \cdots & 0 \\ 0 & S_4U_{4,6} & S_6(1-U_{6,8}) & \cdots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \cdots & S_{24} \end{matrix} \right] \left[ \begin{matrix} T_{2,t} \\ T_{4,t} \\ T_{6,t} \\ \vdots \\ T_{24,t} \end{matrix} \right] + \left[ \begin{matrix} Ingrowth \\ 0 \\ 0 \\ \vdots \\ 0 \end{matrix} \right] math

The parameters need for this model are:


 * //S//** = survival: proportion of a given size class that survive to the next time step, calculated as 1 - mortality (calculated below)
 * //U//** = upgrowth: proportion of a given size class that advance to the next stage
 * //I//** = ingrowth: number of new individuals appearing in the smallest size class (regeneration)
 * //D//** = diameter: refers to the diameter of the current size class that the operation is being performed for
 * //BA//** = basal area: a measure of stocking of a forest stand; calculated as the sum of the cross-sectional area of all trees, individually calculated as 0.005454*D^2
 * //S//** = site index: a measure of site productivity; we have no data for this, so is assumed to be constant at 80

Survival, upgrowth, and ingrowth are calculated individually, and are calculated as a function of the landcover type. The NorthPro documentation provides an algorithm to compute proportional mortality; in order to properly implement into the system above, proportional //survival// has to be calculated (1 - mortality). The algorithms produced in the NorthPro system represent different algorithms for shade-tolerant, mid-tolerant, and shade-intolerant species; in Trails Forward these tolerance classes are mapped to deciduous, mixed, and coniferous (respectively). The woody wetland covertype is treated the same as the mixed forest in terms of growth rates. However, these mappings of shade-tolerance and forest type are inaccurate, and should be changed in the future. That said, they should suffice for the time being.

These equations are specified as:

Upgrowth
math U_{deciduous} = 0.0164 - 0.0001BA + 0.0055D - 0.0002D^2 \\ U_{mixed} = 0.0134 - 0.0002BA + 0.0051D - 0.0002D^2 + 0.00002S*D \\ U_{coniferous} = 0.0069 - 0.0001BA + 0.0059D - 0.0002D^2 \\ U_{woody wetland} = 0.0134 - 0.0002BA + 0.0051D - 0.0002D^2 + 0.00002S*D \\ math

Mortality
math M_{deciduous} = 0.0336 - 0.0018D + 0.0001D^2 - 0.00002S*D \\ M_{mixed} = 0.0417 - 0.0033D + 0.0001D^2 \\ M_{coniferous} = 0.0418 - 0.0009D \\ M_{woody wetland} = 0.0417 - 0.0033D + 0.0001D^2 \\ math

Ingrowth
math I_{deciduous} = 18.187 - 0.097BA \\ I_{mixed} = 4.603 - 0.035BA \\ I_{coniferous} = 7.622 - 0.059BA \\ I_{woody wetland} = 4.603 - 0.035BA \\ math

Task
Implement this model into the netLogo vilas version you created last week. The tree model should update on an annual basis, but (as you'll see in the next exercise) we'll want each tick to represent a day. You'll have to set up a counter to make sure tree growth is only implemented once per year (probably on the first or last day of the year). Run it and see how it does. Even aged stands (normal distribution of sizes) will probably act funny, but the uneven-aged stands should grow properly.