roamR
is an R package that offers a toolset and framework for running Individual Based Models (IBMs - or Agent-Based Models). It was created as part of the DisNBS project (Distribution of seabirds in the Non-Breeding Season) which was a project within the Off-shore Renewables Joint Industry Partnership programme (ORJIP). While the project has specific goals in relation to Off-shore Wind Farms (OWF) and their potential effects on seabirds, the problem is quite general. This package can help build animal movement simulations, with the general problem broken down into logical components and imposes a level of transparent formality, such that the computational components are on a common footing, leaving focus on parametrisation and inputs/data.
roamR
is written in S4 and has been structured/implemented such that the simulations are well defined, but with a lot of flexibility in what the components can do. Animal IBMs are spatio-temporal and can be based on very disparate data sources - so roamR
is particular in its treatment of space (projections etc), time and units generally (as found in the units
package). The package was written with animals in mind (indeed one of the main classes is Species
), but we’ll use the agnostic term agent.
In brief - roamR
:
- defines the environment the animal interacts with, and how this functionally affects its movement or behaviour
- defines how animals move, with consideration of the environment, behavoural state, or condition
- defines the behaviours animals may engage in and how these change
- defines the general characteristics of a type of agent (a species definition)
- creates many agents with stochastic properties in line with their species definition
- runs the agents through the simulated environment over time, for a defined temporal resolution
- measures the agents throughout the simulation
- gives tools to query the mass of agents that have been simulated
A principal limitation in IBMs is the level of information you have about how the agents behave. roamR
is intended to work with very little information, up to very information rich. The test cases here cover a range of data support:
- Relatively data rich: Guillemots at the Isle of May, which are well studied.
- Relatively data poor: Red-Throated Divers in the North Sea, which are less understood.
At the more extreme information end, roamR
has been developed to simulate agents at a very detailed level, for example a population with extensive GPS tagging information. The exemplar that guided this was the Hidden Markov Model of McClintock & Michelot (2018) and subsequent fitting to detailed Fulmar track data.
Installation
roamR
is not currently on CRAN - installation is direct from github. You can use devtools to install:
devtools::install_github("dmpstats/roamR", ref = "master")