A C++ IMPLEMENTATION OF AN INDIVIDUAL LANDSCAPE MODEL/

Citation
Wr. Congleton et al., A C++ IMPLEMENTATION OF AN INDIVIDUAL LANDSCAPE MODEL/, Ecological modelling, 103(1), 1997, pp. 1-17
Citations number
27
Categorie Soggetti
Ecology
Journal title
ISSN journal
03043800
Volume
103
Issue
1
Year of publication
1997
Pages
1 - 17
Database
ISI
SICI code
0304-3800(1997)103:1<1:ACIOAI>2.0.ZU;2-3
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 col lection of statistics on system components may be required. All of the se tasks can be effectively achieved through object oriented programmi ng (OOP). The C + + programming language is the object oriented langua ge utilized in the implementation described. Object oriented programmi ng can be utilized to facilitate the organization and development of d ynamic models of biological systems. A C + + hierarchy of classes desc ribing objects in the system can start at the level of machine process ing. A binary object can use individual bits of memory to represent bi nary data. Computer memory requirements can be minimized by using a li nked 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 ap plication. These machine oriented classes can then be inherited into a n individual animal class with binary data (male/female, diseased/nond iseased) and a population class which is a linked list of individuals. The binary arithmetic and memory pointers involved in these base clas ses can be completely transparent to the user of the individual and po pulation classes which are described in biological rather than machine terms. OOP can facilitate the development of a description of the ind ividual, population, landscape and their interactions. A landscape obj ect can be described by a grid of rectangular cells linked on four sid es to adjoining cells by memory pointers. These memory pointers to adj oining 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 coordin ates of objects located on the grid can be utilized to access the data for the cell in which it is located. Since grids describing landscape s can be large and heterogeneous, GIS can be utilized for grid initial ization and for analysis of spatial data in the simulation output. A s imulation 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 specif ied increments until an event occurs. Events can be either scheduled l ong 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 popul ations. 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 aff ected the pattern of landscape usage through time. Source code and doc umentation are available. (C) 1997 Elsevier Science B.V.