ALMaSS  1.2 (after EcoStack, March 2024)
The Animal, Landscape and Man Simulation System
WaterBufferZone Class Reference

#include <Elements.h>

Inheritance diagram for WaterBufferZone:
VegElement LE

Public Member Functions

 WaterBufferZone (Landscape *L)
virtual void DoDevelopment (void)
- Public Member Functions inherited from VegElement
 VegElement (TTypesOfLandscapeElement tole, Landscape *L)
virtual ~VegElement (void)
virtual double GetDigestibility (void)
virtual double GetLAGreen (void)
virtual double GetLATotal (void)
virtual bool GetIsVeg (void)
virtual double GetVegCover (void)
virtual double GetVegHeight (void)
virtual double GetVegBiomass (void)
virtual double GetDeadBiomass (void)
virtual double GetGreenBiomass (void)
virtual double GetInterestedGreenBiomass (void)
virtual double GetGreenBiomassProp (void)
virtual double GetWeedBiomass (void)
virtual int GetVegDensity (void)
virtual bool GetSkScrapes (void)
void Tick (void) override
virtual void SetVegGrowthScalerRand ()
virtual double GetInsectPop (void)
virtual void SetInsectPop (double insects)
virtual TTypesOfVegetation GetVegType (void)
virtual TTypesOfCrops GetCropType ()
virtual void SetCropType (TTypesOfCrops a_type)
void SetInsectBiomassParametersIndex (TTypesOfCrops a_type)
void SetInterestedBiomassFractionForCrop (TTypesOfCrops a_crop_type)
virtual void Insecticide (double a_fraction)
virtual bool Is_Att_Veg (void)
virtual void Set_Att_Veg (bool p)
virtual bool Is_Att_VegPatchy (void)
virtual void Set_Att_VegPatchy (bool p)
virtual bool Is_Att_VegCereal ()
virtual void Set_Att_VegCereal (bool p)
virtual bool Is_Att_VegMatureCereal ()
virtual void Set_Att_VegMatureCereal (bool p)
virtual bool Is_Att_VegMaize ()
virtual void Set_Att_VegMaize (bool p)
virtual bool Is_Att_VegGrass ()
virtual void Set_Att_VegGrass (bool p)
virtual bool Is_Att_VegGooseGrass ()
virtual void Set_Att_VegGooseGrass (bool p)
bool IsMatureCereal ()
bool IsMaize ()
bool IsCereal ()
bool IsGooseGrass ()
void SetVegPatchy (bool p)
virtual void InsectMortality (double a_fraction)
virtual void ReduceWeedBiomass (double a_fraction)
virtual void ToggleCattleGrazing (void)
virtual void TogglePigGrazing (void)
virtual void GrazeVegetation (double a_grams, bool a_force)
virtual void GrazeVegetationHeight (double a_reduc)
virtual void GrazeVegetationTotal (double a_grams)
 The function that reduces the vegetation due to grazing. More...
virtual void SetVegType (TTypesOfVegetation a_vege_type)
virtual void SetVegType (TTypesOfVegetation a_vege_type, TTypesOfVegetation a_weed_type)
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 SetVegHeight (double a_veg_height)
virtual void SetDigestibility (double a_digestability)
virtual void SetGrazingLevel (int a_grazing)
virtual void SetVegParameters (double a_veg_height, double a_LAtotal, double a_LAgreen, double a_WeedBiomass)
virtual void SetGrowthPhase (int a_phase)
virtual void StoreLAItotal ()
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 a_reduc)
virtual void ReduceVeg_Extended (double a_reduc)
virtual void ResetDigestibility ()
 sets growth record to zero More...
virtual int GetVegPhase ()
virtual void SetSpeciesFunction (TTypesOfPopulation a_species)
 Sets the correct species simulation behaviour for the current species. More...
void SetInterestedBiomassFraction (double a_interested_biomass_fraction)
 Function to set the instrested biomass fraction. More...
- Public Member Functions inherited from LE
 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 double GetVegGrowthStage (void)
virtual APoint GetCentroid ()
virtual int GetCentroidX ()
virtual int GetCentroidY ()
virtual void SetCentroid (int x, int y)
virtual double GetDayDegrees (void)
virtual void ToggleIrrigation (void)
virtual void SetVegBiomass (int)
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)
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 ()
FarmGetOwner (void)
double GetArea (void)
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)
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)
LEGetBorder (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)
void DoCopy (const LE *a_Le)
 a copy function to be used because a copy constuctor won't work More...
virtual void SetMaleNewtPresent (bool)
 Sets a male newt as present/absent in descendent classes - here only to prevent need for dynamic casts. More...
virtual bool IsMaleNewtPresent ()
 Sets a male newt as present/absent in descendent classes - here only to prevent need for dynamic casts. 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 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...

Private Member Functions

void ResetingVeg (int a_today)

Additional Inherited Members

- Static Public Member Functions inherited from VegElement
static void SetBiomassScalers (TTypesOfVegetation a_tov)
- Public Attributes inherited from LE
int m_tried_to_do
int m_squares_in_map
TTypesOfCrops m_CropType
bool m_skylarkscrapes
 For management testing of skylark scrapes. More...
- Protected Member Functions inherited from VegElement
void ReadBugPercentageFile (void)
virtual void RecalculateBugsNStuff (void)
 This method is responsible for. More...
