Using Ausfarm-Stock in APSIMUI

J.N.G. Hargreaves

05 Feb 2008

Summary

Introduction

The Ausfarm-Stock (Stock) component is used in APSIM to graze APSIM-Plant derived crops, such as Lucerne, Lablab and Wheat. The Ausfarm-Supplement (Supplement) component can also be used as a supplementary feed source for stock. Management operations can be carried out such as buying and selling of stock, supplementary feeding and moving stock to another paddock. Currently the paddock sizes are fixed at one hectare.

 

To use Stock in an APSIM simulation, three companion APSIMUI components are required – StockScienceConverter, StockHerbageConverter and FarmwiseSequencer.

e.g.

 

When Supplement is used, its companion SupplementScienceConverter is also required.

e.g.

 

All of these components are found in the APSIMUI Standard Toolbox in the Animals Folder. E.g.

 

A sample simulation (Wether_Lucerne_Supplement) of grazing wethers on lucerne with supplementary feeding of wheat is provided under the New menu.

APSIMUI components

·        Stock

The Stock component initialises with default properties and no animals.

·        StockScienceConverter

The StockScienceConverter initialises with the values specified in its properties grid e.g.

 

 

o   Debug

o   Stock_module

o   Conversion_model

o   Fraction_faeces_added

o   Fraction_urine_added

·        StockHerbageConverter

The StockHerbageConverter initialises with the values specified in its properties grid. E.g.

 

 

o   Debug

o   Conversion_model

o   Herbage_model

o   Herbage_module_name

·        FarmwiseSequencer

The FarmwiseSequencer initialises with properties specified in its INI file. These properties translate APSIM events to Ausfarm events and should only be altered after consultation with the SEG.

·        Supplement

Supplement initialises with the values specified in its properties grid.

 

 

o   Spoilage_time

 

 

The supplement store properties define the initial values of each supplement being used in the simulation.

 

 

·        SupplementScienceConverter

The SupplementScienceConverter initialises with values specified in its properties grid. E.g.

 

 

o   Debug

o   Supplement_module

 

·        Management

Pre-defined management rules of stock (cattle and sheep) and supplement feeding are found in the Stock folder under the Management folder in the Standard Toolbox.

E.g.

 

 

Pre-defined cattle management rules for buying, selling and moving stock.

 

 

Pre-defined sheep management rules for buying and selling stock.

 

 

Pre-defined supplement management rules for buying, mixing and feeding stock.

 

 

 

Stock Component Description

 

1. Purpose of Component

The STOCK component encapsulates the GRAZPLAN animal biology model, as described in:

Freer M, Moore AD & Donnelly JR (1997). GRAZPLAN: decision support systems for Australian grazing enterprises. II. The animal biology model for feed intake, production and reproduction and the GrazFeed DSS. Agricultural Systems 54 , 77-126.

 

All animals represented in a component instance share a common genotype.

The animals represented by a component instance are classified into groups . The members of each animal group have the same age class, but may have a range of ages (for example, an animal group containing mature animals may include four-year-old, five-year-old and six-year-old stock). The members of each animal group also have the same stage of pregnancy and/or lactation; the same number of suckling offspring; and occupy the same paddock. The set of animal groups changes as animals enter and leave the simulation, and as physiological events such as maturation, birth or weaning take place. Animal groups that become sufficiently similar are merged into a single group.

 

Each animal group has a unique, internally-assigned integer index , starting at 1. Because the set of groups present in a component instance is dynamic, the index number associated with a particular group may change over time.

 

Each animal group is also assigned a paddock . Paddocks are referred to by name in the STOCK component. It is the user's responsibility to ensure that paddock names correspond to instances of the PADDOCK component or other sources of necessary driving variables.

 

Each group also has a user-assigned tag and priority , which need not be unique. Tag values are generally used to manage distinct groups of animals in a common fashion. For example, all lactating ewes may be assigned the same tag value, which may then be used in management rules that keep them grazing together. Animal groups with different tag values are not merged even if they are otherwise similar. If tag values are assigned sequentially starting at 1, they can be used to generate summary variables. Priority values are used to allocate animals to paddocks in the draft event.

 

2. Initialisation Properties

