Exemplo n.º 1
0
    //
    override public DataPoint GetDataAt(double ts)
    {
        BasicDataSeries Series = new BasicDataSeries();;


        if (SourceSeries.Count == 1)
        {
            return(ApplyModifiers(SourceSeries[0].GetDataAt(ts)));
        }

        foreach (DataSeries serie in SourceSeries)
        {
            Series.Data.Add(serie.GetDataAt(ts));
        }

        if (operation == Manipulation.sum)
        {
            return(ApplyModifiers(Series.Sum()));
        }
        else if (operation == Manipulation.div)
        {
            return(ApplyModifiers(Series.Div()));
        }

        print("Waring! Dataseries operation not implemented.");

        return(null);
    }
Exemplo n.º 2
0
    //
    override public List <DataPoint> GetPeriod(double From, double To, int extra)
    {
        BasicDataSeriesCollection result = new BasicDataSeriesCollection();
        BasicDataSeries           Series;

        if (SourceSeries.Count == 1)
        {
            return(ApplyModifiers(SourceSeries[0].GetPeriod(From, To, extra)));
        }

        foreach (DataSeries serie in SourceSeries)
        {
            Series      = new BasicDataSeries();
            Series.Data = serie.GetPeriod(From, To, extra);
            result.Collection.Add(Series);
        }

        if (operation == Manipulation.sum)
        {
            return(ApplyModifiers(result.GetStaircaseSumOfSeries().Data));
        }
        else if (operation == Manipulation.div)
        {
            return(ApplyModifiers(result.GetStaircaseDivOfSeries().Data));
        }

        print("Waring! Dataseries operation not implemented.");
        return(null);
    }
Exemplo n.º 3
0
    public BasicDataSeries GetStaircaseDivOfSeries()
    {
        BasicDataSeries points;
        BasicDataSeries result = new BasicDataSeries();
        int             i;

        points = GetNextPoints();

        while (points != null)
        {
            if (points.Data[0] == null)
            {
                points = GetNextPoints();
                continue;
            }

            DataPoint Sum = points.Data[0].Clone();


            for (i = 1; i < points.Data.Count; i++)
            {
                Sum = Sum.Div(points.Data[i]);
            }

            if (Sum != null && Sum.Values != null)
            {
                Sum.Timestamp = At;
                result.Data.Add(Sum);
            }

            points = GetNextPoints();
        }

        return(result);
    }
Exemplo n.º 4
0
    //Staircase assumes that a value is valid until we get a new value.
    //In this case missalighed data not inside the range of the other series will be discared.
    public BasicDataSeries GetStaircaseSumOfSeries()
    {
        BasicDataSeries points;
        BasicDataSeries result = new BasicDataSeries();

        points = GetNextPoints();

        while (points != null)
        {
            DataPoint Sum = new DataPoint();

            foreach (DataPoint point in points.Data)
            {
                //if (point == null) {
                //	Sum = null;
                //	break;
                //}

                Sum = Sum.Add(point);
            }

            if (Sum != null && Sum.Values != null)
            {
                Sum.Timestamp = At;
                result.Data.Add(Sum);
            }

            points = GetNextPoints();
        }

        return(result);
    }
Exemplo n.º 5
0
    public BasicDataSeries GetNextPoints()
    {
        BasicDataSeries HasNextPoint;
        double          TimeStamp;

        //Get the next point.
        HasNextPoint = GetNextPoint();

        if (HasNextPoint == null)
        {
            return(null);
        }

        //Save the timestamp.
        TimeStamp = HasNextPoint.CurrentTime();
        //Move that series forward.
        HasNextPoint.Next();

        DataPoint dp;

        BasicDataSeries result = new BasicDataSeries();

        foreach (BasicDataSeries serie in Collection)
        {
            dp = serie.GetDataPointAt(TimeStamp);
            result.Data.Add(dp);
        }

        return(result);
    }
Exemplo n.º 6
0
    //Returns the dataseries which with the pointer to the earlies timestamp
    public BasicDataSeries GetNextPoint()
    {
        double          earliest = Double.PositiveInfinity;
        BasicDataSeries result   = null;

        foreach (BasicDataSeries serie in Collection)
        {
            if (serie.CurrentTime() < earliest && serie.CurrentTime() > At)
            {
                earliest = serie.CurrentTime();
                result   = serie;
            }
        }

        At = earliest;

        return(result);
    }