/// <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); }
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); }
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); }
/// <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")); } }