The initialisation variable set is nearly completely optional. The idea is to allow the user to specify a minimal information set as well as a maximally detailed initialisation.

 

Property

Type

Units

Required?

Description

breed

string

Yes

Name of the animal breed. The set of valid breed names is set out below. Implicit in the breed is the animal type (sheep or cattle).

cattle

: number

: sex

: age

: weight

: max_prev_wt

: pregnant

: lactating

: no_foetuses

: no_suckling

: birth_cs

: calf_wt

: paddock

: tag

: priority

record

integer4

string

double

double

double

integer4

integer4

integer4

integer4

double

double

string

integer4

integer4

d

kg

kg

d

d

-

kg

No

Initial state of each animal group for cattle. Not meaningful if breed is a sheep breed.

•  Number of animals.

•  Feasible values are ‘cow', ‘cows', ‘heifer', ‘heifers', ‘steer', ‘steers', ‘bull', ‘bulls'.

•  Age of the animals.

•  Unfasted live weight of the animals.

•  Highest weight recorded to date.

•  Zero denotes not pregnant; 1 or more denotes the time since conception. Only meaningful for females.

•  Zero denotes not lactating; 1 or more denotes the time since parturition. Only meaningful for females.

•  Number of foetuses. Only meaningful for females with pregnant > 0.

•  Number of suckling calves. Only meaningful for females with lactating > 0.

•  Condition score at parturition. Only meaningful for females with lactating > 0.

•  Unfasted live weight of suckling calves. Only meaningful for females with lactating > 0.

•  Paddock occupied by the animals.

•  Initial tag value for the animal group.

•  Priority accorded the animals in the draft event

conception

double[ ]

-

No

Expected rates of conception with 1, 2 and 3 young for mature ewes or cows in average body condition, over a mating period lasting 2.5 oestrus cycles. Only the first two elements are significant for cattle.

death_rate

double

/yr

No

Base rate of animal mortality. Default is 0.0.

fleece_yield

double

kg/kg

No

Clean fleece weight as a proportion of greasy fleece weight. Default is 0.70. Only meaningful for sheep.

male_breed

string

No

Name of the breed of rams or bulls to which ewes or cows in this component instance will be mated. The default is breed . The set of valid breed names is set out below.

male_srw

double

kg

No

Standard reference weight of the rams or bulls to which ewes or cows in this component instance will be mated.. The default value depends on male_breed .

max_fibre_diam

double

m m

No

Maximum average wool fibre diameter. The default depends on breed .

param_file

string

No

Name of a file containing genotypic parameters. Default behaviour is to use a default parameter set that is compiled into STOCK.DLL.

peak_milk

double

kg

No

Potential maximum milk yield per head, in 4% fat-corrected milk equivalents. Only significant for cattle. The default value is 20.0.

ref_fleece_wt

double

kg

No

Breed reference fleece weight. The default value depends on breed .

sheep

: number

: sex

: age

: weight

: max_prev_wt

: fleece_wt

: fibre_diam

: pregnant

: lactating

: no_young

: birth_cs

: lamb_wt

: lamb_fleece_wt

: paddock

: tag

: priority

record

integer4

string

double

double

double

double

double

string

integer4

integer4

integer4

integer4

double

double

double

d

kg

kg

kg

m m

d

d

-

kg

kg

No

Initial state of each animal group for sheep. Not meaningful if breed is a cattle breed.

•  Number of animals.

•  Feasible values are ‘ewe', ‘ewes', ‘wether', ‘wethers', ‘ram', ‘rams', ‘crypto', ‘cryptos'.

•  Age of the animals.

•  Unfasted live weight of the animals.

•  Highest weight recorded to date.

•  Greasy fleece weight of the animals.

•  Average wool fibre diameter of the animals.

•  Paddock occupied by the animals.

•  Initial tag value for the animal group.

•  Zero denotes not pregnant; 1 or more denotes the time since conception. Only meaningful for ewes.

•  Zero denotes not lactating; 1 or more denotes the time since parturition. Only meaningful for ewes.

•  Number of foetuses or suckling lambs. Only meaningful for ewes.

•  Condition score at parturition. Only meaningful for ewes.

•  Unfasted live weight of suckling lambs. Only meaningful for ewes with lactating > 0.

•  Greasy fleece weight of suckling lambs. Only meaningful for ewes with lactating > 0.

