Пример #1
0
        public SimpleMathSeries(TimeSeriesDatabase db, Reclamation.TimeSeries.TimeSeriesDatabaseDataSet.SeriesCatalogRow sr) : base(db, sr)
        {
            string[] idList = ConnectionStringUtility.GetToken(ConnectionString, "SeriesList", "").Split(',');
            string[] opList = ConnectionStringUtility.GetToken(ConnectionString, "OperatorList", "").Split(',');
            m_operation = new MathOperation[opList.Length];


            m_items = new SeriesList();

            for (int i = 0; i < idList.Length; i++)
            {
                int id = -1;
                if (!Int32.TryParse(idList[i], out id) || !db.SeriesExists(id))
                {
                    Logger.WriteLine("Cannot calculate series.  Has the data this calculation needs been deleted?");
                    Name            = "Error: source data missing " + Name;
                    m_sourceDeleted = true;
                    break;
                }
                else
                {
                    Series s = db.GetSeries(id);
                    m_items.Add(s);
                }
            }
            ScenarioName = m_items[0].ScenarioName;
            // TO DO assuming all scenarioNames are the same.

            for (int i = 0; i < opList.Length; i++)
            {
                m_operation[i] = MathOperationFromString(opList[i]);
            }
        }
Пример #2
0
 public static IEnumerable<String> GetBlockOfQueries(TimeSeriesDatabase db,
     TimeInterval interval, string filter,string propertyFilter="", int blockSize=75,
     bool ignoreQuality=true)
 {
     var rval = new List<string>();
     foreach (Series s in db.GetSeries(interval, filter,propertyFilter).ToArray())
     {
         TimeSeriesName tn = new TimeSeriesName(s.Table.TableName);
         //rval.Add(s.SiteID + " " + s.Parameter);
         if (Array.IndexOf(s_quality_parameters, tn.pcode.ToLower() ) >=0 )
             continue; // skip quality parameters
         rval.Add(tn.siteid + " " + tn.pcode);
         if (rval.Count >= blockSize)
         {
             yield return String.Join(",",rval.ToArray());
             rval.Clear();
         }
     }
     yield return String.Join(",", rval.ToArray());
 }
Пример #3
0
        public static void BasicDatabaseTest(TimeSeriesDatabase db)
        {
            Assert.IsTrue(db.GetSeriesCatalog().Rows.Count ==1 , " initial catalog should have root");
            Reclamation.TimeSeries.Hydromet.HydrometInfoUtility.AutoUpdate = true;
            DateTime t2 = DateTime.Now.Date.AddDays(-10);
            DateTime t1 = DateTime.Now.Date.AddDays(-30);
            Series s = new HydrometDailySeries("jck", "af");
            int id = db.AddSeries(s);

             s = db.GetSeries(id);
             s.Read(t1, t2);
             s.WriteToConsole();
             Assert.AreEqual(21, s.Count);

            s.Read(t1, DateTime.Now.Date.AddDays(-9)); //force auto update.(HydrometDaily supports this)
            // check if auto update worked.
            Assert.AreEqual(22, s.Count);

            Assert.AreEqual(2, db.GetSeriesCatalog().Rows.Count, "Catalog row count");
            var por = s.GetPeriodOfRecord();
            Assert.AreEqual(22, por.Count,"period of record");
        }