Recasting the model in simile
The essence of Vanclay’s (1989a) model is summarised in the Simile model illustrated in Figure 1. Input data comprise a series of triplets reflecting species, size (diameter at breast height, 1.3 m above ground) and stocking (N/ha) of each tree measured on a field plot. The symbols used in Figure 1 are standard system dynamics notation common to several visual modelling environments (Ford 1999), and are not merely a diagram, but form a model with which simulations may be made. Rectangles (
) are stocks or compartments that represent an amount of substance (numbers of trees, size of a tree), and change only via a flow (
, e.g., die, grow). Clouds (
) denote exogenous elements of no further use in the model. Variables (
) may contain data, equations or lookup tables. Submodels can represent a single instance (
) usually to provide context to other elements, or may represent multiple instances (
) such as a list of trees (cf. an array).
The elements of Figure 1 represent the key information needed for individual-based modelling of forests (Weiskittel et al.,2011). These data may be read from file by the growth model, with each input record forming one of many tree records or cohorts in the model, a technique used widely in forest growth modelling (Vanclay, 1994b; Porte and Bartelink, 2002). These cohorts retain the species identity, and progressively increase tree size to reflect growth, and reduce stocking to reflect mortality.
Figure 1 is not merely a diagram, but when created in Simile, is the simulator that runs and creates simulated outputs. One of the strengths of Simile is that the user interface simultaneously creates a diagrammatic overview, the executable code, and model documentation (a ‘mouseover’ displays any comment included with each symbol).
Figure 2 contains additional detail to show how coefficients for equations are drawn from file, specific to each of a small number of species groups (e.g., Köhler and Huth, 1998). Stand basal area (BA) is computed from the size and stocking represented by each tree record. A key concept is that BA is external to the Tree record submodel and can ‘see’ all the diameters, and thus computes the stand-level statistic, whereas Grow sees only the single Dbh within its own Tree record. Figure 2 also adds influences that denote how both growth and mortality depend on tree size and stand density. Thus although Figure 2 is a crude and partial approximation of Vanclay’s (1989a) model, it gives a useful overview of much model detail and introduces concepts of Simile notation, most of which is standard system-dynamics notation.
Figure 3 adds recruitment to the model using the migration symbol (
). Because recruitment adds additional tree records, the Tree record submodel is no longer a list with fixed membership (like the input file with multiple outlines bottom right), but is denoted as a population (denoted by multiple outlines top left) in which the number of records can increase or decrease during the simulation. Thus the sunrise symbol (initial) indicates the initial membership of the population, and the migration (
) symbol (recruit) initiates the new records needed to simulate recruitment. The number of recruits is estimated from stand density. Whilst Figure 3 is a slightly simplified representation of Vanclay’s (1989a) model, it serves to explain several details of Simile in an accessible way. Readers seeking more specifics about other simulation constructs available in Simile are directed to Simulistics (2013).
A reviewer asked whether the migration symbol (
) could be changed from a bird to an icon that better represents tree dynamics: it can be, but such customization does not facilitate communication. To take an example from Microsoft: a user may not like the scissors icon used to denote ‘cut’ in Microsoft software, but everyone understands what this icon denotes, and shared understanding should take precedence over personal aesthetics.
One aspect of many forest growth simulators that is often poorly documented is that of record splitting, a technique introduced to emulate growth variation, and avoid bias associated with Jensen’s inequality (Jensen, 1906; Duursma and Robinson, 2003). This is an established technique often known as a ‘swindle’ (Jacoby and Harrison, 1962; Stage, 1973; Simon, 1976; Hedayat and Su, 2012) employed in many simulators either as binary splitting (e.g., Alder and Silva, 2000; Ledermann and Eckmüllner, 2004) or as tripling (e.g., Stage, 1973; Crookston and Dixon, 2005) to attain more realistic projections, by simulating heterogeneous growth deterministically without the overheads of stochastic simulation. Despite the care with which modellers craft this splitting into their source code, the resulting effects are rarely tested exhaustively, and may overlook serial correlation of growth (often handled implicitly via an estimate of one-sided competition, e.g., Cole and Stage, 1972). This inequality has the potential to introduce considerable bias into estimates (Valle, 2011). Simile provides an icon (
) to facilitate record splitting and inheritance of attributes (Figure 4) that facilitates exploration of this issue.
Figure 4 shows the major part of the Simile implementation of Vanclay’s (1989a) model. The ba submodel at top left simply tabulates the basal area and volume per tree by size class and by species; it provides a collation role and serves no functional purpose. The series of variables at top right extract the relevant species-specific parameters for use in other functions. Four symbols at bottom right influence the number of records in the tree list, creating the initial number (
), adding recruitment (
), splitting records (
), and removing redundant records (
) when they represent an infinitesimal stocking. The key functional components of this submodel lie within the Size and Stems submodels which estimate diameter increment and mortality respectively. Between these are two variables, rate and split, that deal with serial correlation of increments and record splitting respectively. When a large cohort is split into two smaller cohorts with faster and slower than average growth, rate maintains this growth difference to preserve the serial correlation specified by the user.
Figure 5 illustrates the recruitment submodel, which predicts regeneration within each species group, standardises it to the total expected recruitment (Vanclay, 1989a), and adds the stem count to a tally of saplings (by species class). When one of these counts exceeds a user-specified threshold, recruitment to the main model is initiated. This Recruitment submodel is functionally similar, but does not exactly replicate the algorithm in the original Fortran model, which initiated five new records at each time step, and subsequently amalgamated them during the process of rationalizing the Tree list. The approach illustrated in Figure 5 accumulates saplings until one of the species groups exceeds the user-specified threshold of abundance, and then transfers members of that species group to the main tree list. This approach minimizes the housekeeping required within the main Tree list submodel, and reproduces the commonly-observed tendency for rainforest recruitment to be clustered in time and space ( e.g., Okuda et al.,1997; Connell and Green, 2000; Nebel et al.,2001; Kariuki et al.,2006).
This alterative way to process recruitment illustrates one of the benefits of recasting models: advances in computer technology have created more revealing ways to represent concepts, and pose fewer restrictions on computational resources, allowing modellers to focus on good representations rather than computational efficiency (Vanclay, 2003). The challenge is for modellers to break free of old paradigms and fully exploit these new opportunities, and not merely follow a well-trodden path without question. Leary (1985, p.47), commenting on a related matter, warned that “what began as an interim solution (site index) to a difficult problem (geocentric approach [to site productivity estimation]) should not now be called the solution to the original problem” and his caveat applies equally to modelling.
Figure 6 illustrates the complete model, a Simile equivalent of Vanclay’s (1989a) Fortran simulator, which differs from the original in only a few minor respects. The Run control submodel (left, middle) contains a slider that enables users to adjust parameters that were deeply embedded in the original Fortran code, that control the frequency and variance of record splitting, the serial correlation of increments, and the granularity of the simulator. The ability to vary granularity was not available in Vanclay’s (1989a) model which was aimed at estate-level planning, and was implemented only later (Vanclay, 1991a). Granularity deals with the ‘lumpiness’ (cf. sugar lumps versus table sugar) of outputs and the use of stochastic functions. If a user stipulates a coarse granularity (e.g., 1.0), the simulator behaves as a single tree model with stochastic mortality of stems with frequency <1/ha so that individual tree records always represent at least 1 tree per hectare. In contrast, fine granularity (e.g., <0.01) ensures deterministic outputs with a resolution characteristic of estate-level averages.
In the original Fortran simulator, record splitting was hard-coded to assign 1.3 times the average increment to a quarter of the stems, whilst the remaining stems were assigned 0.9 times the predicted increment. In Figure 6, these growth rates are under user control as an easily-accessible slider. The conditions for initiating record splitting and the degree of serial correlation of increments were hidden deep in the original Fortran code, but are under user control as a slider in Figure 6. These controls could be shown explicitly as separate sliders, but for compactness are here compressed into a single vector.
The Parameters submodel (Figure 6, top right) contains parameters for diameter increment (Anon, 1987), for mortality and recruitment (Vanclay, 1989a), for volume estimation (Anon, 1981), and for harvesting and logging damage (Preston and Vanclay, 1988). The practice of collating all parameters into one submodel (rather than scattering them throughout the model) facilitates verification and maintenance of the simulator. The species grouping used in this model differs slightly from Vanclay (1989a) in using the same species groups for growth, harvesting and volume estimation, whereas Vanclay’s (1989a) model used a 3-digit species code, with each digit denoting the volume, harvesting or growth equation to be applied. These differences in the species grouping are minor, and the simplification employed here makes little practical difference and improves clarity for teaching.
The Simile implementation of this model encourages exploration of simulator assumptions not possible in the original version. For instance, a slider labelled Force BA (Figure 6 top left) allows users to over-ride the calculated stand basal area and thus to explore growth patterns and possible thinning regimes by holding standing basal area constant. Such experimentation is easy to implement within Simile, and can offer new insights and better understanding of a simulator.