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); }
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); }
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(); }
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); }
private void setHistogramData() { this.EnergyHistogramDatumFirst = SemanticHistogramDatum.GetEnergyInstance(this.SelectedSemanticLinks[0], this.TripDirection); this.EnergyHistogramDatumSecond = SemanticHistogramDatum.GetEnergyInstance(this.SelectedSemanticLinks[1], this.TripDirection); }