SkyPig modelling framework is designed for the individual-based population modelling of vertebrates. Currently models of two species (woodpigeon and skylark) are implemented with the purpose of pesticide risk assessment.
The main class of the model is Model
in package model.core
that includes the main
function. Config
, Observer
and World
are created at the beginning of the execution. Config
holds the parameter values from configuration file and provides them to all the entities in the model. It also provides basic log info for verification file (see below). Observer
or one of its inheriting classes is responsible for storing the model results in the database. Observer
collects the Signatures
of all the objects implementing the Observable
interface, but it may also collect any other type of information, depending on the specification. World
is the main environment of the model. It creates, stores and manages Agents
of different types, is responsible for their scheduling and invokes Observer
to store results. For the two species implemented it was not necessary to overwrite World
in species-specific packages. For running the model in verification mode, the Worlds'
field verificationMode
should be set to true. The interface SpeciesFactory
should be implemented in any species-specific package to enable creation of Agents
from proper species-specific classes.
Agent
is the superclass for three types of modelled entities: Animals
, Nests
and LandscapeUnits
that reflect the real animals, their nests as collections of offspring and landscape fields as specified in the initialisation file. Direct subclasses of Agent
: Animals
, Nests
and LandscapeUnits
contain the parts common for the two species implemented, but are all overriden in species-specific packages to include additional functionality. They may or may not serve as superclasses for the species added in the future. Agents
communicate by the means of Messages
. Inbox
and Outbox
are specified for each Agent
to receive and send Messages
.
CropRotation
and Resource
are used in LandscapeUnit
to set the field-specific scheduling of consecutive crops and the food types available on the field during periods of different crops.
Species specific packages are named after the species they represent, at the moment: model.skylark
and model.woodpigeon
. They both contain subclasses of the Agent
types specified in model.core
: Animals
, Nests
and LandscapeUnits
that specify species-specific behaviour and physiology and the subclass of SpeciesFactory
responsible for creation of Agents
of the proper classes. Additionally, model.skylark
contains SkylarkTerritory
class providing the functionality of territories and SkylarkCalibrationObserver
class responsible for gathering and storing the output for calibration purposes. Model.woodpigeon
contains WoodpigeonForaging
class used for the structural sensitivity analysis of the model to different foraging strategies.
The documentation may not be updated in some sections. However, all the class, method and fields comments that include the