Ejemplo n.º 1
0
        public void TestMethod1()
        {
            string fn        = Path.Combine(TestData.DataPath, "SimpleResponseFunction.csv");
            var    csv       = new CsvFile(fn);
            var    diversion = new DataTableSeries(csv, TimeInterval.Daily, "Date", "Input");

            diversion.Read();
            var expected = new DataTableSeries(csv, TimeInterval.Daily, "Date", "ExpectedResponse");

            expected.Read();

            var responseFunction = new DataTableSeries(csv, TimeInterval.Daily, "Date", "ResponseFunction");

            responseFunction.Read();

            Console.WriteLine(" responseFunction has " + responseFunction.Count + " points");
            Console.WriteLine("diversion has " + diversion.Count);

            Series lag = Math.RoutingWithLags(diversion, responseFunction.Values);

            Assert.AreEqual(7, lag.Count);

            lag.WriteToConsole();
            if (lag.Count != expected.Count)
            {
                Console.WriteLine("Error: expected count not the same as lag count");
            }

            double sumDiff = System.Math.Abs(Math.Sum(expected - lag));

            Console.WriteLine("Sum of difference = " + sumDiff);
            Assert.AreEqual(0, sumDiff, 0.0000001);
        }
Ejemplo n.º 2
0
 public override ParserResult Lookup(string name, TimeInterval defaultInterval)
 {
     if (data.Columns.IndexOf(name) >= 0)
     {
         Series s = new DataTableSeries(data, m_interval, dateColumn, name);
         return(new ParserResult(s));
     }
     else
     {
         return(base.Lookup(name, defaultInterval));
     }
 }
Ejemplo n.º 3
0
        public void UnregulatedFlow()
        {
            var    fn  = Path.Combine(TestData.DataPath, "calculationtests_jck_qu.csv");
            var    csv = new CsvFile(fn);
            Series af  = new DataTableSeries(csv, TimeInterval.Daily, "Date", "jck af");
            Series qd  = new DataTableSeries(csv, TimeInterval.Daily, "Date", "jck qd");

            var qu = new CalculationSeries();

            qu.Parser.VariableResolver.Add("jck_af", af);
            qu.Parser.VariableResolver.Add("jck_qd", qd);

            qu.Expression = "(jck_af[t]-jck_af[t-1])/1.98347+jck_qd";

            DateTime t1 = DateTime.Parse("12/25/2010");
            DateTime t2 = DateTime.Parse("12/27/2010");

            qu.Calculate(t1, t2);

            qu.WriteToConsole();
            Assert.AreEqual(674.39, qu["12/26/2010"].Value, .01);
        }
Ejemplo n.º 4
0
        public void ConvertToCelcius()
        {
            var    fn  = Path.Combine(TestData.DataPath, "calculationtests_convert.csv");
            var    csv = new CsvFile(fn);
            Series s   = new DataTableSeries(csv, TimeInterval.Daily, "Date", "value");

            s.Units = "degrees C";
            s.Name  = "series1";

            CalculationSeries c = new CalculationSeries();

            c.Parser.VariableResolver.Add("series1", s);
            c.Expression = "5/9*(series1-32)";
            c.Read();

            // c.WriteToConsole();
            c.Clear();
            c.Calculate(); //t,t.AddDays(3));
            c.WriteToConsole();
            Assert.AreEqual(0, c[0].Value, 0.01);
            Assert.AreEqual(100, c[1].Value, 0.01);
        }
Ejemplo n.º 5
0
        public void SevenDayMovingDaily()
        {
            string          fn  = Path.Combine(TestData.DataPath, "SpecificationTestData.csv");
            var             csv = new CsvFile(fn);
            DataTableSeries s   = new DataTableSeries(csv, TimeInterval.Daily, "Date", "JulianDay");

            Series expected = new DataTableSeries(csv, TimeInterval.Daily, "Date", "SevenDayMovingAverage");

            s.Read();
            expected.Read();

            Series s2 = Reclamation.TimeSeries.Math.SevenDayMovingAverage(s);

            Assert.AreEqual(2798, s2.Count);
            expected.RemoveMissing();
            Assert.AreEqual(expected.Count, s2.Count);

            Series diff = expected - s2;

            double d = Reclamation.TimeSeries.Math.Sum(diff);

            Assert.AreEqual(0, d, 0.001);
        }
Ejemplo n.º 6
0
        private static void ConvertToDailyAndSaveInDatabase()
        {
            //Date,WY1949,WY1950,WY1951,WY1952,WY1953,WY1954,WY1955,WY1956,WY1957,WY1958,WY1959,WY1960,WY1961,WY1962,WY1963,WY1964,WY1965,WY1966,WY1967,WY1968,WY1969,WY1970,WY1971,WY1972,WY1973,WY1974,WY1975,WY1976,WY1977,WY1978,WY1979,WY1980,WY1981,WY1982,WY1983,WY1984,WY1985,WY1986,WY1987,WY1988,WY1989,WY1990,WY1991,WY1992,WY1993,WY1994,WY1995,WY1996,WY1997,WY1998,WY1999,WY2000,WY2001,WY2002,WY2003,WY2004,WY2005,WY2006,WY2007,WY2008,WY2009,WY2010,WY2011,WY2012,WY2013,WY2014,WY2015

            SQLiteServer       svr    = new SQLiteServer(@"C:\temp\test.pdb");
            TimeSeriesDatabase db     = new TimeSeriesDatabase(svr);
            string             fn     = @"c:\temp\HEII1_QINE.ESPF10.csv";
            CsvFile            csv    = new CsvFile(fn);
            Series             merged = new Series();

            for (int i = 1; i < csv.Columns.Count; i++)
            {
                DataTableSeries s = new DataTableSeries(csv, TimeInterval.Irregular, "Date", csv.Columns[i].ColumnName);
                s.Read();
                merged.Add(Reclamation.TimeSeries.Math.ShiftToYear(s, 1995));

                var daily = Reclamation.TimeSeries.Math.DailyAverage(s);
                daily.Table.TableName = csv.Columns[i].ColumnName;
                daily.Name            = daily.Table.TableName;
                db.AddSeries(daily);
            }

            var scenarios = db.GetScenarios();

            for (int yr = 1949; yr < 2015; yr++)
            {
                // scenarios.AddScenarioRow(yr.ToString(), yr == 1949, yr.ToString());
            }
            db.Server.SaveTable(scenarios);

            //Series s = new ExcelDataReaderSeries(csv, "HEII1_QINE.ESPF10", "Date", col[i], "kcfs");
            //s.Read();
            //s.SiteID = "Snake River nr Heise";
            //s.Table.TableName = col[i];
            //db.AddSeries(s);
        }