![]() |
ALMaSS
1.2 (after EcoStack, March 2024)
The Animal, Landscape and Man Simulation System
|
Ponds are defined as freshwater bodies between 25m2 and 5000m2. For newts the effective size is limited to 400m2. More...
#include <Elements.h>
Public Member Functions | |
Pond (Landscape *L) | |
virtual void | DoDevelopment (void) |
void | CalcPondPesticide () |
Calculates the amount of pesticide per unit pond water More... | |
void | CalcLarvalFood () |
Calculates the amount of larval food present More... | |
bool | SubtractLarvalFood (double a_food) |
Called by a larva when feeding, removes an age specific amount of larval food More... | |
double | SupplyPondPesticide () |
supply the current pesticide concentration per litre More... | |
virtual void | SetMaleNewtPresent (bool a_ispresent) |
Sets a male as present/absent. More... | |
bool | IsMaleNewtPresent () |
Gets whether there is a male newt as present. More... | |
![]() | |
NonVegElement (TTypesOfLandscapeElement tole, Landscape *L) | |
![]() | |
LE (Landscape *L) | |
virtual | ~LE (void) |
virtual int | GetAphidDensity () |
int | GetVegStore (void) |
Variable used to record the current grazing pressure by e.g. voles */ double m_volegrazing; /**. More... | |
void | SetVegStore (int a_veg) |
void | ZeroVegAge () |
int | GetVegAge () |
virtual void | RecalculateBugsNStuff (void) |
virtual int | GetVegPhase (void) |
virtual bool | GetIsVeg (void) |
virtual double | GetVegGrowthStage (void) |
virtual double | GetVegCover (void) |
virtual double | GetVegHeight (void) |
virtual APoint | GetCentroid () |
virtual int | GetCentroidX () |
virtual int | GetCentroidY () |
virtual void | SetCentroid (int x, int y) |
virtual double | GetDigestibility (void) |
virtual int | GetVegDensity (void) |
virtual bool | GetSkScrapes (void) |
virtual void | SetVegGrowthScalerRand () |
virtual double | GetDayDegrees (void) |
virtual double | GetLAGreen (void) |
virtual double | GetLATotal (void) |
virtual double | GetGreenBiomass (void) |
virtual double | GetInterestedGreenBiomass (void) |
virtual double | GetGreenBiomassProp (void) |
virtual double | GetDeadBiomass (void) |
virtual double | GetVegBiomass (void) |
virtual double | GetWeedBiomass (void) |
virtual double | GetInsectPop (void) |
virtual void | SetInsectPop (double) |
virtual void | Insecticide (double) |
virtual void | InsectMortality (double) |
virtual void | ReduceWeedBiomass (double) |
virtual void | ToggleCattleGrazing (void) |
virtual void | TogglePigGrazing (void) |
virtual void | ToggleIrrigation (void) |
virtual void | SetVegBiomass (int) |
virtual void | SetVegType (TTypesOfVegetation) |
virtual void | SetVegType (TTypesOfVegetation, TTypesOfVegetation) |
virtual void | SetVegHeight (double) |
virtual void | SetDigestibility (double) |
virtual void | SetGrazingLevel (int) |
virtual void | SetVegParameters (double, double, double, double) |
virtual void | SetCropData (double, double, double, TTypesOfVegetation, double, int) |
virtual void | SetCropDataAll (double, double, double, double, TTypesOfVegetation, double, double, int, double, bool, double, double, double) |
virtual void | StoreLAItotal () |
virtual void | SetGrowthPhase (int) |
virtual void | ForceGrowthInitialize (bool a_force_decreasing=false) |
virtual void | ForceGrowthInitialiseForFirstYearCrop (void) |
virtual void | ForceGrowthTest (void) |
virtual void | ForceGrowthDevelopment (void) |
virtual void | ZeroVeg (void) |
virtual void | ReduceVeg (double) |
virtual void | ReduceVeg_Extended (double) |
virtual void | GrazeVeg_Extended (double) |
virtual double | GetTrafficLoad (void) |
virtual TTypesOfVegetation | GetPreviousTov (int) |
bool | GetPoison (void) |
void | SetPoison (bool a_poison) |
bool | Is_Att_High (void) |
void | Set_Att_High (bool a_high) |
bool | Is_Att_Water (void) |
void | Set_Att_Water (bool a_water) |
bool | Is_Att_Forest (void) |
void | Set_Att_Forest (bool a_forest) |
bool | Is_Att_Woody (void) |
void | Set_Att_Woody (bool a_woody) |
bool | Is_Att_UrbanNoVeg (void) |
void | Set_Att_UrbanNoVeg (bool a_unv) |
bool | Is_Att_UserDefinedBool (void) |
void | Set_Att_UserDefinedBool (bool a_value) |
int | Is_Att_UserDefinedInt (void) |
void | Set_Att_UserDefinedInt (int a_value) |
virtual bool | Is_Att_Veg (void) |
virtual bool | Is_Att_VegPatchy (void) |
virtual void | Set_Att_VegPatchy (bool) |
virtual bool | Is_Att_VegCereal () |
virtual void | Set_Att_VegCereal (bool) |
virtual bool | Is_Att_VegGrass () |
virtual void | Set_Att_VegGrass (bool) |
virtual bool | Is_Att_VegMatureCereal () |
virtual void | Set_Att_VegMatureCereal (bool) |
virtual bool | Is_Att_VegMaize () |
virtual void | Set_Att_VegMaize (bool) |
virtual bool | Is_Att_VegGooseGrass () |
virtual void | Set_Att_VegGooseGrass (bool) |
void | SetVegPatchy (bool p) |
int | GetCattleGrazing (void) |
bool | GetPigGrazing (void) |
bool | HasTramlines (void) |
bool | IsRecentlyMown (void) |
int | IsRecentlySprayed (void) |
int | GetPoly (void) |
Returns the polyref number for this polygon. More... | |
int | GetMapIndex (void) |
void | SetMapIndex (int a_map_index) |
int | GetOwnerFile (void) |
int | GetOwnerIndex (void) |
int | GetLastTreatment (int *a_index) |
int | GetLastTreatment () |
Returns the last treatment recorded for the polygon. More... | |
void | ClearManagementActionSum () |
clears the management action counters More... | |
void | AddManagementActionDone (FarmManagementCategory a_action) |
Record management action throught a crop management action. More... | |
vector< int > | GetManagementTotals () |
Farm * | GetOwner (void) |
double | GetArea (void) |
virtual void | SetSpeciesFunction (TTypesOfPopulation a_species) |
Sets the correct species simulation behaviour for the current species - implemented in VegElement. More... | |
double | GetGooseGrazingForage (GooseSpecies a_goose) |
double | GetBirdSeed (void) |
void | SetBirdSeed (double a_forage) |
double | GetBirdMaize (void) |
void | SetBirdMaize (double a_forage) |
int | GetCountryDesignation (void) |
void | SetCountryDesignation (int a_designation) |
long | GetOldDays (void) |
void | SetOwner (Farm *a_owner, int a_owner_num, int a_owner_index) |
void | SetPoly (int a_poly) |
void | SetMapValid (bool a_valid) |
bool | GetMapValid (void) |
void | SetArea (double a_area) |
virtual void | GrazeVegetation (double, bool) |
virtual void | GrazeVegetationHeight (double a_reduc) |
virtual void | GrazeVegetationTotal (double) |
int | GetSoilType () |
int | GetSoilTypeR () |
void | SetSoilType (int a_st) |
void | SetLastSownVeg (TTypesOfVegetation a_tov) |
Records the last vegetation type to be sown. More... | |
TTypesOfVegetation | GetLastSownVeg () |
Returns the last vegetation type to be sown. More... | |
void | SetLastTreatment (int a_treatment) |
void | SetSprayedToday (bool a_didit) |
bool | GetSprayedToday () |
void | SetCopyTreatment (int a_treatment) |
void | SetOldDays (long a_days) |
void | SetRotIndex (int a_index) |
int | GetRotIndex (void) |
void | SetTramlinesDecay (int a_decaytime_days) |
void | SetHerbicideDelay (int a_decaytime_days) |
void | SetMownDecay (int a_decaytime_days) |
void | AddArea (double a_area_diff) |
LE * | GetBorder (void) |
int | GetUnsprayedMarginPolyRef (void) |
void | SetBorder (LE *a_border) |
void | SetUnsprayedMarginPolyRef (int a_unsprayedmargin) |
void | SetPesticideCell (int a_cell) |
int | GetPesticideCell () |
void | SetValidXY (int a_valid_x, int a_valid_y) |
int | GetValidX (void) |
int | GetValidY (void) |
int | GetMaxX (void) |
int | GetMaxY (void) |
int | GetMinX (void) |
int | GetMinY (void) |
void | SetMaxX (int x) |
void | SetMaxY (int y) |
void | SetMinX (int x) |
void | SetMinY (int y) |
int | GetMDates (int a, int b) |
void | SetMDates (int a, int b, int c) |
int | GetMConstants (int a) |
void | SetMConstants (int a, int c) |
double | GetVegDDegs () |
Get the total of day degrees for the crop/veg on this element. More... | |
int | GetOpenness (void) |
For goose model functionality, openness score for the polygon. More... | |
double | GetElevation (void) |
Get elevation data. More... | |
double | GetSlope (void) |
double | GetAspect (void) |
void | SetGooseNos (int a_number, int a_day) |
void | SetGooseSpNos (int a_number, int a_day, GooseSpecies a_goose) |
void | SetGooseNosTimed (int a_number, int a_day) |
void | SetGooseSpNosTimed (int a_number, int a_day, GooseSpecies a_goose) |
void | SetGooseRoostDist (int a_dist, GooseSpecies a_goose) |
int | GetGooseNosToday () |
For goose model functionality, returns the number of geese today. More... | |
int | GetGooseNosTodayTimed () |
For goose model functionality, returns the number of geese today at a predefined time. More... | |
int | GetGooseNos () |
For goose model functionality, returns the number of geese yesterday. More... | |
int | GetQuarryNos () |
For goose model functionality, returns the number of geese yesterday which can be hunted as legal quarry. More... | |
int | GetGooseSpNosToday (GooseSpecies a_goose) |
For goose model functionality, returns the number of geese per species yesterday. More... | |
int | GetGooseSpNosTodayTimed (GooseSpecies a_goose) |
For goose model functionality, returns the number of geese per species yesterday at a predefined time. More... | |
int | GetGooseRoostDist (GooseSpecies a_goose) |
For goose model functionality, returns the distance to closest roost. More... | |
void | SetOpenness (int a_openness) |
Records the openness statistic for this polygon. More... | |
void | SetElevation (double a_elevation) |
Records the elevation of the polygon. More... | |
void | SetSlope (double a_slope) |
void | SetAspect (double a_aspect) |
virtual void | ResetDigestibility () |
sets growth record to zero in descendent classes More... | |
void | DoCopy (const LE *a_Le) |
a copy function to be used because a copy constuctor won't work More... | |
void | SetStubble (bool a_flag) |
Sets the in stubble flag. More... | |
bool | GetStubble () |
Return the in stubble flag. More... | |
PlantProtectionProducts | GetSprayPPPType (void) |
Return the sprayed pesticide type in the field. More... | |
double | GetSprayPPPRate (void) |
Return the sprayed pesticide application rate. More... | |
void | SetSprayPPPType (PlantProtectionProducts a_type) |
Set the sprayed pesticide type in the field. More... | |
void | SetSprayPPPRate (double a_rate) |
Set the sprayed pesticide application rate. More... | |
void | SetPollenNectarCurveRef (int a_PollenNectarCurve) |
Sets the pollen/nectar curve number. More... | |
void | SetPollenNectarType (TTypesOfVegetation a_new_veg) |
sets the pollen and nectar information based on tov More... | |
virtual PollenNectarData | GetPollen () |
Gets the pollen quantity & quality for this landscape element. More... | |
virtual PollenNectarData | GetNectar () |
Gets the nectar quantity & quality for this landscape element. More... | |
virtual double | GetPollenQuantity () |
Gets the pollen quantity for this landscape element. More... | |
virtual double | GetPollenQuality () |
Gets the pollen quality for this landscape element. More... | |
virtual double | GetNectarQuantity () |
Gets the nectar quantity for this landscape element. More... | |
virtual double | GetSugar () |
Gets the nectar quality (sugar) for this landscape element. More... | |
virtual double | GetTotalPollen () |
Returns the total pollen quantity for this landscape element. More... | |
virtual double | GetTotalNectar () |
Returns the total nectar quantity for this landscape element. More... | |
virtual void | ChangeTotalPollen (double a_amount) |
Removes a_amount from total LE pollen. More... | |
virtual void | ChangeTotalNectar (double a_amount) |
Removes a_amount from total LE nectar. More... | |
void | SetPollenNectarCurves (PollenNectarDevelopmentCurveSet *a_set) |
Set method for pollen and nectar curves. More... | |
virtual void | CalculateFlowerResourceForCrop (TTypesOfVegetation a_new_veg) |
The function to calculate flower resource for the crop in a year. More... | |
virtual void | CalculateFlowerResourceForCropSow (TTypesOfVegetation a_new_veg) |
virtual void | PollenNectarReset () |
virtual double | supplyNecDD () |
virtual double | supplySugDD () |
virtual double | supplyPolDD () |
virtual bool | GetPollenNectarFlag () |
Returns the flag showing whether there is potential pollen/nectar here or not. More... | |
int | GetPollenNectarCurveRef (void) |
Returns the pollen nectart curve number. More... | |
Protected Attributes | |
double | m_LarvalFood |
The amount of larval food present More... | |
double | m_LarvalFoodScaler |
The proportion of larval food per m2 More... | |
double | m_pondpesticide |
Holds the pesticide content per unit pond water. More... | |
bool | m_MaleNewtPresent |
Flag for presence of a male newt. More... | |
double | m_pondquality |
a factor used to alter the pond qualities (default behaviour is random 0.0-1.0) More... | |
![]() | |
Landscape * | m_Landscape |
vector< int > | m_ManagementActionCounts |
int | m_ptrace [256] |
int | m_pdates [256] |
int | m_pindex |
long | m_running |
LE * | m_border |
int | m_unsprayedmarginpolyref |
int | m_valid_x |
int | m_valid_y |
int | m_centroidx |
int | m_centroidy |
int | m_vege_danger_store |
int | m_PesticideGridCell |
bool | m_is_in_map |
int | m_subtype |
int | m_maxx |
int | m_minx |
int | m_maxy |
int | m_miny |
long | m_olddays |
long | m_management_loop_detect_date |
long | m_management_loop_detect_count |
Farm * | m_owner {nullptr} |
int | m_countrydesignation |
int | m_owner_file |
int | m_owner_index |
int | m_rot_index |
bool | m_sprayedtoday |
flag to indicate an overspray situation More... | |
int | m_poly |
The polyref number for this polygon. More... | |
int | m_map_index |
int | m_almass_le_type |
This holds the ALMaSS element type reference number. More... | |
int | m_farmfunc_tried_to_do |
int | m_tramlinesdecay |
int | m_mowndecay |
int | m_herbicidedelay |
TTypesOfLandscapeElement | m_type |
TTypesOfLandscapeElement | m_owner_tole |
double | m_area |
The element area in m2. More... | |
int | m_gooseNos [366] |
The number of geese each day. More... | |
int | m_gooseSpNos [366][gs_foobar] |
The number of geese of each species each day. More... | |
int | m_gooseNosTimed [366] |
The number of geese at a predefined time per day. More... | |
int | m_gooseSpNosTimed [366][gs_foobar] |
The number of geese of each species at a predefined time per day. More... | |
bool | m_instubble |
A flag describing the state of the field from a visual perspective - will be in stubble following a cereal crop until either soil cultivation or March 1st. More... | |
double | m_birdseedforage |
The grain forage present in seeds/m2. More... | |
double | m_birdmaizeforage |
The maize forage present in seeds/m2. More... | |
double | m_goosegrazingforage [gs_foobar] |
The grazing forage present in KJ/min. The last value indicates cereal 1 or not -1. More... | |
TTypesOfVegetation | m_lastsownvegtype |
Records the last vegegetation type that was sown on the element. More... | |
int | m_openness |
The openness metric for a field (if any) More... | |
double | m_elevation |
Elevation data. More... | |
double | m_slope |
double | m_aspect |
double | m_dist_to_closest_roost [gs_foobar] |
An array holding the distance to the nearest goose roost. More... | |
int | m_vegage |
int | m_soiltype |
int | m_days_since_insecticide_spray |
bool | m_att_high |
bool | m_att_water |
bool | m_att_forest |
bool | m_att_woody |
bool | m_att_urbannoveg |
bool | m_att_userdefinedbool |
a userdefined attribute which can be set by a species model without changing other standard values More... | |
int | m_att_userdefinedint |
a userdefined attribute which can be set by a species model without changing other standard values More... | |
bool | m_poison |
int | m_cattle_grazing |
int | m_default_grazing_level |
bool | m_pig_grazing |
double | m_vegddegs |
double | m_yddegs |
double | m_weedddegs |
double | m_ddegs |
vector< int > | m_lasttreat |
unsigned int | m_lastindex |
int | MDates [2][25] |
int | MConsts [10] |
LE_Signal | m_signal_mask |
double | m_OsmiaNestProb |
to record the chance of osmia nesting More... | |
int | m_maxOsmiaNests |
to record the number of possible osmia nests More... | |
int | m_currentOsmiaNests |
to record the number of actual osmia nests More... | |
PollenNectarData | m_polleninfo |
PollenNectarData | m_nectarinfo |
double | m_totalPollen |
double | m_totalNectar |
int | m_pollen_nectar_curve_index |
Variable to record the pollen and nectar curve number. More... | |
int | m_flowering_day_counter |
The day counter to enter the flowering period. More... | |
vector< int > | m_flowering_phases |
The array to store the day numbers of for turning point of flower resource. More... | |
vector< double > | m_nectar_amount |
The array to store the nectar amount for each period. More... | |
vector< double > | m_pollen_amount |
The array to store the pollen amount for each period. More... | |
vector< double > | m_sugar_amount |
The array to store the sugar quality for each period. More... | |
PollenNectarDevelopmentCurveSet * | m_OurPollenNectarCurveSet {NULL} |
pointer to the correct pollen curve set More... | |
bool | m_PollenNectarFlag |
Records whether there is any pollen possibility here or not. More... | |
PlantProtectionProducts | m_spray_ppp_type |
This is to store the sprayed pesticide type. More... | |
double | m_spray_ppp_rate |
This is to store the sprayed pesticide rate. More... | |
Additional Inherited Members | |
![]() | |
int | m_tried_to_do |
int | m_squares_in_map |
TTypesOfCrops | m_CropType |
bool | m_skylarkscrapes |
For management testing of skylark scrapes. More... | |
![]() | |
static double | m_monthly_traffic [] |
Used for birds that feed on grain on cereal fields 3% spill is expected. More... | |
static double | m_largeroad_load [] |
static double | m_smallroad_load [] |
Ponds are defined as freshwater bodies between 25m2 and 5000m2. For newts the effective size is limited to 400m2.
Currently the only pond 'behviour' is related to provision of food for newt larvae. This is determined daily and can be seasonally adjusted.
Pond::Pond | ( | Landscape * | L | ) |
void Pond::CalcLarvalFood | ( | ) |
Calculates the amount of larval food present
The larval food is calculated assuming a logistic equation in the form of Nt+1 = Nt+(N*r * (1-N/K)) t = one day, N is a scaler which is multiplied by a constant and the area of the pond to get the total larval food, K & r are carrying capacity and instantaneous reproductive rate respectively. K can change with season and this is currently hard coded, but could be an input variable later. The values are held in LarvalFoodMonthlyK
The steps in the calculation are:
References cfg_PondLarvalFoodBiomassConst, cfg_PondLarvalFoodR, g_date, Calendar::GetMonth(), LE::m_area, m_LarvalFood, m_LarvalFoodScaler, m_pondquality, and CfgFloat::value().
Referenced by DoDevelopment().
void Pond::CalcPondPesticide | ( | ) |
Calculates the amount of pesticide per unit pond water
The pesticide is calculated based on the mean concentration per m2 which is then multiplied by a factor representing run-off from the surroundings or other movements of pesticides through soil into the pond. This method assumes a uniform depth of water, which is then ignored (so can be seen as being part of the run-off factor). The pesticide concentration is calculated each day. These calculations are heavy on CPU time because of the need to search the landscape map for pond 1m2 and sum pesticide. So this has to be set to run by flagging using cfg_calc_pond_pesticide
To create the sum of pesticide the map is searched from min x,y to max x,y coords, and pond cells are summed for their pesticide content. Then the mean found.
We assume a mean pond depth of 1 m, so pesticide per l = m_pondpesticide/1000 to get per litre then multiplied buy the run-off factor
References cfg_calc_pond_pesticide, cfg_pondpesticiderunoff, LE::m_area, LE::m_Landscape, LE::m_maxx, LE::m_maxy, LE::m_minx, LE::m_miny, LE::m_poly, m_pondpesticide, ppp_1, Landscape::SupplyPesticide(), Landscape::SupplyPolyRef(), CfgFloat::value(), and CfgBool::value().
Referenced by DoDevelopment().
|
virtual |
DoDevelopment is needed due to special development for this element type, i.e. larval food calculations for newts.
Reimplemented from LE.
References CalcLarvalFood(), CalcPondPesticide(), LE::DoDevelopment(), and m_MaleNewtPresent.
|
inlinevirtual |
|
inlinevirtual |
bool Pond::SubtractLarvalFood | ( | double | a_food | ) |
Called by a larva when feeding, removes an age specific amount of larval food
If the total amount of food is low then there is a probability test to determine if food can be found. If failed the return code false means no food was removed. If passed then this removes the amount of food passed in a_food and return true.
References m_LarvalFood.
|
inline |
|
protected |
The amount of larval food present
Referenced by CalcLarvalFood(), Pond(), and SubtractLarvalFood().
|
protected |
The proportion of larval food per m2
Referenced by CalcLarvalFood(), and Pond().
|
protected |
Flag for presence of a male newt.
Referenced by DoDevelopment(), IsMaleNewtPresent(), Pond(), and SetMaleNewtPresent().
|
protected |
Holds the pesticide content per unit pond water.
Referenced by CalcPondPesticide(), Pond(), and SupplyPondPesticide().
|
protected |
a factor used to alter the pond qualities (default behaviour is random 0.0-1.0)
Referenced by CalcLarvalFood(), and Pond().