public static List <PuntoGrafico> EnergiaAPuntosGrafico(List <HistorialEnergia> _lista) { List <PuntoGrafico> puntos = new List <PuntoGrafico>(); for (int i = 0; i < _lista.Count; i++) { PuntoGrafico puntoInicio = new PuntoGrafico() { Valor = _lista[i].ValorInicio, FechaHora = _lista[i].HoraInicio }; PuntoGrafico puntoFinal = new PuntoGrafico() { Valor = _lista[i].ValorFinal, FechaHora = _lista[i].HoraFinal }; PuntoGrafico puntoMenor = new PuntoGrafico() { Valor = _lista[i].ValorMenor, FechaHora = _lista[i].HoraMenor }; PuntoGrafico puntoMayor = new PuntoGrafico() { Valor = _lista[i].ValorMayor, FechaHora = _lista[i].HoraMayor }; PuntoGrafico puntoMitad = new PuntoGrafico() { Valor = _lista[i].ValorMitad, FechaHora = _lista[i].HoraMitad }; puntos.Add(puntoInicio); puntos.Add(puntoFinal); puntos.Add(puntoMenor); puntos.Add(puntoMayor); puntos.Add(puntoMitad); } puntos = puntos.Distinct().ToList(); puntos = puntos.OrderBy(p => p.FechaHora).ToList(); return(puntos); }
public static List <PuntoGrafico> CrearHistorialEnergiaEjemplo() { List <PuntoGrafico> historial = new List <PuntoGrafico>(); PuntoGrafico h1 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 15, 30, 50), Valor = 23 }; historial.Add(h1); PuntoGrafico h2 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 16, 50, 50), Valor = 43 }; historial.Add(h2); PuntoGrafico h3 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 20, 25, 42), Valor = 32 }; historial.Add(h3); PuntoGrafico h4 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 20, 42, 56), Valor = 55 }; historial.Add(h4); PuntoGrafico h5 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 21, 10, 56), Valor = 61 }; historial.Add(h5); PuntoGrafico h6 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 21, 16, 26), Valor = 32 }; historial.Add(h6); PuntoGrafico h7 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 21, 32, 15), Valor = 44 }; historial.Add(h7); PuntoGrafico h8 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 21, 43, 11), Valor = 51 }; historial.Add(h8); return(historial); }
public static List <PuntoGrafico> VelocidadAPuntosGrafico(List <HistorialVelocidad> _lista) { List <PuntoGrafico> puntos = new List <PuntoGrafico>(); for (int i = 0; i < _lista.Count; i++) { PuntoGrafico puntoInicio = new PuntoGrafico() { Valor = _lista[i].ValorInicio, FechaHora = _lista[i].HoraInicio }; PuntoGrafico puntoFinal = new PuntoGrafico() { Valor = _lista[i].ValorFinal, FechaHora = _lista[i].HoraFinal }; PuntoGrafico puntoMenor = new PuntoGrafico() { Valor = _lista[i].ValorMenor, FechaHora = _lista[i].HoraMenor }; PuntoGrafico puntoMayor = new PuntoGrafico() { Valor = _lista[i].ValorMayor, FechaHora = _lista[i].HoraMayor }; PuntoGrafico puntoMitad = new PuntoGrafico() { Valor = _lista[i].ValorMitad, FechaHora = _lista[i].HoraMitad }; PuntoGrafico punto1Cuarto = new PuntoGrafico() { Valor = _lista[i].ValorUnCuarto, FechaHora = _lista[i].HoraUnCuarto }; PuntoGrafico punto3cuartos = new PuntoGrafico() { Valor = _lista[i].ValorTresCuartos, FechaHora = _lista[i].HoraTresCuartos }; //filtrar historiales cono solo ceros if (puntoMayor.Valor == 0) { continue; } puntos.Add(puntoInicio); puntos.Add(puntoFinal); puntos.Add(puntoMenor); puntos.Add(puntoMayor); puntos.Add(punto1Cuarto); puntos.Add(puntoMitad); puntos.Add(punto3cuartos); } puntos = puntos.Distinct().ToList(); puntos = puntos.OrderBy(p => p.FechaHora).ToList(); #region Filtro velocidades //Hay casos en que hay 2 velocidades en la misma hora,minuto segundo y uno de ellos es 0 //filtrar esos 0 List <PuntoGrafico> filtro = new List <PuntoGrafico>(); for (int i = 1; i < puntos.Count - 1; i++) { PuntoGrafico anterior = puntos[i - 1]; PuntoGrafico actual = puntos[i]; PuntoGrafico siguiente = puntos[i + 1]; if (actual.FechaHora != siguiente.FechaHora && actual.FechaHora != anterior.FechaHora) { filtro.Add(actual); } else if (actual.FechaHora == siguiente.FechaHora || actual.FechaHora == anterior.FechaHora) { if (actual.Valor != 0) { filtro.Add(actual); } } } #endregion puntos = filtro; #region filtro Ceros incoherentes //Filtrar puntos en que se baja a 0 incoherentemente List <PuntoGrafico> filtroCerosIncoherentes = new List <PuntoGrafico>(); for (int i = 1; i < puntos.Count - 1; i++) { PuntoGrafico anterior = puntos[i - 1]; PuntoGrafico actual = puntos[i]; PuntoGrafico siguiente = puntos[i + 1]; if (actual.Valor == 0) { if (anterior.Valor <= 20 && siguiente.Valor <= 20) { filtroCerosIncoherentes.Add(actual); } } else { filtroCerosIncoherentes.Add(actual); } } #endregion puntos = filtroCerosIncoherentes; return(puntos); }
public static List <PuntoGrafico> CrearHistorialVelocidadEjemplo() { List <PuntoGrafico> historial = new List <PuntoGrafico>(); PuntoGrafico h1 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 15, 30, 50), Valor = 5 }; historial.Add(h1); PuntoGrafico h2 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 16, 50, 50), Valor = 8 }; historial.Add(h2); PuntoGrafico h3 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 20, 25, 42), Valor = 2 }; historial.Add(h3); PuntoGrafico h4 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 20, 42, 56), Valor = 3.4f }; historial.Add(h4); PuntoGrafico h5 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 21, 10, 56), Valor = 8.2f }; historial.Add(h5); PuntoGrafico h6 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 21, 16, 26), Valor = 5 }; historial.Add(h6); PuntoGrafico h7 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 21, 32, 15), Valor = 4.2f }; historial.Add(h7); PuntoGrafico h8 = new PuntoGrafico() { FechaHora = new DateTime(2018, 1, 2, 21, 43, 11), Valor = 5.12f }; historial.Add(h8); return(historial); }