Goose Management Model ODdox
1.02
|
A class to describe the Pinkfoot family group. More...
#include <GoosePinkFooted_All.h>
Public Member Functions | |
virtual void | EndStep (void) |
The Goose_Pinkfoot_FamilyGroup EndStep. More... | |
Goose_Pinkfoot_FamilyGroup (Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, int a_groupsize, APoint a_roost) | |
Goose_Pinkfoot_FamilyGroup constructor. More... | |
void | Init (Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, int a_groupsize, APoint a_roost) |
Intitialise object. More... | |
virtual void | KillThis (void) |
The Goose_Pinkfoot_FamilyGroup KillThis must be overridden for families. More... | |
void | ReInit (Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, int a_groupsize, APoint a_roost) |
ReInit for object pool. More... | |
virtual void | Step (void) |
The Goose_Pinkfoot_FamilyGroup Step. More... | |
virtual | ~Goose_Pinkfoot_FamilyGroup () |
Goose_Pinkfoot_FamilyGroup destructor. More... | |
Public Member Functions inherited from Goose_Pinkfoot_Base | |
Goose_Pinkfoot_Base (Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost) | |
Goose_Pinkfoot_Base constructor. More... | |
void | Init (Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost) |
Intitialise object. More... | |
void | ReInit (Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost) |
ReInit for object pool. More... | |
virtual | ~Goose_Pinkfoot_Base () |
Goose_Pinkfoot_Base destructor. More... | |
Public Member Functions inherited from Goose_Base | |
void | AddBodyCondition (double a_condition) |
Alters body conditon by addition of a double value. More... | |
double | AdjustIntakeRateToSnowDepth (double a_intakerate) |
When there is snow, the intake rate is decreased by 10 % per cm of snow. More... | |
virtual void | BeginStep (void) |
The BeginStep is the first 'part' of the timestep that an animal can behave in. It is called once per timestep (10 minutes). More... | |
void | EvaluateForageToHopLoc (APoint a_HopLoc) |
Do a forage evaluation from current location to a_HopLoc. More... | |
void | Explore () |
Behavioural exploration of the area to find forage. More... | |
double | GetBodyCondition () |
Returns the current body condition. More... | |
double | GetDailyEnergyBudget () |
Returns the daily energy budget. More... | |
double | GetDailyEnergyExpenditure () |
Returns the daily energy expenditure. More... | |
double | GetFlightCost () |
Get the flight costs per m per g. More... | |
int | GetFlightDistance () |
Returns the total daily distance flown. More... | |
int | GetFlightNumber () |
Returns the total daily number of flights. More... | |
int | GetForageLocIndex () |
Gets for the forage location index. More... | |
int | GetForagingTime (int a_EndForagingTime, double a_RoostLeaveTime) |
Returns the time spent foraging. More... | |
double | GetGooseMinForageRate (GooseSpecies a_species) |
Returns the minimum forage rate for the species. More... | |
int | GetGroupsize () |
Returns the groupsize. More... | |
int | GetMaxAppetiteHitTime () |
Returns m_DailyMaxAppetiteHitTime. More... | |
double | GetMaxForageRate (double a_grain, double a_maize, double a_grass, double a_interferenceComp, bool a_iscereal, TTypesOfVegetation a_veg, bool a_stubble, TTypesOfVegetation a_prevcrop) |
Returns the max forage rate of the three different types of forage The max rate is adjusted according to feeding time in the time budget, according to the interference competition value and to the current snow depth in the landscape. More... | |
double | GetMaxIntakeRate (double a_grain, double a_maize, double a_grass) |
Returns the max intake rate of the three different types of intake. More... | |
TMaxIntakeSource | GetMaxIntakeSource () |
Supply the current max intake source. More... | |
APoint | GetRoost () |
Supply roost coords. More... | |
double | GetRoostLeaveTime () |
Returns the time when the goose leaves the roost. More... | |
bool | GetSex () |
Returns the sex. More... | |
GooseSpecies | GetSpecies () |
Returns the species. More... | |
double | GetTotalWeight () |
Returns the weight of the bird. More... | |
Goose_Base (Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost) | |
Goose_Base constructor. More... | |
void | Init (Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost) |
Intitialise object. More... | |
void | On_Bang (int a_polyid) |
The goose is scared by a bang at location. More... | |
void | On_Bang (int a_polyid, double a_scare) |
The goose is scared by a bang at location. More... | |
virtual void | On_Emigrate () |
Cause the bird to immediately transition to Emigrate. More... | |
void | On_Migrate (TTypeOfLeaveReason a_leavereason) |
The goose is told to leave the simulation area (poss due to bad weather) More... | |
void | On_MoveTo (int a_x, int a_y) |
The goose is moved to the location specified by a_x, a_y - caused by group decision. More... | |
void | ReInit (Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost) |
ReInit for object pool. More... | |
double | ScaleForageToGroupsize (double a_forage) |
Scales forage to groupsize. More... | |
void | Set_GooseFattoKJConversion (double a_cost) |
Set the fat to kJ conversion constant for all geese. More... | |
void | Set_GooseFieldForageDist (double sp1, double sp2, double sp3) |
Set the max forage distance from a field for all geese. More... | |
void | Set_GooseFollowingLikelyhood (int a_likelyhood, GooseSpeciesType a_speciestype) |
Set the followinglikelyhood. More... | |
void | Set_GooseForageDist (double sp1, double sp2, double sp3) |
Set the max forage distance from roost for all geese. More... | |
void | Set_GooseKJtoFatConversion (double a_cost) |
Set the kJ to fat conversion constant for all geese. More... | |
void | Set_GooseLeavingRoost (bool a_leaving) |
Set the flag to indicate if we are coming from the roost. More... | |
void | Set_GooseLeavingThreshold (double a_threshold) |
Set the body condition threshold for leaving for all geese. More... | |
void | Set_GooseMaxAppetiteScaler (double a_cost) |
Set the goose appetite scale used to calculate max intake for all geese. More... | |
void | Set_GooseMaxEnergyReserveProportion (double a_prop) |
Set the maximum energy reserve proportion allowed for all geese. More... | |
void | Set_GooseMinForageOpenness (double a_cost) |
Set the min forage openess for all geese. More... | |
void | Set_Indivmingooseforagerate (double a_cost) |
Set the mimimum tolerated forage rate for the individual goose. More... | |
void | Set_mingooseforagerate (double a_cost, GooseSpecies a_species) |
Set the mimimum tolerated forage rate for all geese. More... | |
void | SetBodyCondition (double a_condition, unsigned a_index) |
Sets the current body condition. More... | |
void | SetFlightCost (double a_cost) |
Set the flight cost per m per g. More... | |
void | SetSex (bool a_sex) |
Sets the sex. More... | |
void | st_Dying (void) |
Behavioural state dying. More... | |
TTypeOfGoose_BaseState | st_Forage () |
Behavioural forage. More... | |
TTypeOfGoose_BaseState | st_Roost () |
Roosting until next forage or next morning. More... | |
virtual void | StartDay (void) |
Do any 'housekeeping' associated with the start of day. More... | |
void | SubtractBodyCondition (double a_condition) |
Alters body conditon by subtraction of a double value. More... | |
virtual | ~Goose_Base () |
Goose_Base destructor. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from Goose_Pinkfoot_Base | |
virtual void | ChangeRoost () |
Find the closest roost. More... | |
virtual APoint | ChooseHopLoc () |
Pick a hop location point within a_dist meters - must be overridden by descendent classes. More... | |
virtual TTypeOfGoose_BaseState | st_ToRoost () |
Return to roost and assess whether to forage again that day. More... | |
Protected Member Functions inherited from Goose_Base | |
void | FlyTo (APoint a_pt) |
The goose flys to the location specified by a_pt. More... | |
void | FlyTo (int a_x, int a_y) |
The goose flys to the location specified by a_x, a_y. More... | |
TTypeOfGoose_BaseState | st_ChooseForageLocation (void) |
Selects a forage location based on past memory, or initiates an exploration. More... | |
Protected Attributes inherited from Goose_Base | |
TTypeOfGoose_BaseState | CurrentGState |
Variable to record current behavioural state. More... | |
double | m_BMR |
The daily BMR. More... | |
double | m_BodyCondition [5] |
A variable describing current body condition over the past 5 days. More... | |
unsigned | m_BodyConditionCounter |
A counter for the daily body condition. More... | |
double | m_DailyMaxAppetite |
The daily max kJ possible to get as intake. More... | |
int | m_DailyMaxAppetiteHitTime |
The time of day when m_DailyMaxAppetite was hit. More... | |
double | m_DEB |
The daily energy budget excluding flying (kJ) More... | |
double | m_energyReserve |
The bird's energy reserves in grams. More... | |
double | m_energyToday |
The bird's daily energy account (kJ) More... | |
int | m_FlightDistance |
Storage for the total distance flown per day. More... | |
int | m_FlightNumber |
Counter for the number of flights per day. More... | |
int | m_forageLocCount |
The number of forage locations visited today. More... | |
int | m_groupsize |
The size of the group this bird represents. More... | |
double | m_Indivmingooseforagerate |
The minimum tolerable forage rate in kJ/minute for the individual. More... | |
double | m_LeaveRoostTime |
Controls the time when the goose will leave the roost. More... | |
bool | m_LeavingRoost |
Flag to indicate that we are coming from the roost. Used to control code for "following". More... | |
TMaxIntakeSource | m_MaxIntakeSource |
Holds information about the food source which gave max intake rate. More... | |
int | m_myForageIndex |
Temporary storage for a forage location index - this is a speed optimisation. More... | |
GooseSpeciesType | m_myGooseSpeciesType |
Holds the goose species type. More... | |
GooseMemoryMap * | m_MyMemory |
The Goose Memory. More... | |
int | m_myMemPolyID |
Temporary storage for a memory location polygon id. More... | |
APoint | m_MyRoost |
The current roost location. More... | |
GooseSpecies | m_myspecies |
Holds goose species. More... | |
Goose_Population_Manager * | m_OurPopulationManager |
This is a time saving pointer to the correct population manager object. More... | |
bool | m_sex |
Sex of bird, true = male false = female. More... | |
double | m_TheBodyCondition |
A variable describing current body condition averaged over 5 days. More... | |
double | m_weight |
The weight of the bird in gram excluding fat reserve. More... | |
double | m_weightTotal |
The weight of the bird in g including fat reserve. More... | |
Static Protected Attributes inherited from Goose_Base | |
static double | m_flightcost = -1 |
The cost of flight per g per m in kJ. More... | |
static int | m_followinglikelyhood [(int) gst_foobar] = { -1, -1, -1 , -1, -1, -1 } |
An attribute used to determine the chance of following or exploring when foraging. More... | |
static double | m_GooseFattoKJConversion = -1 |
Conversion rate fat to kJ. More... | |
static double | m_GooseFieldForageDist [gs_foobar] = { -1, -1, -1 } |
The maximum distance travelled from roost to forage sites for each species of goose (m) More... | |
static double | m_GooseFieldForageDistX2 [gs_foobar] = { -1, -1, -1 } |
Double the maximum distance travelled from roost to forage sites for each species of goose (m) - this is a speed optimisation. More... | |
static double | m_GooseForageDist [gs_foobar] = { -1, -1, -1 } |
The maximum distance travelled from roost to forage sites for each species of goose (m) More... | |
static double | m_GooseForageDistX2 [gs_foobar] = { -1, -1, -1 } |
Double the maximum distance travelled from roost to forage sites for each species of goose (m) - this is a speed optimisation. More... | |
static double | m_GooseKJtoFatConversion = -1 |
Conversion rate kJ to fat. More... | |
static double | m_GooseLeavingThreshold = -1 |
The trigger for leaving as a 5 day average of body condition. More... | |
static double | m_GooseMaxAppetiteScaler = -1 |
Scaler to determine the max kJ possible to eat per day based on non-energy reserve weight. More... | |
static double | m_GooseMaxEnergyReserveProportion = -1 |
Max proportion of weight that can be energy reserve. More... | |
static double | m_GooseMinForageOpenness = -1 |
The minimum openness value a goose will tolerate for forage. More... | |
static double | m_mingooseforagerate [gs_foobar] = { -1, -1, -1 } |
The minimum tolerable forage rate in kJ/minute for the species. More... | |
static double | m_SnowDepth = 0.0 |
The current snow depth. Held here for speed optimization. More... | |
A class to describe the Pinkfoot family group.
Definition at line 75 of file GoosePinkFooted_All.h.
Goose_Pinkfoot_FamilyGroup::Goose_Pinkfoot_FamilyGroup | ( | Landscape * | p_L, |
Goose_Population_Manager * | p_NPM, | ||
double | a_weight, | ||
bool | a_sex, | ||
int | a_groupsize, | ||
APoint | a_roost | ||
) |
Goose_Pinkfoot_FamilyGroup constructor.
Definition at line 153 of file GoosePinkFooted_All.cpp.
References Init().
|
virtual |
Goose_Pinkfoot_FamilyGroup destructor.
Definition at line 178 of file GoosePinkFooted_All.cpp.
|
inlinevirtual |
The Goose_Pinkfoot_FamilyGroup EndStep.
Reimplemented from Goose_Base.
Definition at line 89 of file GoosePinkFooted_All.h.
void Goose_Pinkfoot_FamilyGroup::Init | ( | Goose_Population_Manager * | p_NPM, |
double | a_weight, | ||
bool | a_sex, | ||
int | a_groupsize, | ||
APoint | a_roost | ||
) |
Intitialise object.
Here we deal with intialisation that is only for pink-foot families
Definition at line 159 of file GoosePinkFooted_All.cpp.
References gst_PinkfootFamilyGroup, Goose_Pinkfoot_Base::Init(), Goose_Base::m_groupsize, and Goose_Base::m_myGooseSpeciesType.
Referenced by Goose_Pinkfoot_FamilyGroup(), and ReInit().
|
virtual |
The Goose_Pinkfoot_FamilyGroup KillThis must be overridden for families.
Kill this for single animal agents is straightforward, but for families it is a single bird that dies. The bird is randomly picked from the family group, and if the family group is empty the group 'dies' In all cases we need to remove the bird from the forage area if any. The birds do not fly away at this point (if there are any left), this happens when the get the On_Bang message.
Reimplemented from Goose_Base.
Definition at line 222 of file GoosePinkFooted_All.cpp.
References Goose_Base::m_groupsize, Goose_Base::m_myForageIndex, Goose_Base::m_myGooseSpeciesType, Goose_Base::m_MyMemory, Goose_Base::m_OurPopulationManager, and Goose_Population_Manager::RemoveGeeseFromForageLocation().
void Goose_Pinkfoot_FamilyGroup::ReInit | ( | Landscape * | p_L, |
Goose_Population_Manager * | p_NPM, | ||
double | a_weight, | ||
bool | a_sex, | ||
int | a_groupsize, | ||
APoint | a_roost | ||
) |
ReInit for object pool.
Definition at line 170 of file GoosePinkFooted_All.cpp.
References Init(), and Goose_Pinkfoot_Base::ReInit().
Referenced by Goose_Population_Manager::CreateObjects().
|
virtual |
The Goose_Pinkfoot_FamilyGroup Step.
In state ChooseForageLocation, if the bird is the group leader then he will determine the forage location. Otherwise does nothing, all thinking is done by the group leader.
In state Forage the bird must determine forage intake. If acceptable feed, otherwise move
Reimplemented from Goose_Base.
Definition at line 184 of file GoosePinkFooted_All.cpp.
References Goose_Base::CurrentGState, Goose_Base::On_Migrate(), Goose_Base::st_ChooseForageLocation(), Goose_Base::st_Dying(), Goose_Base::st_Forage(), Goose_Base::st_Roost(), Goose_Pinkfoot_Base::st_ToRoost(), togs_ChooseForageLocation, togs_Die, togs_Emigrate, togs_Forage, togs_InitialState, togs_Roost, togs_ToRoost, and tolr_migration.