srw

double

kg

No

Breed standard reference weight. The default value depends on breed .

 

Feasible values for the breed and male_breed properties are:

 

Sheep breeds

Sheep breeds

Cattle breeds

Cattle breeds

‘black face x white face'

‘polwarth'

‘angus'

‘friesian'

‘border leicester'

‘polypay'

‘ayrshire'

‘friesian x british'

‘border leicester x merino'

‘romney'

‘beef shorthorn'

‘guernsey'

‘columbia'

‘ryeland'

‘brahman'

‘hereford'

‘corriedale'

‘southdown'

‘brahman x british'

‘holstein'

‘delaine-merino'

‘suffolk'

‘brown swiss'

‘holstein x british'

‘dorset x merino'

‘targhee'

‘charolais'

‘jersey'

‘dorset'

‘texel'

‘charolais x british'

‘limousin'

‘finnsheep'

‘US corriedale'

‘charolais x friesian'

‘sahiwal'

‘hampshire'

‘US romney'

‘charolais x holstein'

‘simmental'

‘large merino'

‘US southdown'

‘chianina'

‘south devon'

‘medium merino'

‘US suffolk'

‘dairy shorthorn'

‘merino'

 

3. Subscribed events – sequenced

3.1. do_stock

Default sequencing: 7000

Computes development, intake, growth and reproduction of all animals.

 

4. Subscribed events – other

4.1. buy

Causes a given number and type of animals to enter the simulation.

Parameter

Type

Units

Description

number

integer4

Number of animals to be bought

sex

string

Sex of the animals. Feasible values are as for sheep : sex or cattle : sex , as appropriate.

age

double

months

Average age of the animals

weight

double

kg

Average unfasted live weight of the animals

fleece_wt

double

kg

Average greasy fleece weight of the animals. Only meaningful in sheep.

pregnant

integer4

d

Zero denotes not pregnant; 1 or more denotes the time since conception. Only meaningful for females.

lactating

integer4

d

Zero denotes not lactating; 1 or more denotes the time since parturition in lactating animals. Only meaningful for females.

no_young

integer4

Number of foetuses and/or suckling offspring.

young_wt

double

kg

Average unfasted live weight of any suckling lambs or calves.

young_fleece_wt

double

kg

Average greasy fleece weight of any suckling lambs.

 

4.2. castrate

Converts ram lambs to wether lambs, or bull calves to steers. If the animal group(s) denoted by group has no suckling young, has no effect.

If the number of male lambs or calves in a nominated group is greater than the number to be castrated, the animal group will be split; the sub-group with castrated offspring will remain at the original index and the sub-group with offspring that were not castrated will be added at the end of the set of animal groups.

 

Parameter

Type

Units

Description

group

integer4

Index number of the animal group, the lambs or calves of which are to be castrated. A value of zero denotes that each animal group should be processed in turn until the nominated number of offspring has been castrated.

number

integer4

Number of male lambs or calves to be castrated.

 

4.3. draft

Assigns paddocks to animals in such a way that animal groups with the lowest tag values are placed in the paddocks with the best pasture. This event has no parameters.

 

4.4. dryoff

Ends lactation in cows that have already had their calves weaned. The event has no effect on other animals.

If the number of cows in a nominated group is greater than the number to be dried off, the animal group will be split; the sub-group that is no longer lactating will remain at the original index and the sub-group that continues lactating will be added at the end of the set of animal groups.

 

Parameter

Type

Units

Description

group

integer4

Index number of the animal group for which lactation is to end. A value of zero denotes that each animal group should be processed in turn until the nominated number of cows has been dried off.

number

integer4

 

4.5. join

Commences mating of a particular group of animals. If the animals are not empty females, or if they are too young, has no effect.

 

Parameter

Type

Units

Description

group

integer4

Index number of the animal group for which mating is to commence. A value of zero denotes that all empty females of sufficient age should be mated.

mate_days

integer4

d

Length of the mating period.

 

4.6. move

Changes the paddock to which an animal group is assigned.

 

Parameter

Type

Units

Description

group

integer4

Index number of the animal group to be moved.

paddock

string

Name of the paddock to which the animal group is to be moved.

 

4.7. sell

Removes animals from the simulation.

 

