Exemplo n.º 1
0
        public void wrdo()
        {
            Logger.EnableLogger();
            var dir     = FileUtility.GetTempPath();
            var testDir = Path.Combine(Globals.TestDataPath, "wrdo");

            FileUtility.CopyFiles(testDir, dir, "*.dat", true, true);


            var c = new Series("daily_wrdo_mm"); //needed to

            //c.Expression = "DailyAverage(instant_wrdo_obm,92)";
            c.TimeInterval = TimeInterval.Daily;
            c.Add("10-1-2014", 43.27);
            c.Add("10-2-2014", 48.53);
            c.Add("10-3-2014", 52.33);
            c.Add("10-4-2014", 54.63);
            c.Add("10-5-2014", 53.97);
            c.Add("10-6-2014", 55.22);
            c.Add("10-7-2014", 55.12);

            db.AddSeries(c);

            c              = new CalculationSeries("daily_wrdo_mn");
            c.Expression   = "DailyMin(instant_wrdo_obn)";
            c.TimeInterval = TimeInterval.Daily;
            db.AddSeries(c);

            c              = new CalculationSeries("daily_wrdo_pc");
            c.Expression   = "DailyMidnight(instant_wrdo_pc)";
            c.TimeInterval = TimeInterval.Daily;
            c.Add("10-5-2014", 8);
            db.AddSeries(c);


            c              = new CalculationSeries("daily_wrdo_pp");
            c.Expression   = "daily_wrdo_pc-daily_wrdo_pc[t-1]";
            c.TimeInterval = TimeInterval.Daily;
            c.Add("10-5-2014", 0);
            db.AddSeries(c);

            c = new CalculationSeries("daily_wrdo_pu");
            c.TimeSeriesDatabase = db;
            c.Expression         = "DailyWaterYearRunningTotal(daily_wrdo_pp,daily_wrdo_pu)";
            c.TimeInterval       = TimeInterval.Daily;

            c.Add("10-1-2014", 0);
            c.Add("10-2-2014", 0);
            c.Add("10-3-2014", 0);
            c.Add("10-4-2014", 0);
            c.Add("10-5-2014", 0);
            c.Add("10-6-2014", 0);
            db.AddSeries(c);
            c = db.GetSeriesFromTableName("daily_wrdo_pu");

            c.Properties.Set("DaysBack", "4");
            c.Properties.Save();
            c              = new CalculationSeries("daily_wrdo_mx");
            c.Expression   = "DailyMax(instant_wrdo_obx)";
            c.TimeInterval = TimeInterval.Daily;
            db.AddSeries(c);

            c              = new CalculationSeries("daily_wrdo_ym");
            c.Expression   = "DailyAverage(instant_wrdo_tp,92)";
            c.TimeInterval = TimeInterval.Daily;
            db.AddSeries(c);

            c              = new CalculationSeries("daily_wrdo_wr");
            c.Expression   = "DailySum(instant_wrdo_ws,92)/4.0";
            c.TimeInterval = TimeInterval.Daily;
            db.AddSeries(c);

            c              = new CalculationSeries("daily_wrdo_sr");
            c.Expression   = "DailySum(instant_wrdo_si,92)/4.0";
            c.TimeInterval = TimeInterval.Daily;
            db.AddSeries(c);


            c              = new CalculationSeries("daily_wrdo_et");
            c.SiteID       = "wrdo"; // needed for expression pre-processor with  %site%
            c.Expression   = "DailyEtKimberlyPenman(daily_%site%_mm,daily_%site%_mn,daily_%site%_mx,daily_%site%_ym,daily_%site%_wr,daily_%site%_sr,42.0125,1243.58)";
            c.TimeInterval = TimeInterval.Daily;
            db.AddSeries(c);

            FileImporter fi = new FileImporter(db);

            fi.Import(dir, RouteOptions.None, true, true, "*.dat");


            var s = db.GetSeriesFromTableName("daily_wrdo_ym");

            s.Read();
            Assert.IsTrue(s.Count > 0, " DailyAverage(instant_wrdo_tp,92) failed!");

            s = db.GetSeriesFromTableName("daily_wrdo_et");
            s.Read();
            Assert.AreEqual(0.16, s["10-7-2014"].Value, 0.01, "Error with ET");


            s = db.GetSeriesFromTableName("daily_wrdo_pu");
            s.Read();
            Assert.AreEqual(0, s["10-7-2014"].Value, 0.02, "Error with pu");
        }