Exemplo n.º 1
0
 /// <summary>
 /// Makes a regular time-series with all of the data being equal to NO-DATA
 /// </summary>
 /// <param name="start">start time</param>
 /// <param name="end">end time</param>
 /// <param name="step">the time step: TimeStep.Day or TimeStep.Hour</param>
 /// <returns>The time-series object with No-Data at all data points</returns>
 public static ITimeSeries MakeRegularTimeSeries(DateTime start, DateTime end, TimeStep step)
 {
     HydroTimeSeries myTs = new HydroTimeSeries(start, end);
     if (step == TimeStep.Day)
     {
         int nd = (int)end.Subtract(start).TotalDays;
         for (int i = 0; i < nd; i++)
         {
             DateTime newTime = start.AddDays(i);
             myTs.AddUnknownValue(newTime);
         }
     }
     else
     {
         int nh = (int)end.Subtract(start).TotalHours;
         for (int i = 0; i < nh; i++)
         {
             DateTime newTime = start.AddHours(i);
             myTs.AddUnknownValue(newTime);
         }
     }
     return myTs;
 }
Exemplo n.º 2
0
        public static HydroTimeSeries GetMissingValuesHydro(ITimeSeries ts, DateTime start, DateTime end, TimeStep step)
        {
            HydroTimeSeries missingTs = new HydroTimeSeries(start, end);
            List<int> breakIx = GetDataBreaks(ts);

            //TODO missing points before series start
            foreach (int begIndex in breakIx)
            {
                if (begIndex < ts.Count - 1)
                {
                    DateTime begDate = DateTime.FromOADate(ts[begIndex].X);
                    DateTime endDate = DateTime.FromOADate(ts[begIndex + 1].X);
                    if (step == TimeStep.Day)
                    {
                        int nd = (int)endDate.Subtract(begDate).TotalDays;
                        for (int i = 0; i < nd; i++)
                        {
                            DateTime newTime = begDate.AddDays(i);
                            missingTs.AddUnknownValue(newTime);
                        }
                    }
                    else
                    {
                        int nh = (int)endDate.Subtract(begDate).TotalHours;
                        for (int i = 0; i < nh; i++)
                        {
                            DateTime newTime = begDate.AddHours(i);
                            missingTs.AddUnknownValue(newTime);
                        }
                    }
                }
            }
            return missingTs;
        }
Exemplo n.º 3
0
 public static ITimeSeries MakeCumulative(ITimeSeries ts)
 {
     HydroTimeSeries ts2 = new HydroTimeSeries(ts.Start, ts.End);
     double sum = 0.0;
     PointPair curPt;
     for ( int i = 0; i < ts.Count; ++i )
     {
         curPt = ts[i];
         if ( curPt.IsMissing )
         {
             ts2.AddUnknownValue(XDate.XLDateToDateTime(curPt.X));
         }
         else
         {
             if (curPt.Y > 0)
             {
                 sum += curPt.Y;
             }
             ts2.AddObservation(XDate.XLDateToDateTime(curPt.X), sum);
         }
     }
     return ts2;
 }