Parameter

Type

Units

Description

group

integer4

Index number of the animal group from which animals are to be removed. A value of zero denotes that each animal group should be processed in turn until the nominated number of animals has been removed.

number

integer4

Number of animals to remove.

 

4.8. shear

Shears sheep. The event has no effect on cattle.

 

Parameter

Type

Units

Description

group

integer4

Index number of the animal group to be shorn. A value of zero denotes that all animal groups should be processed.

sub_group

string

Denotes whether the main group of animals, suckling lambs, or both should be shorn. Feasible values are the null string (main group), ‘adults' (main group), ‘lambs' (suckling lambs), ‘both' (both).

 

4.9. sort

Rearranges the list of animal groups in ascending order of tag value. This event has no parameters.

 

4.10. split

Creates two or more animal groups from the nominated group. One of these groups is placed at the end of the animal group list.

The division may only persist until the beginning of the next do_stock step, when sufficiently similar groups of animals are merged.

 

Parameter

Type

Units

Description

group

integer4

Index number of the animal group to be split.

type

string

Feasible values are:

‘age' All animals younger than value days are moved to a new group.

‘weight' All animals with live weight less than value kg are moved to a new group.

‘young' Only animals with suckling offspring are affected. Mothers with different sexes of young are divided, with the group with all male offspring remaining in place. For mothers with twins, three groups are created; a group with two male offspring, a group with two female offspring, and a group with one of each.

‘number' value animals remain in place and the remainder form a new group

value

double

Threshold age or weight, or the number to be split, depending on the value of type . Ignored if type is ‘young'.

 

4.11. tag

Sets the tag value for an animal group.

 

Parameter

Type

Units

Description

group

integer4

Index number of the animal group to be assigned a tag value.

value

integer4

Tag value to be assigned.

 

4.12. wean

Weans some or all of the lambs or calves from an animal group. The newly weaned animals are added to the end of the list of animal groups, with males and females in separate groups.

 

Parameter

Type

Units

Description

group

integer4

Index number of the animal group from which animals are to be removed. A value of zero denotes that each animal group should be processed in turn until the nominated number of lambs or calves has been weaned.

sex

string

Feasible values are:

‘all' Female and male lambs or calves are to be weaned.

‘female' Only female lambs or calves are to be weaned.

‘male' Only male lambs or calves are to be weaned.

number

integer4

Number of lambs or calves to be weaned.

 

5. Methods

None.

 

6. Published events

 

6.1. remove_herbage

Indicates the removal of herbage and seeds. This event is directed to each component instance that provides the Stock instance with a value for the plant2stock driving property.

 

Parameter

Type

Units

Description

herbage

double[ ]

kg/ha

Mass of shoots removed in each of 5 digestibility classes.

seed

double[ ]

kg/ha

Mass of unripe and ripe seeds removed.

 

6.2. add_excreta

Indicates the excretion of faeces and urine into a paddock. Different instances of this event are directed to each component subscribing to it, with parameters depending upon the name of the paddock component to which the subscribing component belongs.

 

Parameter

Type

Units

Description

faeces_om

: weight

: n

: p

: s

: ash_alk

record

double

double

double

double

double

kg/ha

kg/ha

kg/ha

kg/ha

mol/ha

Organic matter in excreted faeces:

•  Mass (as DM) of faeces to be added.

•  Mass of organic nitrogen in faeces.

•  Mass of organic phosphorus in faeces.

•  Mass of organic sulphur in faeces.

•  Ash alkalinity in faeces.

faeces_inorg

: n

: p

: s

record

double

double

double

kg/ha

kg/ha

kg/ha

Inorganic nutrients in excreted faeces:

•  Mass of inorganic nitrogen in faeces.

•  Mass of inorganic phosphorus in faeces.

•  Mass of inorganic sulphur in faeces.

urine

: volume

: urea

: pox

: so4

: ash_alk

record

double

double

double

double

double

m 3 /ha

kg/ha

kg/ha

kg/ha

mol/ha

Excreted urine:

•  Volume of excreted urine.

•  Urea-N in excreted urine.

•  Phosphate-P in excreted urine.

•  Sulphate-S in excreted urine.

•  Ash alkalinity in excreted urine.

 

7. Driving properties

 

