static void Main(string[] args) { var svr = PostgreSQL.GetPostgresServer("timeseries", "lrgs1"); var db = new TimeSeriesDatabase(svr, Reclamation.TimeSeries.Parser.LookupOption.TableName); TimeSeriesCalculator c = new TimeSeriesCalculator(db, TimeInterval.Daily, "", ""); CsvFile csv = new CsvFile(@"T:\PN6200\Hydromet\Data\rivers_canals_old.csv", CsvFile.FieldTypes.AllText); for (int i = 0; i < csv.Rows.Count; i++) { string siteID = csv.Rows[i]["cbtt"].ToString(); string pcode = csv.Rows[i]["pcode"].ToString(); var dep = c.GetDependentCalculations(siteID, pcode); string msg = ""; foreach (var item in dep) { msg += " " + item.Name; } if (msg != "") { Console.WriteLine(siteID + "_" + pcode + ": " + msg); } } }
static void Main(string[] argList) { Console.Write("HydrometServer " + Application.ProductVersion + " " + AssemblyUtility.CreationDate() + "\n"); Arguments args = new Arguments(argList); var p = new OptionSet(); var cli = ""; p.Add("cli=", "interface --cli=instant|daily|monthly", x => cli = x); try { p.Parse(argList); } catch (OptionException e) { Console.WriteLine(e.Message); } if (argList.Length == 0) { ShowHelp(p); return; } string errorFileName = "errors.txt"; string detailFileName = "detail.txt"; Performance perf = new Performance(); // try { if (args.Contains("debug")) { Logger.EnableLogger(); Reclamation.TimeSeries.Parser.SeriesExpressionParser.Debug = true; } if (args.Contains("import-rating-tables")) {// --import-rating-tables=site_list.csv [--generateNewTables] : updates usgs,idahopower, and owrd rating tables ApplicationTrustPolicy.TrustAll(); var cfg = args["import-rating-tables"]; if (File.Exists(cfg)) { RatingTableDownload.UpdateRatingTables(cfg, args.Contains("generateNewTables")); } else { Console.WriteLine("Error: File not found: " + cfg); } return; } // setup connection to Database if (args.Contains("create-database")) { if (CreatePostgresDatabase(args)) { return; } } var db = TimeSeriesDatabase.InitDatabase(args); if (cli != "") { TimeInterval interval = TimeInterval.Irregular; if (cli == "daily") { interval = TimeInterval.Daily; } Console.WriteLine(); HydrometServer.CommandLine.PiscesCommandLine cmd = new CommandLine.PiscesCommandLine(db, interval); cmd.PiscesPrompt(); return; } bool simulate = args.Contains("simulate"); bool hydrometCompare = args.Contains("hydromet-compare"); if (args.Contains("error-log")) { errorFileName = args["error-log"]; File.AppendAllText(errorFileName, "HydrometServer.exe: Started " + DateTime.Now.ToString() + "\n"); } if (args.Contains("detail-log")) { detailFileName = args["detail-log"]; File.AppendAllText(detailFileName, "HydrometServer.exe: Started " + DateTime.Now.ToString() + "\n"); } string propertyFilter = ""; if (args.Contains("property-filter")) { propertyFilter = args["property-filter"]; } string filter = ""; if (args.Contains("filter")) { filter = args["filter"]; } if (args.Contains("inventory")) { db.Inventory(); } if (args.Contains("import")) // import and process data from files { bool computeDependencies = args.Contains("computeDependencies"); bool computeDailyOnMidnight = args.Contains("computeDailyOnMidnight"); string searchPattern = args["import"]; if (searchPattern == "") { searchPattern = "*"; } string incomingPath = ConfigurationManager.AppSettings["incoming"]; FileImporter importer = new FileImporter(db); importer.Import(incomingPath, RouteOptions.Outgoing, computeDependencies, computeDailyOnMidnight, searchPattern); } DateTime t1; DateTime t2; SetupDates(args, out t1, out t2); if (args.Contains("import-hydromet-instant")) { File.AppendAllText(errorFileName, "begin: import-hydromet-instant " + DateTime.Now.ToString() + "\n"); ImportHydrometInstant(db, t1.AddDays(-2), t2.AddDays(1), filter, propertyFilter); } if (args.Contains("import-hydromet-daily")) { File.AppendAllText(errorFileName, "begin: import-hydromet-daily " + DateTime.Now.ToString() + "\n"); ImportHydrometDaily(db, t1.AddDays(-500), t2, filter, propertyFilter); } if (args.Contains("import-hydromet-monthly")) { File.AppendAllText(errorFileName, "begin: import-hydromet-monthly " + DateTime.Now.ToString() + "\n"); ImportHydrometMonthly(db, t1.AddYears(-5), t2.AddDays(1), filter, propertyFilter); } if (args.Contains("calculate-daily")) { TimeSeriesCalculator calc = new TimeSeriesCalculator(db, TimeInterval.Daily, filter, propertyFilter); File.AppendAllText(errorFileName, "begin: calculate-daily " + DateTime.Now.ToString() + "\n"); calc.ComputeDailyValues(t1, t2, hydrometCompare, errorFileName, detailFileName, simulate); } if (args.Contains("import-dayfile")) { var fn = args["import-dayfile"]; ImportVaxFile(db, fn); } if (args.Contains("import-archive")) { var fn = args["import-archive"]; ImportVaxFile(db, fn); } if (args.Contains("import-mpoll")) { var fn = args["import-mpoll"]; ImportVaxFile(db, fn); } if (args.Contains("update-daily")) { string sql = "provider = '" + db.Server.SafeSqlLiteral(args["update-daily"]) + "'"; var updateList = db.GetSeriesCatalog(sql); Console.WriteLine("Updating " + updateList.Count + " Series "); foreach (var item in updateList) { try { Console.Write(item.Name + " "); var s = db.GetSeries(item.id); s.Update(t1, t2); } catch (Exception e) { Console.WriteLine(e.Message); } } } if (args.Contains("update-period-of-record")) { var sc = db.GetSeriesCatalog("isfolder=0"); var prop = db.GetSeriesProperties(true); for (int i = 0; i < sc.Count; i++) { var s = db.GetSeries(sc[i].id); var por = s.GetPeriodOfRecord(); s.Properties.Set("count", por.Count.ToString()); if (por.Count == 0) { s.Properties.Set("t1", ""); s.Properties.Set("t2", ""); } else { s.Properties.Set("t1", por.T1.ToString("yyyy-MM-dd")); s.Properties.Set("t2", por.T2.ToString("yyyy-MM-dd")); } Console.WriteLine(s.Name); } db.Server.SaveTable(prop); } db.Server.Cleanup(); File.AppendAllText(errorFileName, "HydrometServer.exe: Completed " + DateTime.Now.ToString() + "\n"); } //catch (Exception e ) //{ // Logger.WriteLine(e.Message); // File.AppendAllText(errorFileName, "Error: HydrometServer.exe: \n"+e.Message); // // Console.ReadLine(); // throw e; //} var mem = GC.GetTotalMemory(true); double mb = mem / 1024.0 / 1024.0; Console.WriteLine("Mem Usage: " + mb.ToString("F3") + " Mb"); perf.Report("HydrometServer: finished "); }