/// <summary> /// If the Hydric Balance is lower than the Water Threhold we need to Irrigate /// The water Threhold is the half of the Available Water /// </summary> /// <param name="pCropIrrigationWeather"></param> /// <returns></returns> public bool IrrigateByHydricBalance(CropIrrigationWeather pCropIrrigationWeather) { bool lReturn = false; double lAvailableWater; double lHydricBalance; double lPermanentWiltingPoint; double lThreshold; double lMinEvapotrasnpirationToIrrigate; double lEvapotrAcum; lAvailableWater = pCropIrrigationWeather.GetSoilAvailableWaterCapacity(); lPermanentWiltingPoint = pCropIrrigationWeather.GetSoilPermanentWiltingPoint(); //This is the Threshold to determinate the need of lIrrigationItem lThreshold = Math.Round(lAvailableWater * InitialTables.PERCENTAGE_LIMIT_OF_AVAILABLE_WATER_CAPACITY, 2) + lPermanentWiltingPoint; lMinEvapotrasnpirationToIrrigate = pCropIrrigationWeather.Crop.MinEvapotranspirationToIrrigate; lEvapotrAcum = pCropIrrigationWeather.GetTotalEvapotranspirationCropFromLastWaterInput(); lHydricBalance = pCropIrrigationWeather.GetHydricBalance(); if (lHydricBalance <= lThreshold && lEvapotrAcum >= lMinEvapotrasnpirationToIrrigate) { lReturn = true; } return(lReturn); }
/// <summary> /// If the evapotranspiration Acumulated from last water output is bigger than max evapotranspiration to irrigatte /// we need to irrigate /// </summary> /// <param name="pCropIrrigationWeather"></param> /// <returns></returns> public bool IrrigateByEvapotranspiration(CropIrrigationWeather pCropIrrigationWeather) { bool lReturn = false; double lMaxEvapotrToIrr; double lEvapotrAcum; lMaxEvapotrToIrr = pCropIrrigationWeather.Crop.MaxEvapotranspirationToIrrigate; lEvapotrAcum = pCropIrrigationWeather.GetTotalEvapotranspirationCropFromLastWaterInput(); //If the evapotranspiration Acumulated from last water output is bigger than max evapotranspiration to irrigatte //we need to irrigate if (lEvapotrAcum >= lMaxEvapotrToIrr) { lReturn = true; } return(lReturn); }