Example #1
0
        /*  public static BindingList<Analisis> analizar(BindingList<CalibracionFot> lista, Equipo equipo, EnergiaFotones energia, int DFSoISO)
         * {
         *    BindingList<Analisis> listaAnalisis = new BindingList<Analisis>();
         *    Analisis analisis = new Analisis();
         *    if (CalibracionFot.hayReferencia(equipo, energia, DFSoISO))
         *    {
         *        CalibracionFot caliRef = CalibracionFot.obtenerCaliReferencia(equipo, energia, DFSoISO);
         *        analisis.valorReferenciaYFecha = caliRef.Dwzref.ToString() + " (" + caliRef.Fecha.ToShortDateString() + ")";
         *    }
         *    else
         *    {
         *        analisis.valorReferenciaYFecha = "";
         *    }
         *    List<Double> valores = lista.Select(q => q.Dwzref).ToList();
         *    analisis.valorPromedio = Math.Round(valores.Average(), 2);
         *    //analisis.desviacionEstandar = valores.
         *    analisis.valorMaximoYFecha = valores.Max().ToString() + " (" + (lista[valores.IndexOf(valores.Max())].Fecha).ToShortDateString() + ")";
         *    analisis.valorMinimoYFecha = valores.Min().ToString() + " (" + (lista[valores.IndexOf(valores.Min())].Fecha).ToShortDateString() + ")";
         *    analisis.desvEstandar = Calcular.desvEstandar(valores);
         *
         *    listaAnalisis.Add(analisis);
         *    return listaAnalisis;
         * }*/

        public static Analisis analizar2(BindingList <CalibracionFot> lista, Equipo equipo, EnergiaFotones energia, int DFSoISO)
        {
            Analisis      analisis = new Analisis();
            List <Double> valores  = lista.Select(q => q.Dwzref).ToList();

            if (CalibracionFot.hayReferencia(equipo, energia, DFSoISO))
            {
                CalibracionFot caliRef = CalibracionFot.obtenerCaliReferencia(equipo, energia, DFSoISO);
                analisis.Referencia = ValorARF.crear(caliRef.Dwzref, caliRef.Dwzref, caliRef.Fecha);
            }
            else
            {
                analisis.Referencia = new ValorARF()
                {
                    absoluto = double.NaN,
                    relativo = double.NaN,
                    fecha    = "",
                };
            }
            analisis.Maximo   = ValorARF.crear(valores.Max(), analisis.Referencia.absoluto, (lista[valores.IndexOf(valores.Max())].Fecha));
            analisis.Minimo   = ValorARF.crear(valores.Min(), analisis.Referencia.absoluto, (lista[valores.IndexOf(valores.Min())].Fecha));
            analisis.Promedio = ValorARF.crear(Math.Round(valores.Average(), 2), analisis.Referencia.absoluto);
            analisis.DesvEst  = ValorARF.crear(Calcular.desvEstandar(valores), analisis.Referencia.absoluto);

            return(analisis);
        }
Example #2
0
 private bool hayLBsinCartel()
 {
     if (!(RB_CaliFDFSfija.Checked || RB_CaliFIso.Checked) || CB_CaliEquipos.SelectedIndex == -1 || CB_CaliEnergias.SelectedIndex == -1)
     {
         return(false);
     }
     else if (!CalibracionFot.hayReferencia(equipoSeleccionado(), energiaSeleccionada(), DFSoISO()))
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
Example #3
0
 private bool hayLB()
 {
     if (!(RB_CaliFDFSfija.Checked || RB_CaliFIso.Checked) || CB_CaliEquipos.SelectedIndex == -1 || CB_CaliEnergias.SelectedIndex == -1)
     {
         MessageBox.Show("Debe elegir equipo, energía y condiciones de medición \npara poder cargar valores de referencia");
         return(false);
     }
     else if (!CalibracionFot.hayReferencia(equipoSeleccionado(), energiaSeleccionada(), DFSoISO()))
     {
         MessageBox.Show("No se registra una calibración de referencia para este equipo, energía y condición");
         return(false);
     }
     else
     {
         return(true);
     }
 }
Example #4
0
        public static double calcularTendencia(BindingList <CalibracionFot> lista, bool fechas, DateTime desde, DateTime hasta, Equipo equipo, EnergiaFotones energia, int DFSoISO, Chart grafico)
        {
            BindingList <CalibracionFot> listaFiltrada = new BindingList <CalibracionFot>();

            if (fechas)
            {
                foreach (CalibracionFot cali in lista)
                {
                    if (DateTime.Compare(cali.Fecha.Date, desde.Date) >= 0 && DateTime.Compare(cali.Fecha.Date, hasta.Date) <= 0)
                    {
                        listaFiltrada.Add(cali);
                    }
                }
            }
            else
            {
                listaFiltrada = lista;
            }
            if (listaFiltrada.Count() == 0)
            {
                MessageBox.Show("No hay calibraciones en el rango de fechas seleccionado");
                return(Double.NaN);
            }
            if (listaFiltrada.Count() == 1)
            {
                MessageBox.Show("En el rango de fechas seleccionado hay una única calibración.\nNo se puede realizar el análisis");
                return(Double.NaN);
            }
            else
            {
                List <Double> valores      = listaFiltrada.Select(q => q.Dwzref).ToList();
                List <Double> fechasDouble = listaFiltrada.Select(q => q.Fecha.ToOADate()).ToList();
                Graficar.agregarLineaTendencia(grafico, Calcular.cuadradosMinimos(fechasDouble, valores), fechasDouble.Min(), fechasDouble.Max());
                if (CalibracionFot.hayReferencia(equipo, energia, DFSoISO))
                {
                    return(Math.Round(Calcular.cuadradosMinimos(fechasDouble, valores).Item1 / CalibracionFot.obtenerCaliReferencia(equipo, energia, DFSoISO).Dwzref * 100 * 30, 2)); //mensual
                }
                else
                {
                    return(Math.Round(Calcular.cuadradosMinimos(fechasDouble, valores).Item1 / valores.Average() * 100 * 30, 2)); //mensual
                }
            }
        }