void CalcGooseForageResources ()
 Calculates spilled grain and grazing forage resources for geese. More...
void RandomVegStartValues (double *a_LAtotal, double *a_LAgreen, double *a_veg_height, double *a_weed_biomass)
void ForceGrowthSpringTest (void)
virtual void PollenNectarPhenologyCalculation ()
 This methods calculates the daily availability of pollen and nectar per square meter and in total. More...
void CalculateDigestibility ()
 Sets vegetation digestability for hare and vole. More...
void CalculateAphidDrivers ()
 Determines the amount of new growth. More...
void CalculateInsectBiomass ()
 An insect biomass calculation for those species that need it. More...
virtual void PollenNectarReset ()
 Resets the daily availability of pollen and nectar per square meter and in total to zero. More...
void ResetGeese (void)
 Reset geese numbers to zero in case this was not done by the population manager (the normal situation). More...
void DoNothing (void)
 The default for SpeciesSpecificCalculations. More...
- Protected Attributes inherited from VegElement
int m_insect_biomass_parameters_index { 0 }
double m_interested_biomass_fraction
 Fraction of the the interested biomass. More...
TTypesOfVegetation m_vege_type
int m_curve_num
int m_weed_curve_num
int m_veg_phase
double m_growth_scaler
int m_nutrient_status
double m_LAtotal
double m_oldLAtotal
double m_LAgreen
double m_insect_pop
double m_veg_biomass
double m_total_biomass
double m_total_biomass_old
double m_green_biomass
double m_interested_green_biomass
double m_dead_biomass
double m_weed_biomass
double m_veg_height
int m_veg_density
bool m_att_veg
bool m_att_veg_patchy
bool m_att_veg_cereal
bool m_att_veg_maturecereal
bool m_att_veg_maize
bool m_att_veg_grass
bool m_att_veg_goosegrass
bool m_att_veg_forest
double m_veg_cover
double m_newgrowth
double m_new_weed_growth
bool m_forced_phase_shift
double m_digestability
double m_oldnewgrowth [32]
double m_oldnewgrowth2 [14]
int m_newoldgrowthindex
int m_newoldgrowthindex2
double m_newgrowthsum
double m_newgrowthruningaveragesum
double m_newgrowthruningaverage
double m_greenbiomass_per
double m_force_Weed
double m_force_LAgreen
double m_force_LAtotal
double m_force_veg_height
bool m_force_growth
bool m_start_dd_flower
 The flag to start accumulating day degrees for flower resource. More...
ifstream m_ifile
int m_crop_index
double m_acc_DD_flower_resource
 Contains the day degrees since the sowing, this is only used for the crops. More...
double m_num_flowring_peroid
 Contains the number of days of the flowring period, this is only used for the crops. More...
void(VegElement::* SpeciesSpecificCalculations )(void)
 A useful function pointer that we can use to specify species specific calculations. The default does nothing. More...
- Protected Attributes inherited from LE
vector< int > m_ManagementActionCounts
int m_ptrace [256]
int m_pdates [256]
int m_pindex
long m_running
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
Farmm_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...
PollenNectarDevelopmentCurveSetm_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...
- Static Protected Attributes inherited from VegElement
static double m_SeasonalInsectScaler [12] = { 0.1, 0.1, 0.15, 0.25, 0.75, 1.0, 1.0, 1.0, 0.9, 0.75, 0.25, 0.1 }
static double m_biomass_scale [tov_Undefined] = {}
- Static Protected Attributes inherited from LE
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 []

Constructor & Destructor Documentation

◆ WaterBufferZone()

WaterBufferZone::WaterBufferZone ( Landscape L)

Member Function Documentation

◆ DoDevelopment()

void WaterBufferZone::DoDevelopment ( void  )

Reimplemented from VegElement.

3097  {
3099  // Add reseting veg functionality on January 1st
3100  long today = g_date->DayInYear();
3102  if (g_date->JanFirst()) {
3103  // beginning of year so restart the cutting
3104  ResetingVeg(today);
3105  }
3106 }

References Calendar::DayInYear(), VegElement::DoDevelopment(), g_date, Calendar::JanFirst(), and ResetingVeg().

◆ ResetingVeg()

void WaterBufferZone::ResetingVeg ( int  a_today)
3109 {
3110  ZeroVeg();
3111 }

References VegElement::ZeroVeg().

Referenced by DoDevelopment().

The documentation for this class was generated from the following files:
VegElement(TTypesOfLandscapeElement tole, Landscape *L)
Definition: Elements.cpp:1282
virtual void DoDevelopment(void)
Definition: Elements.cpp:2564
class Calendar * g_date
Definition: Calendar.cpp:37
void ResetingVeg(int a_today)
Definition: Elements.cpp:3108
Definition: LandscapeFarmingEnums.h:130
virtual void SetVegGrowthScalerRand()
Definition: Elements.cpp:1277
virtual void Set_Att_VegPatchy(bool p)
Definition: Elements.h:770
int DayInYear(void)
Definition: Calendar.h:58
virtual void ZeroVeg(void)
Definition: Elements.cpp:2547
bool JanFirst(void)
Definition: Calendar.h:79
virtual void SetVegType(TTypesOfVegetation a_vege_type)
Definition: Elements.cpp:2763
Definition: LandscapeFarmingEnums.h:201