private int getTripID()
        {
            switch (SelectedComboBoxIndex)
            {
            case 0:
                return(SemanticHistogramDatum.GetEnergyMinTripID(this.SemanticLink, this.TripDirection));

            case 1:
                return(SemanticHistogramDatum.GetEnergyMedianTripID(this.SemanticLink, this.TripDirection));

            case 2:
                return(SemanticHistogramDatum.GetEnergyMaxTripID(this.SemanticLink, this.TripDirection));

            case 3:
                return(SemanticHistogramDatum.GetTimeMinTripID(this.SemanticLink, this.TripDirection));

            case 4:
                return(SemanticHistogramDatum.GetTimeMedianTripID(this.SemanticLink, this.TripDirection));

            case 5:
                return(SemanticHistogramDatum.GetTimeMaxTripID(this.SemanticLink, this.TripDirection));

            default:
                return(-1);
            }
        }
        private AreaSeries createPercentileAreaSeries(SemanticHistogramDatum datum)
        {
            AreaSeries series = new AreaSeries();

            if (datum == this.EnergyHistogramDatumFirst)
            {
                series.Title = "A:" + datum.SemanticLink.Semantics;
            }
            else
            {
                series.Title = "B:" + datum.SemanticLink.Semantics;
            }

            double sumValue = datum.HistogramData.Sum(v => v.Value);

            series.Points.Add(new DataPoint(datum.MinLevel - datum.ClassWidth, 0));

            foreach (LevelAndValue item in datum.HistogramData)
            {
                series.Points.Add(new DataPoint(item.Level, item.Value * 100 / sumValue));
            }

            series.Points.Add(new DataPoint(datum.MaxLevel + datum.ClassWidth, 0));

            return(series);
        }
Esempio n. 3
0
        public async void DisplayGraph()
        {
            #region 代表トリップ検索
            TripIDs = new List <int>();
            await Task.Run(() =>
            {
                int tripID;
                switch (this.CurrentTripCategory)
                {
                case DetailCompareGraphType.TripCategory.EnergyRepresentativeTrips:

                    tripID = SemanticHistogramDatum.GetEnergyMinTripID(SelectedSemanticLink, TripDirection);
                    TripIDs.Add(tripID);

                    tripID = SemanticHistogramDatum.GetEnergyMedianTripID(SelectedSemanticLink, TripDirection);
                    TripIDs.Add(tripID);

                    tripID = SemanticHistogramDatum.GetEnergyMaxTripID(SelectedSemanticLink, TripDirection);
                    TripIDs.Add(tripID);

                    break;

                case DetailCompareGraphType.TripCategory.TimeRepresentativeTrips:

                    tripID = SemanticHistogramDatum.GetTimeMinTripID(SelectedSemanticLink, TripDirection);
                    TripIDs.Add(tripID);

                    tripID = SemanticHistogramDatum.GetTimeMedianTripID(SelectedSemanticLink, TripDirection);
                    TripIDs.Add(tripID);

                    tripID = SemanticHistogramDatum.GetTimeMaxTripID(SelectedSemanticLink, TripDirection);
                    TripIDs.Add(tripID);

                    break;
                }
            });

            #endregion

            switch (CurrentGraphType)
            {
            case DetailCompareGraphType.GraphTypes.SpeedTransitionGraph:

                createSpeedGraphModels();

                break;

            case DetailCompareGraphType.GraphTypes.AccTransitionGraph:

                createAccGraphModels();

                break;

            case DetailCompareGraphType.GraphTypes.EnergyStackGraph:

                createStackedEnergyGraphModels();

                break;
            }
        }
        private AreaSeries createPercentSeries(SemanticGraph semanticGraph)
        {
            AreaSeries series = new AreaSeries();

            series.Title = semanticGraph.SemanticLink.Semantics;

            series.MouseDown += (s, e) =>
            {
                if (e.ChangedButton == OxyMouseButton.Left)
                {
                    if (SelectedSemanticLinks.Count > 0)
                    {
                        var dialog = new MainPageCompareDialog
                        {
                            Message               = { Text = semanticGraph.SemanticLink.Semantics },
                            TripDirection         = this.TripDirection,
                            SelectedSemanticLinks = this.SelectedSemanticLinks.ToList(),
                            SemanticLink          = semanticGraph.SemanticLink,
                            ViewModel             = this
                        };

                        DialogHost.Show(dialog, "RootDialog");
                    }
                    else
                    {
                        var dialog = new MainPageShowDetailDialog
                        {
                            Message       = { Text = semanticGraph.SemanticLink.Semantics },
                            TripDirection = this.TripDirection,
                            SemanticLink  = semanticGraph.SemanticLink,
                            ViewModel     = this
                        };

                        DialogHost.Show(dialog, "RootDialog");
                    }
                }
            };

            SemanticHistogramDatum datum = this.TimeHistogramData
                                           .Where(v => v.SemanticLink.SemanticLinkId == semanticGraph.SemanticLink.SemanticLinkId)
                                           .ElementAt(0);

            series.Points.Add(new DataPoint(datum.MinLevel - datum.ClassWidth, 0));

            foreach (LevelAndValue item in datum.HistogramData)
            {
                series.Points.Add(new DataPoint(item.Level, item.Value * 100 / datum.HistogramData.Sum(v => v.Value)));
            }

            series.Points.Add(new DataPoint(datum.MaxLevel + datum.ClassWidth, 0));

            AreaSeriesList.Add(series);
            semanticGraph.Series = series;

            return(series);
        }
