Goose Management Model ODdox  1.02
ALMaSS Goose Management ODdox Documentation

The goose management model description following the ODdox protocol


To predict the spatial behaviour and habitat use of pink-footed geese during their over-wintering stop in Denmark.


Model goose populations consist of adults and juveniles, some of which are members of family groups, the others are considered as members of loose flocks of non-breeders. The model considers three species of geese:

  1. Pink-footed geese Anser brachyrhynchus
  2. Greylag geese Anser anser
  3. Barnacle geese Branta leucopsis

Each follows the same basic modelling approach differing only in the way the models are parameterised. All individuals are classified into types but are all descended from the base class Goose_Base. Hence Goose_Base has all the functionality common to all geese of all species. Each possible goose type is listed by the enumeration ::GooseSpecies. For each species, two types are possible, family groups or non-breeders. This information is held in the enumeration GooseSpeciesType.

The spatial scale considered depends on the maps used as input variables, but ideally would cover all main pinkfooted goose roosting and feeding locations in Denmark. Spatial resolution is the standard ALMaSS resolution of 1m2.

Individual goose attributes

The format here describes the type of the variable, a link to the program code declaration and a brief description.

Goose_Base is the class from which all other geese are descended. All attributes and behaviour present in Goose_Base are also part of the descendent classes, although behaviours can be modified such that different types of geese will do the same thing in different ways (e.g. family flocks can have different behaviour than individual nonbreeders).

Goose_Base attributes:

These variables are static, i.e. considered to be the same value for all Goose_Base descendents:

These varibles are individually set:

These varibles are programmatic structures and do not represent biological entities or inputs:

Decendent goose classes:

Other classes declared in Goose_Base:

The TMaxIntakeSource class is a construct to hold information required to classify goose habitat use. TMaxIntakeSource attributes:

Goose memory

The GooseMemoryMap class is a construct representing the memory functions of all geese. The structure and processes are common but information held there is specific to each individual goose. The memory concept is based on locations that the goose has experienced and remembers. Decay rates describe the rate at which the memory of a threat or food resource fades. Memories decay if not refreshed and updated.

Each location is stored in a GooseMemoryLocation structure. GooseMemoryMap attributes:

GooseMemoryLocation holds the data for a single goose memory. GooseMemoryLocation attributes:

Goose population manager

Goose_Population_Manager is descended from the standard Population_Manager class. It manages the lists of geese. Goose_Population_Manager attributes:


The basic time-step of the model is 10 minutes. Geese will update their status based on integrating the previous days behaviour, experiences and activities.

Food resource dynamics are considered per landscape element polygon. This entails inputs from harvesting (crop dependent), background loss rates (assumed to be degredation, germination and consumption by non-goose species), management input losses e.g. tillage, and goose feeding depletion rates.
The degredation rate is controlled by the input variables cfg_goose_GrainDecayRateWinter and cfg_goose_GrainDecayRateSpring whereas the spilled seed concentration is determined by field observations of spillage (see section 4.G STOCHASTICITY).

Food dynamics are updated on a daily basis in terms of inputs from spilled grain/maize and resource depletion by non-goose sources. Grain and maize resource depletion by geese is integrated throughout the feeding day (i.e. updated in each time step) since within day food dynamics can affect the goose responses. Growth of grass and cereals is updated daily as is the depletion of this resource by geese (and other animals like cattle).

Perceived predator threat or openness is calculated by Landscape::CalculateOpenness. It follows the observations of Madsen 1985 on disturbance of pink-footed geese in Jutland, Denmark. The idea is that each open space (e.g. a field) gets a score based on the maximum distance to nearest objects which hinders free view for the goose if the goose stands anywhere on the field and rotates 360°. The distance is curtailed by trees or any tall objects, but also roads. For speed optimization the starting point for the openness calculation is incremented in 10 m steps and the direction is incremented 90° giving 4 assessments per point, see Fig. 1.

Fig 1. Openness calculation. In this example the shortest distance at point P1 is d, in point P2 b. Between P1 and P2, P2 has got the largest disance (P2-b > P1-d), hence the P2-b is the openness score assigned to Field A. The point in Field B illustrates the fact that distances can span field boundaries and cross water.

