public static void ReadMpoll(string cbtt, string pcode, string waterYear, double[] values, string[] mark) { HydrometMonthlySeries s = new HydrometMonthlySeries(cbtt, pcode); YearRange rng = new YearRange(int.Parse(waterYear), 10); s.Read(rng.DateTime1, rng.DateTime2); for (int i = 0; i < s.Count; i++) { values[i + 1] = s[i].Value; mark[i + 1] = s[i].Flag; } }
protected override Series CreateFromConnectionString() { string str = ConnectionStringToken("server"); HydrometHost svr = HydrometHost.PNLinux; if (str.Trim() != "") { svr = (HydrometHost)Enum.Parse(typeof(HydrometHost), str); } HydrometMonthlySeries s = new HydrometMonthlySeries( ConnectionStringToken("cbtt"), ConnectionStringToken("pcode"), svr); return(s); }
public static double AverageValue30Year(string cbtt, string pcode, int month1, int month2) { var t1 = HydrometDataUtility.T1Thirty; var t2 = HydrometDataUtility.T2Thirty; var s2 = new HydrometMonthlySeries(cbtt, pcode, HydrometHost.PNLinux); s2.Read(t1, t2); MonthDayRange rng = new MonthDayRange(month1, 1, month2, 1); var runoff2 = Math.AggregateAndSubset(StatisticalMethods.Sum, s2, rng, 10); //compute monthly average here... var rval = Math.Sum(runoff2) / runoff2.Count; return(rval); }
public static int WriteMPollUpdateFile(DataTable tblNew, DataTable tblOld, string outputFilename, out bool mpollPermanentMarkChanged) { mpollPermanentMarkChanged = false; if (tblNew.Rows.Count != tblOld.Rows.Count) { Logger.WriteLine("Error: the number of rows in the data has changed. no update file will be written"); return(0); } if (tblNew.Columns.Count != tblOld.Columns.Count) { Logger.WriteLine("Error: the number of columns in the data has changed. no update file will be written"); return(0); } StreamWriter output = new StreamWriter(outputFilename); int modifiedCounter = 0; // first column is date, other columns are values output.WriteLine("cbtt,pc,Year,month,value,flag,oldValue,oldFlag"); for (int c = 1; c < tblOld.Columns.Count; c += 2) { string columnName = tblOld.Columns[c].ColumnName; var parts = columnName.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); string stationName = parts[0]; string pcode = parts[1]; for (int r = 0; r < tblOld.Rows.Count; r++) { double valNew = ReadDouble(tblNew.Rows[r][c]); double valOld = ReadDouble(tblOld.Rows[r][c]); string newFlag = ReadFlag(tblNew.Rows[r][c + 1]); string oldFlag = ReadFlag(tblOld.Rows[r][c + 1]); if (valNew != valOld || newFlag != oldFlag) { // something changed. write to script. if (HydrometMonthlySeries.IsPermanentMark(oldFlag)) { mpollPermanentMarkChanged = true; } DateTime date = (DateTime)tblNew.Rows[r][0]; System.Globalization.NumberFormatInfo nf = new System.Globalization.NumberFormatInfo(); nf.NumberDecimalDigits = 2; string str = stationName.Trim() + "," + pcode.Trim() + "," + date.Year.ToString() + "," + date.ToString("MMM").ToUpper() + "," + valNew.ToString("F2") + "," + newFlag + "," + valOld + "," + oldFlag; output.WriteLine(str); modifiedCounter++; } } } output.Close(); return(modifiedCounter); }