Modeling+Forest+Growth+and+Yield

=Overview= toc

The forest growth and yield models perform a valuable function in determining the quantity and quality of standing timber available for resources extraction (from a timber management point of view), and also determining the structural characteristics of the stand, which in turn will influence the suitability for wildlife habitat. Below are a range of growth models that can be applied across various forest types in northern Wisconsin that can provide periodic estimates of stem density and size.

The strategy for implementing forest growth is to have the growth model applied on the server in order to update the state of forests during the 'overnight' period. Currently, the world is initialized by randomly generating a mean diameter value for each tile in the world. This value is derived from data representing the distribution of mean diameter sizes across Northern Wisconsin, obtained from the Forest Inventory and Analysis (FIA) program. From this, a diameter distribution is generated, which describes the number of trees in various size classes within the tile. The increase in resolution obtained by using the diameter distribution (vs. just a mean tree size) allows more accurate application of harvest practices, and provides greater detail regarding the forest structure (which in turn relates to habitat suitability and ecological functioning for a range of species). Forest growth in the game is processed using an adaptation of the approach utilized in the NorthPro forest growth and yield model. More detail is available below.

=Generating Mean Diameter Values=

Forest tiles are initially provided with a ‘tree size’ value, which is obtained from the matlab algorithm provided by Van. I’m pretty sure this is derived from a summary of forest inventory and analysis (FIA) data describing mean diameter of trees in Wisconsin (maybe northern Wisconsin?). The result is that each tile is provided with a ‘mean tree size’ (D) value.

=Generating Diameter Distributions=

The mean tree size value (D) is used as a basis to determine the distribution of tree sizes. Tree sizes are represented by twelve, 2-inch diameter classes, with each class representing the number of trees on the tile that are of the corresponding size. There are two different algorithms for determining the distribution of tree sizes within a tile; one algorithm to reproduce an even-aged distribution of counts in the diameter classes, and one to create an uneven-aged diameter distribution. As we currently have no information describing the relative abundance of even- vs. uneven-aged stands, the algorithm used to initially populate the stands is chosen at random.

Initializing Even-aged Stands
The generation of even-aged stands starts by randomly assigning a coefficient of variation (cv) for the stand. This value is drawn from a beta distribution parameterized as (alpha = 2, beta = 5). The use of a beta distribution bounds cv to fall between zero and one, and the specific parameters provide a peak at approximately 0.2, which appears to provide realistic behavior. The product of the coefficient of variation and the mean tree size is used to calculate the standard deviation of diameter sizes

math sd = D * cv math

which is then used (in concert with D) to parameterize a Gaussian distribution. The Gaussian distribution is then sampled to provide tree diameter sizes, which are added to the tile-level diameter distribution until the target basal area definition value is reached.

Initializing Uneven-aged Stands
=Modeling Forest Growth and Yield=

Forest Growth
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 **midpoint** of the current size class (diameter class - 1) that the operation is being performed on
 * //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

Forest Yield
=Additional Information=

A general overview of forest distribution across Wisconsin, including information by size, ownership, species, and age. I believe it is largely obtained from FIA data, and does not include information regarding even- vs. uneven-aged stands.

Other growth models