The goose's within season memory operates on the basis that as it explores the environment it learns about the forage quality of different locations and remembers these. These memories decay with time if not reinforced by new visits.

Major simulation control is described by the following diagram:

Fig 2. Simulation control

This control is done by Goose_Population_Manager::DoFirst which calls Goose_Population_Manager::DoImmigration and Goose_Population_Manager::DoEmigration to handle the addtion and removal of geese from the DK simulation area.

Timing of major events (here we only give links to the config variables for pinkfoot):

Fig 3. Goose state diagram. Boxes shows possible states, blue arrows possible transitions between states and red arrows indicate external events


Goose energetics uses a simple metabolic model. A daily energy budget excluding flight is assumed based on the weight of the bird. Flight costs are then added to this energy budget based on distances moved each day. Food intake results in energy intake up to a daily maximum allowed input (see cfg_goose_MaxAppetiteScaler). Excess energy is converted to energy reserves up to a maximum energy reserve set by a proportion of body weight (see cfg_goose_MaxEnergyReserveProportion). Daily energy deficits are taken from the energy reserves, and if these fall below a fixed proportion of the body weight the goose will leave the area for better foraging (see cfg_goose_LeavingThreshold).

We use the same principles for energetics calculations for all three species considered in the model. When available we use species specific parameters in these equations, but will in the absence of species specific information scale proportional to body weight.

General Energetic Calculations


We calculate flight costs based on the body weight of the individual goose and its BMR. Specifically we calculate flight cost as 12 times BMR divided by 24 hours to get the hourly cost of flight. We divide this by an average flight speed of 57.6 km/hour (measured on migrating brent geese: Green & Alerstam 2000). This yields a cost in kJ/km which we further divide by 1000 to get cost per meter, and then by 1000 to get the cost per gram. This yields the following a flight cost of 0.000002079 kJ per gram per meter.


Goose_Base::m_BMR in kJ per day is calculated by: m_BMR = 4.19 x 78.3 x m_weightTotal0.72, where Goose_Base::m_weightTotal is the attribute that holds the weight of the goose. Here 4.19 x 78.3 is held in cfg_goose_BMRconstant1 and the exponent in cfg_goose_BMRconstant2.

Thermal costs

Lower critical temperatuer (LCT) is based on the allometric relationship from Kendeigh et al. (1977). Again we use species-specific approach, the LCT (based on body masses of barnacle 1880, pinkfoot 2524 and 3454 g respectively) will be:

  • Barnacle: 12.1 °C
  • Pinkfoot: 11.1 °C
  • Greylag: 10.8 °C

When ambient temperatures fall below LCT, thermal costs add to the daily energy budget (DEB). Thermal costs are calculated by a linear function of the difference between the actual temperature and the lower critical temperature (cfg_goose_pf_Thermalconstant for pinkfooted goose) multiplied by a constant (cfg_goose_Thermalconstantb in kJ/day), see e.g. Clausen et al. 2012. So for pink-footed geese we have: cfg_goose_Thermalconstantb * (cfg_goose_Thermalconstant_pf - temp) (see Goose_Population_Manager::DoFirst())

The cfg_goose_Thermalconstantb is set at 1.272 kJ/day per hour per degree below LCT Lefebvre & Raveling 1967.

Daily Energy Budget (DEB)

For each goose we calculate a daily energy budget based upon its sum of BMR and thermal costs. The daily energy budget for the goose is held in the attribute Goose_Base::m_DEB as total kJ required. Other activity costs (flying) are added to this budget as they accrue throughout the day. At the end of each day the total forage intake is used to calculate the net energy gain or loss for the day. This is simply by subtraction of m_DEB from the daily energy intake which is saved recorded in Goose_Base::m_energyToday. For other activity costs we use a multiplier of the BMR. Enery expenditure in multiples of BMR for the daytime period spent on foraging sites is 1.65 based on Madsen 1985 (see cfg_goose_daytime_BMR_multiplier). Therkildsen & Madsen 2000b assumes that night time roosting equals an energy expenditure of 1.3 x BMR (see cfg_goose_nighttime_BMR_multiplier) Hence, values of 1.65 and 1.3 BMR are used and the proportion of time spent on the roost is assumed to be the proportion of the day when it is dark. See Goose_Base::StartDay

Energy Reserves Calculation

