Goose Management Model ODdox
1.02
|
Go to the documentation of this file.
40 #include "../Landscape/ls.h"
41 #include "../BatchALMaSS/PopulationManager.h"
44 #include "../BatchALMaSS/CurveClasses.h"
45 #include "../Hunters/Hunters_all.h"
48 #include "../BatchALMaSS/BoostRandomGenerators.h"
51 extern boost::variate_generator<base_generator_type&, boost::uniform_real<> >
g_rand_uni;
69 Init(p_NPM, a_weight, a_sex, a_roost);
79 double daylightprop = m_OurLandscape->SupplyDaylightProp();
80 double nighttimeprop = m_OurLandscape->SupplyNightProp();
88 Init(p_NPM, a_weight, a_sex, a_roost);
138 m_OurLandscape->CorrectCoordsPointNoWrap(pt);
149 int a_groupsize, APoint a_roost) :
Goose_Barnacle_Base(p_L, p_NPM, a_weight, a_sex, a_roost)
151 Init(p_NPM, a_weight, a_sex, a_groupsize, a_roost);
168 Init(p_NPM, a_weight, a_sex, a_groupsize, a_roost);
178 if (m_StepDone || m_CurrentStateNo == -1)
return;
208 m_OurLandscape->Warn(
"Goose_Barnacle_FamilyGroup::Step()",
"unknown state - default");
220 Init(p_NPM, a_weight, a_sex, a_roost);
234 Init(p_NPM, a_weight, a_sex, a_roost);
246 if (m_StepDone || m_CurrentStateNo == -1)
return;
277 m_OurLandscape->Warn(
"Goose_Barnacle_NonBreeder::Step()",
"unknown state - default");
Goose_Barnacle_FamilyGroup(Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, int a_groupsize, APoint a_roost)
Goose_Barnacle_FamilyGroup constructor.
virtual ~Goose_Barnacle_FamilyGroup()
Goose_Barnacle_FamilyGroup destructor.
TTypeOfGoose_BaseState st_Roost()
Roosting until next forage or next morning.
void Init(Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, int a_groupsize, APoint a_roost)
Intitialise object.
int m_myForageIndex
Temporary storage for a forage location index - this is a speed optimisation.
double m_DEB
The daily energy budget excluding flying (kJ)
int m_groupsize
The size of the group this bird represents.
void Init(Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost)
Intitialise object.
static double m_GooseFieldForageDist[gs_foobar]
The maximum distance travelled from roost to forage sites for each species of goose (m)
virtual void Step(void)
The Goose_Barnacle_FamilyGroup Step.
virtual void KillThis(void)
The FamilyGroup KillThis must be overridden for families.
TTypeOfGoose_BaseState st_ChooseForageLocation(void)
Selects a forage location based on past memory, or initiates an exploration.
void ReInit(Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost)
ReInit for object pool.
virtual APoint ChooseHopLoc()
Pick a hop location point within a_dist meters - must be overridden by descendent classes.
TTypeOfGoose_BaseState st_ToRoost()
Return to roost and assess whether to forage again that day.
CfgFloat cfg_goose_nighttime_BMR_multiplier
To calculate daily energy budget. This is the multiple of BMR spent during nighttime.
boost::variate_generator< base_generator_type &, boost::uniform_real<> > g_rand_uni
A random number generator (0-1)
MapErrorMsg * g_msg
This pointer provides access the to the internal ALMaSS error message system.
static double m_GooseMaxAppetiteScaler
Scaler to determine the max kJ possible to eat per day based on non-energy reserve weight.
static double m_GooseForageDistX2[gs_foobar]
Double the maximum distance travelled from roost to forage sites for each species of goose (m) - this...
The landscape class containing all environmental and topographical data.
GooseSpecies m_myspecies
Holds goose species.
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.
Goose_Barnacle_Base(Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost)
Goose_Barnacle_Base constructor.
double m_DailyMaxAppetite
The daily max kJ possible to get as intake.
virtual ~Goose_Barnacle_NonBreeder()
Goose_Barnacle_NonBreeder destructor.
void Init(Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost)
Intitialise object.
TTypeOfGoose_BaseState CurrentGState
Variable to record current behavioural state.
Goose_Barnacle_NonBreeder(Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost)
Goose_Barnacle_NonBreeder constructor.
void st_Dying(void)
Behavioural state dying.
double GetThermalCosts(GooseSpecies a_goose)
Get daily thermal costs const.
static double m_GooseForageDist[gs_foobar]
The maximum distance travelled from roost to forage sites for each species of goose (m)
virtual ~Goose_Barnacle_Base()
Goose_Barnacle_Base destructor.
virtual void Step(void)
The Goose_Barnacle_NonBreeder Step.
GooseMemoryMap * m_MyMemory
The Goose Memory.
The class to handle all goose population related matters.
void On_Migrate(TTypeOfLeaveReason a_leavereason)
The goose is told to leave the simulation area (poss due to bad weather)
CfgFloat cfg_goose_daytime_BMR_multiplier
To calculate daily energy budget. This is the multiple of BMR spent during daytime.
Header file for the Goose Memory Map and associated classes.
void FlyTo(int a_x, int a_y)
The goose flys to the location specified by a_x, a_y.
double m_BMR
The daily BMR.
void EvaluateForageToHopLoc(APoint a_HopLoc)
Do a forage evaluation from current location to a_HopLoc.
Goose_Base.h This is the header file for the goose base class
A class to describe the goose base.
TTypeOfGoose_BaseState st_Forage()
Behavioural forage.
Double configurator entry class.
GooseSpeciesType m_myGooseSpeciesType
Holds the goose species type.
Goose_Population_Manager * m_OurPopulationManager
This is a time saving pointer to the correct population manager object.
static double m_GooseFieldForageDistX2[gs_foobar]
Double the maximum distance travelled from roost to forage sites for each species of goose (m) - this...
void RemoveGeeseFromForageLocation(GooseSpeciesType a_type, int a_index, int a_number)
Removes a goose or geese to the forage location - requires an index.
void Init(Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost)
Intitialise object.
void ReInit(Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost)
ReInit for object pool.
A class to describe the Barnacle goose base.
CfgFloat cfg_goose_roostchangechance
Chance of changing roost.
virtual void ChangeRoost()
Find the closest roost.
APoint m_MyRoost
The current roost location.
Goose_Population_Manager.h This is the header file for the goose population manager class
void ReInit(Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost)
ReInit for object pool.
BarnacleGoose_All.h This is the header file for the greylag goose classes