Property

Type

Units

Event:State

Number

Description

area

double

ha

0+

Area of each paddock.

latitude

double

deg

1

Latitude (south is negative).

slope

double

deg

0+

Slope of each paddock.

daylength

double

hr

1

Day length including civil twilight.

plant2stock

: herbage

: dm

: dmd

: cp_conc

: p_conc

: s_conc

: prot_dg

: ash_alk

: height_ratio

: propn_green

: legume

: select_factor

: seed

: dm

: dmd

: cp_conc

: p_conc

: s_conc

: prot_dg

: ash_alk

: height_ratio

: seed_class

record

record[ ]

double

double

double

double

double

double

double

double

double

double

double

record[ ]

double

double

double

double

double

double

double

double

integer4[ ]

kg/ha

-

kg/kg

kg/kg

kg/kg

kg/kg

mol/kg

-

-

-

-

kg/ha

-

kg/kg

kg/kg

kg/kg

kg/kg

mol/kg

-

0+

Description of the pasture for use by the ruminant model.

supp_eaten

: paddock

: eaten

record[ ]

string

double

kg

0-1

Consumption of supplementary feed by animals.

•  Name of a paddock

•  Amount of supplementary feed eaten by animals in this paddock.

time

: startDay

: startSec

: startSecPart

: endDay

: endSec

: endSecPart

record

integer4

integer4

double

integer4

integer4

double

d

s

s

d

s

s

1

Current time step.

waterlog

double

-

0+

Waterlogging index for each paddock.

weather

: maxt

: mint

: rain

: snow

: radn

: vpd

: wind

record

double

double

double

double

double

double

double

ºC

ºC

mm/d

mm/d

MJ/m 2 /d

kPa

m/s

1

Weather record.

 

If the following properties are not found, then alternative properties are subscribed to instead:

 

Property

Alternative

Type

Units

Event:State

Number

Description

weather

maxt

double

ºC

do_stock :0

1

Maximum air temperature.

weather

mint

double

ºC

do_stock :0

1

Minimum air temperature.

weather

rain

double

mm

do_stock :0

1

Precipitation in all forms other than snow.

weather

wind

double

m/s

do_stock :0

1

Average wind speed

 

8. Owned properties

All initialisation properties are readable. In addition, the following owned properties are available:

(a) Standard properties

 

Property

Type

Units

Description

name

string

Fully-qualified name of the component.

type

string

Value is “Stock”.

version

string

Value is “1.0”.

author

string

Value is “CSIRO Plant Industry”.

active

Boolean

Denotes whether or not the component is active.

state

string

SDML description of the current state.

 

(b) Component-specific properties

Each entry in the following table describes between one and six variables: the named variable and five variants obtained by appending the texts: “_ yng ”, “_ all ”, “_ tag ”, “ _yng _ all ” and “ _yng _ tag ”.

Note that the animal model will automatically merge and split groups of animals, so that the index position of a particular group of animals in the array variables will not necessarily remain constant.

 

Property

Type

Units

Description

_all

_tag

_yng

age

double[ ]

d

Age of animals.

x

x

x

age_months

double[ ]

-

Age of animals, in months.

x

x

x

base_wt

double[ ]

kg

Fleece-free, conceptus-free weight.

x

x

x

birth_cs

double[ ]

-

Condition score at last parturition; zero if lactating =0

x

x

c_fleece_wt

double[ ]

kg

Current clean fleece weight.

x

x

x

cfleece_growth

double[ ]

kg/d

Growth rate of clean fleece.

x

x

x

cond_score

double[ ]

-

Condition score of animals (1-5 scale).

x

x

x

cp_intake

double[ ]

kg/d

Crude protein intake per head.

x

x

x

dse

double[ ]

-

Dry sheep equivalents”, based on potential intake.

x

x

x

faeces

: weight

: n

: p

: s

: ash_alk

record[ ]

double

double

double

double

double

kg/d

kg/d

kg/d

kg/d

mol/d

Faecal dry matter and nutrients per head.

x

x

x

faeces_inorg

: n

: p

: s

record[ ]

double

double

double

kg/d

kg/d

kg/d

Inorganic nutrients excreted in faeces, per head.

x

x

x

fibre_diam

double[ ]

m m

