示例#1
0
        /// <summary>
        /// Method to calculate water use sums.
        /// </summary>
        /// <param name="n">Number of days prior to today for summation</param>
        /// <param name="et"></param>
        /// <param name="row"></param>
        /// <param name="numDaysRead"></param>
        /// <returns></returns>
        internal static double EtSummation(int n, Series et, CropDatesDataSet.CropDatesRow row,
                                           int numDaysRead)
        {
            double etSum = 0;
            double dayET;

            for (int i = 1; i <= n; i++)
            {
                if (i > numDaysRead)//Handles Charts within 14days of ETr Start Date
                {
                    dayET = 0;
                }

                else
                {
                    dayET = WaterUse(et[numDaysRead - i].DateTime, et[numDaysRead - i].Value, row);
                    if (dayET < 0)//Handles missing ET values
                    {
                        dayET = 0;
                    }
                    else
                    {
                    }
                }

                etSum = etSum + dayET;
            }
            return(etSum);
        }
示例#2
0
        internal static double WaterUse(DateTime t, double et, CropDatesDataSet.CropDatesRow row)
        {
            var kc_value = ReadCoefficients(row.cropcurvenumber);

            var jd  = t.DayOfYear;
            var jpd = row.startdate.DayOfYear;
            var jcd = row.fullcoverdate.DayOfYear;
            var jtd = row.terminatedate.DayOfYear;

            var kc = CropCoefficient(kc_value, jd, jpd, jcd, jtd);

            return(et * kc);
        }
示例#3
0
        internal static double WaterUse(DateTime t, double et, CropDatesDataSet.CropDatesRow row)
        {
            var kc_value = ReadCoefficients(row.cropcurvenumber);

            if (kc_value.Length == 0)
            {
                throw new Exception("Error: crop number " + row.cropcurvenumber + " not found " + row.cropname);
            }

            var jd  = t.DayOfYear;
            var jpd = row.startdate.DayOfYear;
            var jcd = row.fullcoverdate.DayOfYear;
            var jtd = row.terminatedate.DayOfYear;

            var kc = CropCoefficient(kc_value, jd, jpd, jcd, jtd);

            return(et * kc);
        }
示例#4
0
        /// <summary>
        /// Calculates the Daily Crop ET.
        /// </summary>
        /// <param name="numDaysRead">Number of days between Chart Generation date and the Start Date</param>
        /// <param name="n">The number of days from today for which you want the Crop ET</param>
        /// <param name="et"></param>
        /// <param name="row"></param>
        /// <returns></returns>
        internal static string ETCropDaily(int numDaysRead, int n, HydrometDailySeries et, CropDatesDataSet.CropDatesRow row)
        {
            double val = 0.00;

            if (numDaysRead > n)
            {
                val = CropCurves.WaterUse(et[numDaysRead - n].DateTime, et[numDaysRead - n].Value, row);
            }
            else
            {
            }
            if (val < 0)
            {
                return("msng");
            }
            else
            {
                return(val.ToString("F2"));
            }
        }