After m_DEB is subtracted from Goose_Base::m_energyToday, if the result is positive then we have a net gain in energy. This is translated into fat and added to the fat stores held in Goose_Base::m_energyReserve, if negative then the energy reserves are reduced by the equivalent kJ fat required to produce the kJ of deficit. Calculations to and from kJ and fat cost energy, thus the fat reserve energy is less than the kJ raw energy used to create them. Likewise the energy obtained from mobilizing fat is less than its pure calorific value. Both translation rates between kJ and fat, and fat and kJ are determined by the input variables cfg_goose_EnergyContentOfFat and cfg_goose_MetabolicConversionCosts. The corresponding values are stored in Goose_Base::m_GooseKJtoFatConversion and Goose_Base::m_GooseFattoKJConversion The energy reserve calculations are done at the start of every new day before any activity occurs, in Goose_Base::StartDay().


Foraging is the most important and complicated part of the energetics. It can be separated into two main parts: the first is finding and moving to a forage site, the second the forage intake rate calculations.

Forage Site Location

The geese will move to a forage site that is remembered as a good one, a new one found when exploring, or one found by following another goose. Flight costs involved with all movements from the roost to forage locations are calculated as they accrue during the day as costs per m travelled. Exploration flight costs are also added to the m_DEB for the day. Choices made by the geese in determining whether to return to a forage location, seek a new one or follow are made in Goose_Base::st_ChooseForageLocation and controlled primarily by the goose's memory, i.e. it's knowledge of the landscape, and a probability of following another goose.

Forage Intake

Forage intake by the geese is dependent upon a number of factors. The amount of forage available as grain, maize or grazing and the species specific functional response to these resources, the number of geese present and the amount of snow in the landscape. Below we provide more details on the implemenation.

  • When the birds are feeding on grain then the functional reponse is based on Amano et al. (2004) (converted to kJ from g/dw by multiplying by 17.67) with assumption that white-fronted geese Anser albifrons and pinkfooted geese have a comparable response and that the energy content of grain vs. rice follows the weight difference (grain weighs app. the double of rice). For greylags and barnacle geese the response is scaled based on the relationship between body mass and intake rate from Durant et al. (2003). For all three species the digestibility is assumed to be 0.695.

