A C++ implementation of an individual/landscape model
Authored by WR Congleton, BR Pearce, BF Beal
Date Published: 1997
DOI: 10.1016/s0304-3800(97)00069-0
Sponsors:
No sponsors listed
Platforms:
C++
Model Documentation:
Other Narrative
Pseudocode
Model Code URLs:
Model code not found
Abstract
Dynamic models of biological systems are diverse, but have components in
common. The description of a system may involve multiple databases which
change and interact (individuals, populations, the landscape). A clock
is required to advance the system description through time. In addition, the generation of random variates from different probability
distributions, interpolation of values from tabular data, and the
collection of statistics on system components may be required. All of
these tasks can be effectively achieved through object oriented
programming (OOP). The C + + programming language is the object oriented
language utilized in the implementation described. Object oriented
programming can be utilized to facilitate the organization and
development of dynamic models of biological systems. A C + + hierarchy
of classes describing objects in the system can start at the level of
machine processing. A binary object can use individual bits of memory to
represent binary data. Computer memory requirements can be minimized by
using a linked list class to place objects in a list whose composition
and size vary as the program executes. The C + + feature of runtime
linking can connect a general base class with the data required for a
specific application. These machine oriented classes can then be
inherited into an individual animal class with binary data (male/female, diseased/nondiseased) and a population class which is a linked list of
individuals. The binary arithmetic and memory pointers involved in these
base classes can be completely transparent to the user of the individual
and population classes which are described in biological rather than
machine terms. OOP can facilitate the development of a description of
the individual, population, landscape and their interactions. A
landscape object can be described by a grid of rectangular cells linked
on four sides to adjoining cells by memory pointers. These memory
pointers to adjoining cells can be utilized to describe flows and
movement of objects over the grid. This base class grid description can
be inherited into a derived habitat class with additional data. The
location or coordinates of objects located on the grid can be utilized
to access the data for the cell in which it is located. Since grids
describing landscapes can be large and heterogeneous, GIS can be
utilized for grid initialization and for analysis of spatial data in the
simulation output. A simulation clock is required to advance the
description of the objects in the system and their interactions through
time. A base clock class advances time in specified increments, or
between events, or in specified increments until an event occurs. Events
can be either scheduled long term or triggered by a change in the system
and stored in an event queue by using the same base linked list class
used to describe populations. The type of events which occur in a system
are specified in a derived clock class which is accessed by the base
clock class when the program executes through run-time linking. An
example application is developed to describe winter kill of deer.
Analysis of the simulation output in a GIS showed simple rules for
individual animal behavior affected the pattern of landscape usage
through time. Source code and documentation are available. (C) 1997
Elsevier Science B.V.
Tags
Landscape
patterns
Population-dynamics
Mule deer
Elk