Current average wool fibre diameter.

x

x

x

fibre_growth_diam

double[ ]

m m

Fibre diameter of the current day's wool growth.

x

x

x

fleece_wt

double[ ]

kg

Current greasy fleece weight.

x

x

x

intake

: weight

: n

: p

: s

: ash_alk

record[ ]

double

double

double

double

double

kg/d

kg/d

kg/d

kg/d

mol/d

Total intake per head of dry matter and nutrients by each animal group.

x

x

x

lactating

double[ ]

d

If the animals are lactating, the number of days since birth of the lamb or calf; zero otherwise.

x

x

max_prev_wt

double[ ]

kg

Maximum previous basal weight (fleece-free, conceptus-free) attained by each animal group.

x

x

x

me_intake

double[ ]

MJ/d

Intake per head of metabolizable energy.

x

x

x

milk_me

double[ ]

MJ/d

Metabolizable energy produced in milk (per head) by each animal group

x

x

milk_wt

double[ ]

kg/d

Weight of milk produced per head, on a 4% fat-corrected basis.

x

x

no_female

integer4[ ]

Number of female animals in each animal group.

x

x

x

no_foetuses

double[ ]

Number of foetuses per head in each animal group.

x

x

no_groups

integer4

Number of animal groups.

no_male

integer4[ ]

Number of male animals in each animal group.

x

x

x

no_suckling

double[ ]

Number of unweaned lambs or calves per head in each animal group.

x

x

number

integer4[ ]

Number of animals in each animal group.

x

x

x

paddock

string[ ]

Paddock occupied by each animal group.

past_intake

: weight

: n

: p

: s

: ash_alk

record[ ]

double

double

double

double

double

kg/d

kg/d

kg/d

kg/d

mol/d

Intake per head of pasture dry matter and nutrients by each animal group.

x

x

x

pregnant

double[ ]

d

If the animals are pregnant, the number of days since conception; zero otherwise.

x

x

priority

integer4[ ]

Priority score assigned to each animal group; used in drafting.

retained_n

double[ ]

kg/d

Nitrogen retained within the animals, on a per-head basis.

x

x

x

retained_p

double[ ]

kg/d

Phosphorus retained within the animals, on a per-head basis.

x

x

x

retained_s

double[ ]

kg/d

Sulphur retained within the animals, on a per-head basis.

x

x

x

sex

string[ ]

See the sex field of the sheep and cattle initialisation variables. Returns “heifer” for cows under two years of age.

supp_eaten

: paddock

: eaten

record[ ]

string

double

kg

Consumption of supplementary feed by animals.

•  Name of a paddock

•  Amount of supplementary feed eaten by animals in this paddock.

supp_intake

: weight

: n

: p

: s

: ash_alk

record[ ]

double

double

double

double

double

kg/d

kg/d

kg/d

kg/d

mol/d

Intake per head of supplement dry matter and nutrients by each animal group.

x

x

x

tag_no

integer4[ ]

Tag value assigned to each animal group.

trampling

double

kg/ha

Mass of grazers per unit area. The value returned depends on the requesting component.

urine_n

double[ ]

kg/d

Urinary nitrogen output per head.

x

x

x

urine_p

double[ ]

kg/d

Urinary phosphorus output per head.

x

x

x

urine_s

double[ ]

kg/d

Urinary sulphur output per head.

x

x

x

weight

double[ ]

kg

Average live weight of each animal group.

x

x

x

wt_change

double[ ]

kg/d

Rate of change of base weight of each animal group.

x

x

x

 

Configuration Details

Title: Stock Component Description

Created by: A.D. Moore

Modified by: A.D. Moore

Processor: Microsoft Word 2002

Printed: 15 Dec 2003

Revision History

 

Version

Date

Changes

0.1

12 Dec 1997

First draft

0.2

17 Dec 1997

Second draft

0.3

4 Aug 1998

Third draft

0.4

10 Dec 2003

Revised to match pre-release version of component. *_tag properties added

0.5

15 Dec 2003

supp_eaten added

 

Document Distribution Policy

All versions: Internal use only

 

Drivers for the Stock Component

 

Environmental information

The Stock component implements alternative interfaces to obtain weather data; I have only provided the APSIM-compatible interface here.

 

Property

Type