Esempio n. 5
0
        private async void createPlotModel()
        {
            await Task.Run(() =>
            {
                this.EnergyHistogramDatum = SemanticHistogramDatum.GetEnergyInstance(this.SemanticLink, this.TripDirection);
            });

            setRepresentativeValue();

            createNumberModel();
        }
        public async void CreateNormalizedPlotModel()
        {
            this.ProgressBarVisibility = Visibility.Visible;
            this.PlotModel             = null;

            this.TimeHistogramData = new List <SemanticHistogramDatum>();

            await Task.Run(() =>
            {
                foreach (SemanticGraph graph in this.SemanticGraphs)
                {
                    this.TimeHistogramData.Add(SemanticHistogramDatum.GetDistanceNormalizedTimeInstance(graph.SemanticLink, this.TripDirection));
                }
            });

            CurrentGraphType = GraphType.Normalized;
            CreateNumberModel();
        }
Esempio n. 7
0
        private AreaSeries createAreaSeries(SemanticGraph semanticGraph, int sensorID)
        {
            AreaSeries series = new AreaSeries();

            //series.TrackerFormatString = series.TrackerFormatString + "\n" + link.Semantics + " : {Tag}";
            series.Title = "Sensor ID: " + sensorID;

            System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
            sw.Start();

            SemanticHistogramDatum datum = SemanticHistogramDatum.GetEnergyInstance(semanticGraph.SemanticLink, this.TripDirection, sensorID);

            //SemanticHistogramDatum datum = null;

            sw.Stop();
            Console.WriteLine("COST: " + sw.Elapsed);

            //series.Points.Add(new DataPoint(0.02, 0));

            foreach (LevelAndValue item in datum.HistogramData)
            {
                if (item.Level > 0.02 && item.Level < 0.15)
                {
                    series.Points.Add(new DataPoint(item.Level, item.Value));
                }
            }

            //series.Points.Add(new DataPoint(0.15, 0));

            AreaSeriesList.Add(series);
            semanticGraph.Series = series;

            Console.WriteLine("SENSOR: " + sensorID + ", WIDTH: " + datum.ClassWidth);

            return(series);
        }
 private void setNormalizedStackData()
 {
     this.EnergyHistogramDatumFirst  = SemanticHistogramDatum.GetNormalizedStackedTimeInstance(this.SelectedSemanticLinks[0], this.TripDirection);
     this.EnergyHistogramDatumSecond = SemanticHistogramDatum.GetNormalizedStackedTimeInstance(this.SelectedSemanticLinks[1], this.TripDirection);
 }
Esempio n. 9
0
 private void setHistogramData()
 {
     this.EnergyHistogramDatumFirst  = SemanticHistogramDatum.GetEnergyInstance(this.SelectedSemanticLinks[0], this.TripDirection);
     this.EnergyHistogramDatumSecond = SemanticHistogramDatum.GetEnergyInstance(this.SelectedSemanticLinks[1], this.TripDirection);
 }