The amount of grain present on a field depends on the time since harvest - with a decay rate assumed to represent loss to other organisms and spoiling (the daily decay rate is controlled by the configs cfg_goose_GrainDecayRateWinter and cfg_goose_GrainDecayRateSpring in Elements.cpp). The amount present on the day after harvest is randomly drawn from a distribution obtained from field data from 2013 & 2014 from cereal fields in Jutland, Dk (see FarmManager::GetSpilledGrain()). The amount of forage available to a goose depends on the density of grains (expressed as grains per m2) and on the species specific response (Fig. 3).

  • The situation when feeding on maize is similar to grain, but here the functional response is based on field observations of barnacle geese made with wildlife cameras in Jutland, Dk in 2015. The digestibility of maize is 0.87 (Value found for Bewick's swans from Nolet, B. unpubl). Again we scale to the two remaining species using the relationship between body mass and intake rate from Durant et al. (2003). The amount present on the day after harvest is randomly drawn from a distribution obtained from field data from 2015, 2016 & 2017 see Clausen et al. 2018 Fig. 3. Functional response for geese on grain and maize Fig. 3. Functional response for geese on maize and grain
  • The situation with grazing differs from grain and maize. This is primarily dependent upon the height of the vegetation and we make an assumption that there is no lower limit of food quality, but that food quality is constant at 19.8 kJ per g dry weight of plant material. Figure 4 shows the kJ obtained per minute as a function of grazing height and is for pinkfeet based on Therkildsen & Madsen 2000a, and for barnacle and greylag a parabolic relationship fitted to the data from Durant et al. (2003). This function returns a measure of grazing intake rate (grazingKJ).
    Fig. 4. Functional response for geese on grass
  • The actual amount of forage obtained also depends on goose density. The time spent foraging depends on the flock size at the foraging location. The intake rate is a capped-linear relationship following Pettifor et al. (2000) (Fig. 5). The result of this function can be called the density adjusted feeding rate (densFR) Fig. 5. Functional response for density of geese
  • Snow cover reduces the intake by 5% per 1 cm of snow (see cfg_goose_snow_scaler).

The amount forage obtained in a 10 minute timestep of the model is therefore given by: kJ = intake per min * 10 * densFR * (1 - snowdepth*0.05) where snowdepth is measured in cm.

Limits to forage intake

The individual with the higest intake in Therkildsen & Madsen (2000a) had 404 g AFDW assuming an energy contet of 19.8 kJ/g and assimilation of 0.404 this gives = 3232 kJ. This can be scaled relative to BMR of 670.75 kJ for a 2.7 kg goose to give a scaling against BMR of 4.8x (4.82). In the absence of other data we have used this scaling factor for barnacles and greylags. This value forms the default for the configuration variable cfg_goose_MaxAppetiteScaler

Lower limits to foraging are defined as the intake rate that will allow the geese to obtain positive energy balance (value stored in Goose_Base::m_mingooseforagerate). This value changes with the daylength and temperature. However, geese will not continue to search for forage locations that will meet their minimum forage rate. Instead their minimum acceptable forage rate is reduced with each unsuccessful attempt to find food. Once they have found food, the minimum forage rate is reset. This is controlled on the individual level and is controlled in Goose_Base::m_Indivmingooseforagerate.



The pattern of goose usage of the landscape in time and space is an emergent property of the goose management model.

  1. Geese aggregate in flocks as a consequence of their foraging decisions as well as their likelyhood for following other geese, thus the flock size distribution is an emergent property.
  2. The spatial distribution of geese in the landscape is determined by food availability in the landscape and foraging decisions by the geese and is therefore also an emergent property.
  3. Similarly, the distances from the roosts to the locations where geese are foraging are a consequense of foraging decisions and the efficiency with which the geese explore the landscape surrounding the roosts.
  4. The foraging habitat selection of the geese is determined by the energetics related to the amount and type of forage (see the section GOOSE ENERGETICS), which in turn is an emergent property of the dynamic landscape. The distance to the foraging locations also affect the habitat selection of the geese by favoring the locations that are closer (the geese are minimizing energy expenditure).
  5. The time spent foraging depends on the available food resources, the flock sizes and the weather (snow cover reduces the intake).
  6. Upon initiation the geese have species specific, but equal weight. As the simulation runs the energetics determine the weight development for the indervidual. The distribution of weights within the population is an emergent property.


The geese will adopt a foraging strategy which will adapt to the environmental conditions created by food resource distribution and competition both within and between species.


Fitness is measured in body condition of the goose, but has no consequences for mortality. Geese will leave the simulation when experiencing prolonged decline in body condition.


Each individual will over time build up a memory map of previously visited forage locations. This allows the individual to make predictions about conditions at a number of locations and act on these predictions.


Sensing happens in several different ways. Geese sense:

  • The food resources present at locations they visit.
  • The density of other geese (both conspecifics and other species) at locations they visit.
  • Preceived predator threat (via the openness score).
  • Weather conditions (temperature and snow cover).


There are two modes of goose-goose interaction:

  • When leaving the roost and during within day movements, the individual goose may choose to follow other geese.
  • When foraging the density of geese on the same forage location affects the intake rate for the individual.


Stochasticity is used extensively in the model. Primarily to make foraging decisions based on weighted probabilities, but also for events not directly modelled mechanistically, e.g. crop management.

  • Emmigration events not triggered by prolonged decline in body condition are stochastic.
  • The birds do not leave their roost all at once, but are staggered around a mean leave time which is set by the input variable cfg_goose_RoostLeaveDistMean, the variation around the mean leave time is determined by the input cfg_goose_RoostLeaveDistSD. From this distribution each individual is stochastically assigned a value daily that gives the bird is leave time.
  • When a bird leave the roost in the morning it will make a decisions based on a probability whether to follow another bird or go exploring on its own. Similarly during day a bird makes decisions based on probabilities whether to go foraging locations where other birds are foraging, or whether to set off on it own.
  • Distribution of spilled grain and maize is determined by random draw from distributions of spillage collected in the field in Jutland, Denmark in 2013 & 2014.
  • When exploring the landscape a goose will randomly pick the direction and distance in which to explore.


Goose family groups and non-breeding flocks are collectives used in the model.


  • Flock sizes: Species specific flock sizes are recorded daily in the ouput file GooseFieldForageData.txt. From these flock size distribution are derived.
  • Habitat selection: All vegetated polygons have a type and the types of vegetation and their state constitute a goose potential goose habitat. The habitat type is recorded in the output file GooseHabitatUseFieldObsStats.txt.
  • Distance from roost to forage location: The polygons where geese forage are recorded in the output file GooseFieldForageData.txt. From these the distance to the nearest roost is calculated for each polygon/species combination (i.e. nearest roost is not neccessarily the some for all species).
  • Weights: Individual weights are recorded daily in GooseEnergeticsData.txt.
  • Forage locations: The number of forage locations that an individual goose uses per day is stored in GooseIndLocCountStats.txt.
  • Reasons for leaving: When a goose leaves the simulation (e.g. due to poor body condition) the reason for leaving is stored in GooseLeaveReasonStats.txt.
  • Energetics: The daily energy budget and balance in addition to the standard errors are stored in the file GooseEnergeticsData.txt
  • Daily flight distance: The mean daily flight distance and standard error is stored in the file GooseEnergeticsData.txt
  • Foraging time: The mean daily time spent foraging and standard error is stored in the file GooseEnergeticsData.txt


A year of landscape simulation is necessary before populating the model with geese. Initial starting points are the current estimated numbers of geese arriving at the simulated location.


We require maps for the area to be simulated and weather as well as the parameters described below. Maps and weather are standard inputs.

Input parameters:


The goose management model depends on the Weather and Landscape classes. The landscape class provides details of the farming activity, preceived threat level (openness) and food resource. The latter two being extensions to be added to the landscape for this project. The weather class provides information on temperatures which has consequnces for metabolic rates and snow depths which can prevent goose foraging. The Goose_Population_Manager is descended from Population_Manager and performs the role of an auditor in the simulation. Many of the functions and behaviours needed to execute and ALMaSS model are maintained by the Population_Manager.


Amano, T., K. Ushiyama, G. Fujita and H. Higuchi (2004). Alleviating grazing damage by white-fronted geese: an optimal foraging approach. Journal of Applied Ecology 41(4): 675-688.

Clausen, K. K., P. Clausen, C. C. Fælled and K. N. Mouritsen (2012). Energetic consequences of a major change in habitat use: endangered Brent Geese Branta bernicla hrota losing their main food resource. Ibis 154(4): 803-814.

Clausen, K. K., Madsen, J., Nolet, B. A. and Haugaard, L. (2018). Maize stubble as foraging habitat for wintering geese and swans in northern Europe. Agriculture, Ecosystems & Environment 259: 72-76.

Durant, D., et al. (2003). The functional response in three species of herbivorous Anatidae: effects of sward height, body mass and bill size. Journal of Animal Ecology 72(2): 220-231.

Duriez, O., et al. 2009. What decision rules might pink-footed geese use to depart on migration? An individual-based model. Behavioral Ecology 20(3): 560-569.

Madsen, J. (1985). Impact of Disturbance on Field Utilization of Pink-Footed Geese in West Jutland, Denmark. Biological Conservation 33(1): 53-63.

Madsen, J. (1985). Relations between Change in Spring Habitat Selection and Daily Energetics of Pink-Footed Geese Anser brachyrhynchus

Kendeigh, S. C., et al. (1977). Avian energetics. Granivorous birds in ecosystems. J. Pinowski and S. C. Kendeigh. Cambridge, UK, Cambridge University Press: 127-204.

Lefebvre, E. A. and D. G. Raveling (1967). Distribution of Canada Geese in Winter as Related to Heat Loss at Varying Environmental Temperatures. Journal of Wildlife Management 31(3): 538-546

Sibly, R. M. and P. Calow (1986). Physiological Ecology of Animals. Oxford, Blackwell Scientific Publications. pp 54-55.

Therkildsen & Madsen 2000a: Assessment of food intake rates in pinkfooted geese Anser brachyrhynchus based on examination of oesophagus contents. - Wildlife Biology 6: 167-172.

Therkildsen & Madsen 2000b: Energetics of feeding on winter wheat versus pasture grasses: a window of opportunity for winter range expansion in the pink-footed goose Anser brachyrhynchus. Wildlife Biology 6, 65-74.