Units

Permitted number of values

Description

time

record

Exactly 1

Current time step in standard format.

latitude

double

deg

Exactly 1

Latitude (south is negative).

daylength

double

hr

Exactly 1

Day length including civil twilight.

maxt

double

ºC

Exactly 1

Maximum air temperature.

mint

double

ºC

Exactly 1

Minimum air temperature.

rain

double

mm

Exactly 1

Precipitation in all forms other than snow.

wind

double

m/s

Exactly 1

Average wind speed

waterlog

double

-

Zero or more

Waterlogging index for each paddock.

 

The first six of these drivers will cause no difficulty. The wind driver is used in computing the energy requirement to maintain body temperature under cold conditions; it can be set to (say) a constant 2.0 m/s if wind speed data are not available. The waterlog driver is an index that describes the degree of waterlogging of the soil (which is modelled as affecting the time spent grazing); it is optional and can be ignored in your context.

 

Paddock information

 

Property

Type

Units

Permitted number of values

Description

area

double

ha

Zero or more

Area of each paddock.

slope

double

deg

Zero or more

Slope of each paddock

 

In the Stock component, each group of animals is taken to reside in a paddock. The list of valid paddock names is obtained by looking for the components that have the area property and then obtaining the names of these components, i.e. a paddock is defined as any entity with an area. If no component in the simulation has the area property, then the Stock component sets itself up with a single “paddock” that has the null string for its name, an area of 1.0 ha and zero slope.

 

The slope values are used to compute the energy cost associated with movement.

 

The usual configuration is to have the paddock components/systems at the same level in the component tree as the Stock component.

 

Herbage information

At each time step, the Stock component requests the plant2stock driving property. Each value of plant2stock is allocated to one of the paddocks by parsing the name of the component sending it. The herbage present in each paddock is then summarised before being used in the computations of animal intake. In the case where no paddocks have been identified, all the “plant” components that provide plant2stock are allocated to the null paddock.

 

Once the intake rates of all animals have been computed, the rates for all animals in a paddock are summed and then allocated between the components in that paddock that provided a value for the plant2stock driver. Each such component is then sent a remove_herbage event that contains the rate of herbage removal for that plant component.

 

The plant2stock driving property is a record with six fields:

 

Field

Type

Units

Description

herbage

array of records

Mass and quality of the herbage on offer. The herbage is split into a number of pools that are distinguished by their DM digestibility; each of these pools is described by one element of the array. The fields of the sub-records are set out below.

propn_green

double

-

Proportion of the total herbage mass that is green

legume

double

-

Proportion of the total herbage mass that is legume. Usually 0.0 or 1.0

select_factor

double

-

Species-specific effect on the relationship between digestibility and voluntary intake. Typical values are 0.0 for C3 grasses and legumes and 0.16 for C4 grasses.

seed

array of records

Mass and quality of unripe and ripe seeds (elements 1 and 2, respectively). The fields of the sub-records are the same as for the herbage field.

seed_class

array of integer4

-

“Equivalent digestibility class” for unripe and ripe seeds (elements 1 and 2, respectively). Valid values are 1-6 or 0, where 1 denotes that seeds will be selected at the same time as 80% digestible herbage, 2 corresponds to 70% herbage, etc. A zero value denotes that seeds are not grazed.

 

The fields of the sub-records in plant2stock : herbage and plant2stock : seed are:

 

Field

Type

Units

Description

dm

double

kg/ha

Mass (dry matter basis) of the herbage or seed pool

dmd

double

-

Dry matter digestibility (0-1, not percentage)

cp_conc

double

kg/kg

Crude protein concentration. Can be estimated as 6.25 x [N]

p_conc

double

kg/kg

Phosphorus concentration. Can reasonably be estimated by assuming a fixed N:P ratio.

s_conc

double

kg/kg

Sulphur concentration. Can reasonably be estimated by assuming a fixed N:S ratio.

prot_dg

double

kg/kg

Protein degradability. In the absence of better information, can be estimated as dmd +0.10

ash_alk

double

mol/kg

Ash alkalinity.

height_ratio

double

-

An index of the bulk density of the herbage. The height ratio for herbage should be computed as 100/(0.03 x BD ), where BD is the herbage bulk density in g/m 3 . This value should be set to 1.0 for seed pools.

 

