Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }