private void btnProcesar_Click_1(object sender, EventArgs e)
        {
            statusLblProcesando.Text = "Procesando datos...";

            IProgressDialogFactory pProDiaFac = new ProgressDialogFactoryClass();
            IStepProgressor        pStepPro   = pProDiaFac.Create(null, 0);

            pStepPro.MinRange  = 1;
            pStepPro.MaxRange  = 5;
            pStepPro.StepValue = 1;
            IProgressDialog2 pProDia = (IProgressDialog2)pStepPro;

            pProDia.Animation = esriProgressAnimationTypes.esriProgressGlobe;

            pProDia.Title = "Incorporando Lecturas";
            pProDia.ShowDialog();
            pStepPro.Step();
            pStepPro.Message = "Procesando precipitacion...";


            ProcesarLecturas procesarLecturas = new ProcesarLecturas();

            try
            {
                procesarLecturas.CalcularResultadosPrecipitacion(_sigpiDao, "DEFI_PRECI", "LECTUS_PRECI", dtPickerFechaAProcesar.Value, 10);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error procesando las lecturas:\n" + ex.Message);
            }

            pStepPro.Step();
            pStepPro.Message = "Procesando Temperatura...";
            try
            {
                procesarLecturas.CalcularResultadosTemperatura(_sigpiDao, "DEFI_TEMPE", "LECTUS_TEMPE", dtPickerFechaAProcesar.Value, "T5", 10);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error procesando las lecturas:\n" + ex.Message);
            }

            string sSQL = "UPDATE FECHAS_PROCESO SET FEC_PROCE = #" + dtPickerFechaAProcesar.Value.ToString("MM/dd/yyyy") + "#";

            try
            {
                _sigpiDao.EjecutarSentenciaSinQuery(sSQL);
            }
            catch (Exception ex)
            {
                MessageBox.Show("No se pudo actualizar la fecha de incorporacion.\n" + ex.Message);
            }
            _sigpi.FechaProcesamiento  = dtPickerFechaAProcesar.Value;
            txtUltimaFechaProceso.Text = dtPickerFechaAProcesar.Value.ToLongDateString();

            pProDia.HideDialog();
            MessageBox.Show("Datos Procesados");
        }
Esempio n. 2
0
        private void GenerarModelo(string sTablaPrecipPromedio, string sConsultaTablaPrecipPromedio, string sPrefijo,
                                   string sTablaTempPromedio, string sConsultaTablaTempPromedio)
        {
            ProcesarLecturas procesarLecturas = new ProcesarLecturas();

            try
            {
                procesarLecturas.CalcularResultadosPrecipitacion(sigpiDao, "DEFI_PRECI", "LECTUS_PRECI", sigpi.FechaProcesamiento, 5);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error procesando las lecturas:\n" + ex.Message);
            }

            //pStepPro.Step();
            //pStepPro.Message = "Procesando Temperatura...";
            try
            {
                procesarLecturas.CalcularResultadosTemperatura(sigpiDao, "DEFI_TEMPE", "LECTUS_TEMPE", sigpi.FechaProcesamiento, "T5", 5);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error procesando las lecturas:\n" + ex.Message);
            }

            string sSQL = "UPDATE FECHAS_PROCESO SET FEC_PROCE = #" + sigpi.FechaProcesamiento.ToString("MM/dd/yyyy") + "#";

            try
            {
                sigpiDao.EjecutarSentenciaSinQuery(sSQL);
            }
            catch (Exception ex)
            {
                MessageBox.Show("No se pudo actualizar la fecha de incorporacion.\n" + ex.Message);
            }

            IProgressDialogFactory pProDiaFac = new ProgressDialogFactoryClass();
            IStepProgressor        pStepPro   = pProDiaFac.Create(null, 0);

            pStepPro.MinRange  = 1;
            pStepPro.MaxRange  = 5;
            pStepPro.StepValue = 1;
            IProgressDialog2 pProDia = (IProgressDialog2)pStepPro;

            pProDia.Animation = esriProgressAnimationTypes.esriProgressGlobe;

            pProDia.Title = "Generar Grids";
            pProDia.ShowDialog();
            pStepPro.Step();
            pStepPro.Message = "Generando Grids Meteorologicos...";

            IFeatureClass     pFeatureClass;
            IWorkspaceFactory pShpWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
            IWorkspace        pWorkspaceTemp       = pShpWorkspaceFactory.OpenFromFile(parametros.RutaSIGPI + parametros.Temporal, 0);

            // Crear FeatureClass a partir de los datos de la tabla de los promedios de la precipitacion
            try
            {
                //pFeatureClass = procesamiento.ConstruirFeatureClass(pWorkspaceTemp, "DEFI_PRECI", "estaciones", "CODIGO", "DEFI_PRECI.P5 >= 0", "JP");
                pFeatureClass = procesamiento.ConstruirFeatureClass(pWorkspaceTemp, sTablaPrecipPromedio, "estaciones", "CODIGO", sConsultaTablaPrecipPromedio, "JP");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error generando el FeatureClass de Estaciones. Descripcion: \n" + ex.Message);
                return;
            }

            IWorkspaceFactory pWF     = new AccessWorkspaceFactoryClass();
            IFeatureWorkspace pWSMask = (IFeatureWorkspace)pWF.OpenFromFile(parametros.RutaGBD, 0);
            IGeoDataset       pFCMask = (IGeoDataset)pWSMask.OpenFeatureClass(parametros.Mascara);


            DateTime date   = sigpi.FechaProcesamiento;
            string   sMonth = date.ToString("MM");

            //P5
            pStepPro.Step();
            pStepPro.Message = "Generando Grids Meteorologicos: Precipitacion Total";
            IRaster pRaster1 = procesamiento.ConstruirGrid(pFeatureClass, "P5", parametros, pFCMask, "RP5", "", true);

            //DSLL5
            pStepPro.Step();
            pStepPro.Message = "Generando Grids Meteorologicos: Promedio ultimos 5 dias sin lluvia";
            IRaster pRaster2 = procesamiento.ConstruirGrid(pFeatureClass, "DSLL5", parametros, pFCMask, "DSLL5", "", true);

            //Crear FeatureClass a partir de la tabla de promedios de temperatura
            //pFeatureClass = procesamiento.ConstruirFeatureClass(pWorkspaceTemp, "DEFI_TEMPE", "estaciones", "CODIGO", "DEFI_TEMPE.T5 >= 0", "JT");
            pFeatureClass = procesamiento.ConstruirFeatureClass(pWorkspaceTemp, sTablaTempPromedio, "estaciones", "CODIGO", sConsultaTablaTempPromedio, "JT");
            //T5
            pStepPro.Step();
            pStepPro.Message = "Generando Grids Meteorologicos: Temperatura promedio";
            IRaster pRaster3 = procesamiento.ConstruirGrid(pFeatureClass, "T5", parametros, pFCMask, "RT5", "", true);
            //TMMMM
            IRaster pRaster4 = SIGPIUtils.AbrirRasterDesdeArchivo(parametros.RutaSIGPI + "\\" + parametros.TMMMM, "tmmx" + sMonth);
            //Susceptibilidad
            //IRaster pRaster5 = SIGPIUtils.AbrirRaster(parametros.RutaSIGPI + "\\" + parametros.Grids, parametros.Susceptibilidad);
            IRaster pRaster5 = SIGPIUtils.AbrirRasterDesdeGDB(parametros.RutaGBD, parametros.Susceptibilidad);
            //Asentamientos
            //IRaster pRaster6 = SIGPIUtils.AbrirRaster(parametros.RutaSIGPI + "\\" + parametros.Grids, parametros.Asentamientos);
            IRaster pRaster6 = SIGPIUtils.AbrirRasterDesdeGDB(parametros.RutaGBD, parametros.Asentamientos);

            IRaster[] pRasters = { pRaster1, pRaster2, pRaster3, pRaster4, pRaster5, pRaster6 };
            try
            {
                procesamiento.AlgoritmoCompleto(pRasters, sigpi);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


            pProDia.HideDialog();
            MessageBox.Show("Algoritmo completo ejecutado");
        }