One way to obtain a distribution of herbage mass into DMD classes is given on page 32 of the technical paper on GrazFeed that can be found via http://www.csiro.au/index.asp?type=faq&id=Grazplan .

 

Supplementary feed information

At each time step, the Stock component requests the supp2stock driving property. This driving property is optional. The supp2stock property returns the amount and quality of supplementary feed that is present in each paddock. All animals resident in a paddock can access the corresponding quantity of supplementary feed (it is allocated between them in proportion to their maximum intake rate). To provide this property, include the Supplement component in the simulation.

The supp2stock driving property is an array of records. Each sub-record has the following fields:

 

Field

Type

Units

Description

paddock

string

Name of a paddock

amount

double

kg

Amount of supplementary feed present in the paddock

roughage

boolean

TRUE i.f.f. the feed is a roughage.

dm_content

double

kg/kg

Dry matter content of the feed.

dmd

double

-

Dry matter digestibility of the feed (not including any portion that passes the gut undamaged).

me_content

double

MJ/kg

Metabolizable energy content of the feed.

cp_conc

double

kg/kg

Crude protein content of the feed.

prot_dg

double

kg/kg

Protein degradability of the feed.

p_conc

double

kg/kg

Phosphorus content of the feed.

s_conc

double

kg/kg

Sulphur content of the feed.

ee_conc

double

kg/kg

Ether-extractable content of the feed.

adip2cp

double

kg/kg

Proportion of crude protein that is insoluble in acid detergent.

ash_alk

double

mol/kg

Ash alkalinity of the feed.

max_passage

double

kg/kg

Maximum proportion of the feed that will pass undamaged through the gut of ruminants.

 

DDML definitions

This is for the programmers:

 

plant2stock

 

<type>

  <field name = "herbage" array="T">

    <element>

      <field name="dm" unit="kg/ha" kind="double"/>

      <field name="dmd" unit="-" kind="double"/>

      <field name="cp_conc" unit="kg/kg" kind="double"/>

      <field name="p_conc" unit="kg/kg" kind="double"/>

      <field name="s_conc" unit="kg/kg" kind="double"/>

      <field name="prot_dg" unit="kg/kg" kind="double"/>

      <field name="ash_alk" unit="mol/kg" kind="double"/>

      <field name="height_ratio" unit="-" kind="double"/>

    </element>

  </field>

  <field name="propn_green" unit="-" kind="double"/>

  <field name="legume" unit="-" kind="double"/>

  <field name="select_factor" unit="-" kind="double"/>

  <field name = "seed" array="T">

    <element>

      <field name="dm" unit="kg/ha" kind="double"/>

      <field name="dmd" unit="-" kind="double"/>

      <field name="cp_conc" unit="kg/kg" kind="double"/>

      <field name="p_conc" unit="kg/kg" kind="double"/>

      <field name="s_conc" unit="kg/kg" kind="double"/>

      <field name="prot_dg" unit="kg/kg" kind="double"/>

      <field name="ash_alk" unit="mol/kg" kind="double"/>

      <field name="height_ratio" unit="-" kind="double"/>

    </element>

  </field>

  <field name = "seed_class" unit="-" kind="integer4" array="T"/>

</type>

 

supp2stock

 

<type array="T">

  <element>

    <field name="paddock" kind="string"/>'

    <field name="amount" unit="kg" kind="double"/>'

    <field name="roughage" kind="boolean"/>'

    <field name="dm_content" unit="kg/kg" kind="double"/>'

    <field name="dmd" unit="-" kind="double"/>'

    <field name="me_content" unit="MJ/kg" kind="double"/>'

    <field name="cp_conc" unit="kg/kg" kind="double"/>'

    <field name="prot_dg" unit="kg/kg" kind="double"/>'

    <field name="p_conc" unit="kg/kg" kind="double"/>'

    <field name="s_conc" unit="kg/kg" kind="double"/>'

    <field name="ee_conc" unit="kg/kg" kind="double"/>'

    <field name="adip2cp" unit="kg/kg" kind="double"/>'

    <field name="ash_alk" unit="mol/kg" kind="double"/>'

    <field name="max_passage" unit="kg/kg" kind="double"/>';

  </element>

</type>