INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO E S C O M Trabajo Terminal “Desarrollo de un Sistema de Cómputo para la Modelación Geoestadística de Fenómenos Espaciales” Que para cumplir con la opción curricular en la carrera de: “Ingeniería en Sistemas Computacionales con Especialidad en Sistemas” Presentan Raúl Gaona Serrano David Lerma Martínez Directores Dr. Martín Alberto Díaz Viera M. en C. Flavio Arturo Sánchez Garfias Instituto Politécnico Nacional Escuela Superior de Cómputo Informe Técnico (Serie Amarilla) Autores: Gaona Serrano Raúl Lerma Martínez David Resumen El presente es un informe técnico del Trabajo Terminal No. 687 “Sistema para la modelación geoestadística de fenómenos georeferenciados” cuya finalidad es dar un resumen de los objetivos y resultados obtenido a lo largo del desarrollo y el procedimiento que se utilizó para ello. Advertencia Este informe contiene información desarrollada por la Escuela Superior de Cómputo del Instituto Politécnico Nacional y por tanto su uso queda restringido a las aplicaciones que explícitamente se convengan. La aplicación no convenida exime a la escuela de su responsabilidad técnica y da lugar a las consecuencias legales que para el efecto se determinen. ÍNDICE Capítulo 1 Introducción 5 1.1 Objetivo 6 1.2 Motivación 6 1.3 Contribuciones en la Ingeniería 6 Capítulo 2 Antecedentes 7 Capítulo 3 Estado del Arte 9 Capítulo 4 Desarrollo 13 4.1 Manejo de Proyectos 13 4.2 Manejo de Datos 16 4.3 Visualización Científica 20 4.4 Métodos de Modelación de Correlación, Interpolación y Simulación 21 Capítulo 5 Resultados, Experimentos 22 5.1 Resultados EDA 22 5.2 Pruebas de Métodos de Modelación 31 5.3 Análisis Espacial 32 5.4 Obtención del Modelo Computacional 34 5.5 Modelado del Variograma 37 Capítulo 6 Caso de estudio: Estimación de la precipitación en México D.F. usando datos de pluviómetros y de radar 22 Análisis geoestadístico de los datos de pluviómetros: 1) Análisis exploratorio de los datos 2) Estimación del variograma 3) Modelación del variograma 4) Estimación espacial usando Kriging Análisis geoestadístico conjunto de los datos de pluviómetros y de radar: 1) Análisis estadístico conjunto. 2) Estimación del variograma cruzado. 3) Modelación del variograma cruzado. 4) Ajuste de un modelo de corregionalización lineal. 5) Estimación espacial conjunta usando CoKriging Capítulo 7 Conclusiones y trabajo futuro. 37 Bibliografía 38 Anexo 39 INTRODUCCIÓN En éste trabajo terminal se diseñó un prototipo de programa de geoestadística, de propósito general, cuya finalidad es brindar un conjunto de facilidades reunidas en una herramienta flexible y portable, que permite la realización de estimaciones y simulaciones de fenómenos georeferenciados. Entre las facilidades que esta herramienta proporciona al usuario están: interfaz gráfica intuitiva, gráficos de visualización científica de los resultados y una eficiente administración de la información. Uno de los aspectos fundamentales que motivan el desarrollo de este sistema de cómputo es que los programas comerciales de geoestadística que existen actualmente en el mercado son prácticamente inaccesibles tanto para la industria como para el sector educativo por sus elevados costos y limitada portabilidad, ya que mayormente se encuentran implantados en estaciones de trabajo. Pero además no son lo suficientemente flexibles ni amigables, lo cual dificulta enormemente la realización de investigaciones aplicadas mediante el uso de esta disciplina, la cual tiene una relevante importancia en áreas como minería, contaminación ambiental, hidrogeología y la industria petrolera. Debido a que por un lado existen bibliotecas numéricas implementadas en FORTRAN 77 de procedimientos geoestadísticos, como GSLIB, que recogen el estado actual del conocimiento acumulado en esta rama de la estadística espacial y por otra parte la madurez alcanzada en las herramientas de desarrollo de software libre, están dadas las premisas necesarias para la reutilización de estos códigos integrándolos en un sistema de cómputo interactivo y multiplataforma con muy bajo costo de desarrollo. En particular se eligió el lenguaje C++ y QT de Trolltech como las principales herramientas de desarrollo por su versatilidad y flexibilidad para acometer un trabajo de esta naturaleza., que permita su posterior actualización, extensión y adecuación en el futuro. Objetivo Desarrollar un prototipo básico con capacidades gráficas y numéricas para la modelación geoestadística de fenómenos georeferenciados. En particular, que éste permita la experimentación de algunas técnicas de interpolación espacial y de simulación estocástica. Motivación Uno de los aspectos fundamentales que motivan el desarrollo de este sistema de cómputo es que los programas comerciales de geoestadística que existen actualmente en el mercado son prácticamente inaccesibles tanto para la industria como para el sector educativo por sus elevados costos y limitada portabilidad, ya que mayormente se encuentran implantados en estaciones de trabajo. Pero además no son lo suficientemente flexibles ni amigables, lo cual dificulta enormemente la realización de investigaciones aplicadas mediante el uso de esta disciplina. Este proyecto constituye una magnífica oportunidad para aplicar los conocimientos adquiridos durante la licenciatura ya que demanda el empleo de diversas herramientas de computación, entre las que se destacan: el desarrollo de gráficos para la visualización científica, el diseño de la interfaz gráfica y la programación y/o adaptación de algoritmos de simulación numérica. Pero a su vez, también es un reto puesto que requiere del trabajo integrado, donde un aspecto fundamental es el diseño adecuado que permita lograr la interrelación de los aspectos antes mencionados en un sistema eficiente y funcional. Contribuciones a la Ingeniería Este proyecto de investigación ha representado un gran esfuerzo no solo por los alumnos si no también por los asesores y las personas que contribuyeron en las distintas etapas de la investigación. Pero al final todos estos esfuerzos estaban enfocados en el desarrollo de un sistema que permita, a investigadores y estudiantes, realizar el análisis geoestadístico para el estudio de la variabilidad espacial de propiedades físicas en ciencias de la tierra. Si bien es cierto que existen actualmente sistemas que contienen muchos de los procedimientos más comunes en la geoestadística, la forma en que los usuarios pueden interactuar con éstos es muy rígida y limitada, lo cual dificulta la realización de aplicaciones específicas debido a su poca flexibilidad y a la carencia de suficientes opciones numéricas y gráficas que permitan un análisis integral adecuado para la toma de decisiones. Es por ello que una de nuestras metas principales consiste en proporcionar un ambiente de trabajo integrado y flexible que facilite la investigación y la aplicación de las metodologías geoestadísticas pero a un menor costo. Con esto los investigadores podrán resolver muchos de los problemas que pueden ser analizados mediante esta disciplina y así contribuir a un desarrollo en esta área actualmente poco difundida. Por su naturaleza general, el presente trabajo no es una meta sino un punto de partida en el impulso del desarrollo de la geoestadística, puesto que está pensado desde su diseño para ser mejorado, extendido y actualizado por ser ésta, desde el punto de vista del conocimiento, un área relativamente joven y muy dinámica. Mientras que, debido a la demanda cada vez creciente de soluciones específicas con un enfoque geoestadístico en diversas ramas de las ciencias de la tierra nos impulsará a desarrollar programas hechos a la medida de sus necesidades. ANTECEDENTES Generalmente cuando se modela un yacimiento petrolero éste posee información incompleta en las diversas escalas, tiene una estructura espacial compleja, presenta una variación importante en las propiedades de las rocas, además de que no se conocen a priori las relaciones entre dichas propiedades. En la última década la caracterización de yacimientos petroleros usando métodos de simulación estocástica se ha establecido como uno de los enfoques más exitosos para la modelación de sus propiedades petrofísicas (porosidad, permeabilidad, saturación, etc). Las causas de dicha popularidad de estos métodos radican en que: • Son suficientemente flexibles y se adaptan a las diversas condiciones o escenarios que se presentan en la evaluación de los yacimientos. • Permiten la integración en modelos de dos y tres dimensiones de diversas fuentes de información (datos de núcleos, registros, sísmica, etc) • Generan distribuciones geológicamente realistas de las propiedades que se modelan. • Los valores simulados reproducen los valores y las características estadísticas de los datos. • Posibilitan la evaluación del grado de incertidumbre del modelo bajo diferentes escenarios. En la actualidad existen unos cuantos códigos comerciales que de una manera u otra siguen este enfoque, entre los que podemos citar: 1. SigmaView – Landmark Graphics Corporation (http://www.lgc.com/ ) 2. (RC)2 Antero – Seismic Micro-Technology (http://www.seismicmicro.com/ ) 3. RMSgeomod – Irap RMS - Roxar Software Solutions (http://www.roxar.com/) 4. Gocad – Earth Decision Sciences (http://www.t-surf.com/ ) 5. RML-HereSim 3D – Beicip Franlab (http://www.beicip.com/ ) En la totalidad de los casos arriba listados son programas bien diseñados aunque limitados a ciertos y determinados métodos de simulación, con costos de licencias bastante elevados; además están implantados en una plataforma de cómputo específica, es decir son poco portables. Una dificultad importante a la que nos enfrentamos es que resulta imposible adaptar o modificar un método de simulación existente o programar algún otro nuevo método de simulación. Por otra parte, existe un rico acerbo de metodologías y programas desarrollados en varios lenguajes (C, Fortran, Pascal) que son de dominio público que pudieran ser adaptados e integrados en una plataforma flexible que permitiría: • Experimentar con diferentes variantes de los métodos existentes. • Realizar adaptaciones y/o modificaciones hechas a la medida de las necesidades de cada yacimiento. Una muestra del grado de actualidad y madurez alcanzado en esta área lo constituyen los siguientes libros recientemente publicados que resumen el estado del arte de este enfoque: 1. Christian Lantuejoul, Geostatistical Simulation: Models and Algorithms, Springer Verlag, 2002. 2. Consentino L., Integrated Reservoir Studies, TECHNIP, 2001. 3. Deutsch, C. V., Geostatistical Reservoir Modeling, Oxford University Press, 2002. 4. Kelkar M. and G. Pérez, Applied Geostatistics for Reservoir Characterization, SPE, 2002. ESTADO DEL ARTE Origen, definición y objeto de estudio de la Geoestadística En los años 60, Matheron acuñó el término de Geoestadística. Reconocido como el padre de esta disciplina, Matheron formalizó y generalizó matemáticamente un conjunto de técnicas desarrolladas por D. G. Krige (1941) que explotaban la correlación espacial para hacer predicciones en la evaluación de reservas de las minas de oro en Sudáfrica. Él definió a la Geoestadística como "la aplicación del formalismo de las funciones aleatorias al reconocimiento y estimación de fenómenos naturales" (Matheron, 1962). Si bien más adelante nos detendremos en el concepto de una función aleatoria, baste decir de momento que puede visualizarse como la asociación de una variable aleatoria a cada punto del espacio. La geoestadística es una rama de la estadística aplicada que se especializa en el análisis y la modelación de la variabilidad espacial en ciencias de la tierra. Su objeto de estudio es el análisis y la predicción de fenómenos en espacio y/o tiempo, tales como: ley de metales, porosidades, concentraciones de un contaminante, etc. Aunque el prefijo geoes usualmente asociado con geología, sin embargo la geoestadística tiene sus orígenes en la minería. Definiciones alternativas: • Rama de la estadística aplicada que se caracteriza por tomar en cuenta la relación espacial de las variables en estudio. • Rama de la estadística que se enfoca a analizar, procesar e inferir resultados de datos georeferenciados. • La geoestadística es un conjunto de técnicas para el análisis y predicción de valores distribuidos en el espacio y/o en el tiempo, dichos valores se asumen correlacionados entre sí. Etapas del análisis geoestadístico Actualmente, la geoestadística es un conjunto de técnicas usadas para analizar y predecir valores de una propiedad distribuida en espacio o tiempo. En contraposición con la estadística clásica o convencional, tales valores no se consideran independientes, por el contrario se suponen de manera implícita que están correlacionados unos con otros, es decir que existe una dependencia espacial. Intuitivamente esto indica que mientras más cercanos estén situados dos puntos están mas correlacionados y mientras más separados hay menos relación entre estos. El proceso de estimación y modelación de la función que describe la correlación espacial es conocido como “análisis estructural”. Una vez realizado el análisis estructural, la predicción de valores en puntos no muestrales se puede hacer aplicando la técnica de interpolación "kriging" o simulándolos a través de “simulaciones condicionales”. La primera etapa, conocida como análisis exploratorio de datos, está basada en técnicas estadísticas convencionales que nos permiten obtener todo un conjunto de información, desconocida a priori sobre la muestra bajo estudio, que es imprescindible para realizar “correctamente” cualquier análisis estadístico y en particular un análisis geoestadístico. Entonces a grosso modo un análisis geoestadístico está compuesto por tres etapas: a) el análisis exploratorio de los datos, b) el análisis estructural y c) las predicciones (estimaciones o simulaciones) Campos de aplicación La geoestadística ha sido ampliamente aplicada en diversas ramas de las ciencias aplicadas y en las ingenierías, entre otras tenemos: petróleo, minería, pesca, geofísica marina, hidrogeología, medio ambiente, estudios forestales, salud pública, ingeniería civil, procesamiento de imágenes, cartografía, finanzas, ciencias de materiales, meteorología, edafología, etc. Petróleo • Modelos geológico – petrofísicos de yacimientos • Análisis de permeabilidad absoluta y su escalamiento • Simulación de facies • Caracterización de yacimientos • Integración de información • Análisis de riesgo • Evaluación de reservas Hidrogeología • Solución de problemas inversos (permeabilidad, transmisividades). • Estimaciones de los niveles piezométricos • Diseño de Redes óptimas de monitoreo • Estimación de los límites de la pluma de un contaminante Minería • Estudiar la factibilidad de un yacimiento • Cálculo de reservas • Cálculo y estimación de la varianza del yacimiento • Pronóstico de las variaciones de la mena a través de simulación Medio Ambiente • Estimación de contaminantes en atmósfera, suelo, cuerpos de agua. • Estimación de contaminantes in situ. • Estudios de riesgo e impacto ambiental. Salud Pública • Análisis de la distribución espacial de enfermedades. • Estimación de la exposición de personas a elementos nocivos (acústicos, químicos, polvos, etc.) Industria Forestal y Agrícola • Estudio de la distribución espacial y la afectación de plagas. • Inventarios forestales • Estudio cuantitativo de los suelos y sus propiedades químicas y mecánicas. Industria Pesquera • Estimación in situ de la potencialidad de pesca • Relación entre la distribución espacial de especies de peces y diferentes variables (profundidad, temperatura, salinidad, etc) Software • • 1970’S BLUEPACK Centro de Geoestadística de Fontainebleau. 1988 GEO-EAS (Enviromental Protection Agency, U.S.A.) Programa para DOS. • 1992 GSLIB Clayton Deutsch y André Journel U. Stanford Código abierto de dominio público escrito en lenguaje FORTRAN. • 1996 VARIOWIN Yvan Pannatier (Suiza) versión de GEO-EAS en MSWindows. • 1990’s I S A T I S (nueva versión de BLUEPACK) Software comercial de geoestadística de propósito general (Geovariances). DESARROLLO El desarrollo del prototipo esta divido en cuatro etapas, una que refiere al manejo de proyectos y otras tres, mismas que se refieren a las etapas de un análisis geoestadístico, Análisis Exploratorio de Datos, Métodos de Modelación y Visualización Científica. Manejo de Proyectos Este, aunque no lo parezca, es uno de los puntos más importantes de este sistema, ya que dentro del análisis de requerimientos, se encontraban los siguientes puntos: • Permitir una buena administración de los datos. • Permitir al usuario guardar los análisis que se realicen. • Empaquetar y distribuir los proyectos realizados con este software. Por estas razones fue imprescindible considerar una estructura para cada proyecto, en la cual se consideraran los puntos anteriores. Pareciese que con esta solución fuera suficiente para cumplir, pero no podría utilizarse cualquier tipo de archivo, ya que si esto fuera almacenado en un simple archivo de texto, esto causaría problemas en cuestión de la portabilidad, ya que si estamos ofreciendo un sistema portable, también los proyectos y/o resultados que genere este, deberán ser portables. Para esto consideramos el formato XML, el cual garantiza la portabilidad de la información contenida en este tipo de archivos (.xml), además de que es posible con este formato tener una estructura jerárquica de cada ítem del proyecto y consecuentemente una buena administración de los datos que el proyecto contenga. Para el uso de este formato nos apoyamos en el modulo de XML1que proporciona Qt, el cual es de gran ayuda, ya que contiene el API necesario para crear y editar la estructura de estos archivos. 1 El modulo XML provee una buena forma para trabajar con el formato XML usando la interfaz de SAX2 (Simple API for XML) la cual agrega la implementación de DOM nivel 2 (Document Object Model). Además de esto se ofreció dentro de la ventana principal una visualizador del proyecto en el cual se pueda observar de manera rápida el estado actual del proyecto. A esta parte se le llamó Historial de Proyecto y es una herramienta útil que la mayoría del software existente no proporciona. Además se propuso una estructura de proyectos, la cual fue analizada por el equipo en conjunto por el equipo de desarrollo y los asesores con el fin de depurar todos los errores que pudieran surgir de una estructura mal diseñada y se llego con esto a considerar la siguiente estructura como la más adecuada. El diagrama anterior muestra como esta estructurado y se almacena un proyecto generado por el sistema, y como se puede apreciar el proyecto puede contener más de un archivo de datos para ser analizados, estos son los llamados nodos, los cuales además contienen los siguientes ítems: • Manejo de Datos: Aquí es donde se puede encontrar una referencia hacia el archivo de datos que ese este manejando en el proyecto. • EDA: (Exploratory Data Analysis) Aquí se encontraran todos los resultados que se obtengan al realizar el análisis exploratorio de los datos. • Variograma: Aquí se encontraran las referencias a los resultados que sean obtenidos mediante el análisis variográfico. • Estimación: Aquí se contendrán los resultados de cualquier estimación (interpolación) que se les realicen a los datos. • Simulación: Aquí se contendrán los resultados de cualquier simulación aplicada a los datos. Todos los resultados obtenidos, corresponderán al archivo de datos de este nodo, además para cada uno de los puntos anteriores se podrán tener n resultados, los cuales serán clasificados dentro de su tipo correspondiente. Manejo de Datos. El manejo de datos es la parte encargada de la forma de interactuar con los archivos de datos. La parte principal del manejo de datos es el formato en que se estructuran las muestras de los fenómenos espaciales para su análisis, cada tipo de software utiliza un formato específico y en base al estudio de algunos de ellos se obtuvo el siguiente formato: Y esta es la estructura que utilizaremos para leer y escribir los archivos de datos para el sistema. Además cabe mencionar que la estructura anterior es simplemente texto plano, y esta es la forma clásica de manejar los archivos de datos de otros software similares, sin embargo en un futuro se puede implementar el manejo de los archivos por medio de una base da datos, ya que en ocasiones los archivos con los que se trabaja son demasiado grandes y esta puede ser una solución para un mejor almacenamiento y trato de los mismos. La parte que comprende el manejo de datos esta divida a su vez en dos secciones: • Edición de datos • Análisis Exploratorio de Datos Edición de Datos Una vez que se cargan los archivos de datos en un determinado proyecto el usuario debe tener una forma para visualizarlos y manipularlos. Para esto se cuenta con una especie hoja de cálculo en la que el usuario puede visualizar los datos de una forma clara y estructurada, Además de opciones para modificar el archivo de datos como copiar, cortar, pegar y borrar datos o aplicar alguna transformación sobre las variables (p.e. una trasformación logarítmica). Entre las mejoras consideradas en este punto se tienen la posibilidad de insertar más columnas al archivo de datos para el caso de tener que agregar otra variable o insertar mas filas para agregar un nuevo valor o simplemente la posibilidad de activar o desactivar algunos valores para alguna variable sin la necesidad de tener que guardar un nuevo archivo. Análisis Exploratorio de Datos El EDA (Exploratory Data Analysis) es un conjunto de técnicas estadísticas y gráficas que permiten establecer un buen entendimiento básico del comportamiento de los datos y de las relaciones existentes entre las variables que se estudian. Las etapas de un análisis exploratorio de datos son las siguientes: • Realizar un examen gráfico de la naturaleza de las variables individuales y un análisis descriptivo numérico que permita cuantificar algunos aspectos gráficos de los datos. • Realizar un examen gráfico de las relaciones entre las variables y un análisis descriptivo numérico que cuantifique el grado de interrelación existente entre ellas. • Evaluar algunos supuestos básicos subyacentes a muchas técnicas estadísticas, por ejemplo, normalidad, linealidad y homocedasticidad. • Identificar los posibles valores atípicos (outliers) y evaluar el impacto potencial que puedan ejercer en análisis estadísticos posteriores. • Evaluar, el impacto potencial que pueden tener los datos ausentes (missing) sobre la representatividad de los datos analizados. Para cumplir los puntos del Análisis Exploratorio de Datos el usuario cuenta con el siguiente menú dentro del sistema. Estadística Univariada Permite realizar un análisis gráfico y numérico sobre cada una de las variables de forma independiente y obtener los estadígrafos básicos de las mismas. La información numérica obtenida para una variable por la opción de estadística básica es la siguiente: • Mínimo • Primer Quartil • Mediana • Tercer Quartil • Máximo • Valor Medio • Varianza • Desviación Estándar • Curtosis • Sesgo Y los gráficos que se pueden visualizar son los siguientes: • Histograma • BoxPlot • Q-QPlot Las mejoras consideradas hasta el momento para la opción de estadística básica son la interacción de los con los gráficos, que el usuario tenga la posibilidad de seleccionar que gráficos de los mencionados desea visualizar, cambiar el intervalo del histograma o la opción de zoom. Estadística Bivariada Permite obtener el grado de correlación entre dos variables del archivo de datos así como una muestra grafica por medio de un grafico de dispersión. La información numérica obtenida para una variable por la opción de estadística Bivariada es la siguiente: • Correlación • Covarianza Y los gráficos que se pueden visualizar son los siguientes: • Gráfico de dispersión de variables • 2 Histograma Las mejoras consideradas para ente punto son que cada histograma sea adaptado de forma que corresponda al grafico de dispersión, como se muestra en la siguiente figura: ////////////////////////////////////////imagen Análisis de Tendencia Se realizan una exploración visual de los gráficos en cada una de las direcciones de los ejes (x, y). Otro modo de corroborar la presencia de no estacionaridad de la media es mediante el variograma. Cuando éste muestra un crecimiento más rápido que una función cuadrática es un indicador de la posible presencia de tendencia. Los gráficos necesarios son los siguientes: • Gráfico de dispersión XY • Grafico de dispersión en X • Grafico de dispersión en Y • Grafico de dispersión en algún ángulo determinado Regresión Lineal El objeto de un análisis de regresión es investigar la relación estadística que existe entre una variable dependiente (Y) y una o más variables independientes ( , ... ). Para poder realizar esta investigación, se debe postular una relación funcional entre las variables. Debido a su simplicidad analítica, la forma funcional que más se utiliza en la práctica es la relación lineal. Cuando solo existe una variable independiente, esto se reduce a una línea recta. En este caso simplemente se utiliza una formula para obtener la recta que nos describe dicha relación entre dos variables y se muestra el gráfico correspondientes (la formula se encuentra definida en el apéndice). Visualización Científica. Este modulo comprende el diseño y desarrollo de los gráficos necesarios para mostrar los resultados al usuario, el resultado final es una imagen la cual puede ser en dos o en tres dimensiones. Para poder cumplir con los requisitos en cuestión, fue necesario el realizar un estudio de las herramientas de visualización que ofrecieran las características que se estaban buscando, estas características requeridas son las siguientes: • Ser compatibles con Qt de Trolltech. • Tener las herramientas gráficas básicas que nos permitan construir gráficos estadísticos y gráficos de superficie en tres dimensiones. • Que permitan la manipulación del grafico, respondiendo a eventos que faciliten la visualización de una imagen. • Que sean portables. Estos requerimientos planteados no los cumplía por completo ninguna biblioteca actual de software libre, pero se encontraron dos bibliotecas que nos proporcionaban en conjunto una solución optima a estos, esta es la biblioteca de gráficos 2D Qwt 2y la biblioteca de Gráficos 3D QwtPlot3D3. Y aunque se encuentran aun en proceso de desarrollo ya se han liberado sus primeras versiones que, en base a pruebas, consideramos estables y funcionales. Estas entonces son las principales herramientas con las cuales realizamos la representación grafica de los resultados obtenidos en el sistema. Utilizando la biblioteca de QwtPlot3D fue posible no solo representar los datos obtenidos como resultado de los métodos de estimación y simulación, si no que además fue posible agregar una gran gama de transformaciones geométricas que sirven para proporcionar al usuario una manera cómoda y ágil de visualizar la imagen 3D que se estaba desplegando. Métodos de Modelación de Correlación, Interpolación y Simulación. En esta etapa del desarrollo era necesario analizar los métodos necesarios para realizar el modelado del variograma, las interpolaciones y simulaciones, estudiarlos y ver la forma de agregarlos al sistema, existen pocas bibliotecas las cuales permitan realizar un buen análisis geoestadístico, pero de entre ellas una de las mas utilizadas y considerada 2 La biblioteca de Qwt contiene componentes de Interfaz Grafica de Usuario y clases útiles que permiten a los desarrolladores crear gráficos eficientemente. Incluye un widget para graficar en 2D, este provee manejo de escalas, sliders, compases, termómetros, arreglos, etc. 3 QwtPlot3D no es un programa, pero una de sus principales características es que utiliza Qt/OpenGL y que además esta basado en la biblioteca de programación C++. Esta provee un complete widget de gráficos 3D para los programadores. la mejor por muchos usuarios es GSLib4. Esta biblioteca es libre por lo cual decidimos que era la mejor opción, no obstante existía un inconveniente y era el hecho de que esta biblioteca fue desarrollada en Fortran, y hoy en día el Fortran, aunque no es un lenguaje que pueda considerarse para realizar un proyecto como el nuestro, aun es utilizado por mucha de la comunidad científica e investigadores, los cuales prefieren despreocuparse por los detalles de el sistema y concentrarse en el desarrollo de métodos matemáticos. Por eso es que existe una gran cantidad de bibliotecas numéricas desarrolladas en este lenguaje que hasta la fecha tienen una gran funcionalidad. Por ello el esfuerzo principal en esta etapa se centro en la forma de interpretar estos métodos (Fortran) y en la manera de re-codificarlos y pasarlos a el lenguaje C++. Este esfuerzo tubo como resultado la generación de las bibliotecas dinámicas (.so y .dll en sistemas Unix y Windows respectivamente). Procedimiento para la conversión de los métodos en Fortran a lenguaje C++ y generación de bibliotecas dinámicas. RESULTADOS O EXPERIMENTOS Resultados del EDA Para mostrar los resultados del sistema respecto al análisis exploratorio de datos se usará el siguiente archivo de datos tomado del programa GSLIB. Clustered 140 primary and secondary data 2 3 Xlocation 4 GSLIB acrónimo para Geostatistical Software LIBrary. Este nombre fue usado originalmente por una colección de programas geoestadísticos desarrollados en la Universidad de Stanford los últimos 15 años. El GSLIB original fue inspirado en el manual de GSLIB: Geostatistical Software Library and User's Guide by Clayton Deutsch and André Journel, 1992 http://www.gslib.com/ . Ylocation . Primary . Secondary . Declustering Weight . 39.5 18.5 .06 .22 5.5 1.5 .06 .27 38.5 5.5 .08 .40 20.5 1.5 .09 .39 27.5 14.5 .09 .24 40.5 21.5 .10 .48 15.5 3.5 .10 .21 6.5 25.5 .11 .36 38.5 21.5 .11 .22 23.5 18.5 .16 .30 .5 25.5 .16 .31 9.5 19.5 .17 .30 36.5 43.5 .18 1.60 21.5 5.5 .19 .59 13.5 3.5 .19 .18 40.5 7.5 .19 .75 31.5 17.5 .22 .44 46.5 40.5 .24 .58 10.5 7.5 .26 .54 28.5 11.5 .28 .62 8.5 7.5 .28 .97 47.5 .5 .31 2.88 4.5 37.5 .32 .35 14.5 21.5 .33 .48 22.5 48.5 .34 .48 18.5 6.5 .34 .23 3.5 38.5 .34 .51 11.5 46.5 .40 .47 31.5 26.5 .45 .74 14.5 29.5 .46 2.52 14.5 43.5 .51 1.21 38.5 28.5 .57 5.55 45.5 14.5 .62 2.30 4.5 30.5 .65 1.06 6.5 41.5 .67 .43 7.5 12.5 .71 2.07 26.5 23.5 .79 1.40 … Edición de Datos 1.619 1.619 1.416 1.821 1.349 .944 1.214 1.619 1.146 1.821 1.349 1.012 .944 1.416 1.146 1.012 1.619 1.821 1.281 1.551 1.281 2.023 .944 1.619 2.023 1.619 .944 1.079 1.619 1.025 1.079 1.083 1.281 1.416 1.821 1.551 1.281 Fig. 5.1 Ventana para la edición de Datos La pantalla anterior muestra la ventana final para el manejo de los datos. Una vez que los archivos de datos han sido importados desde el manejador de proyectos, estos pueden ser cargados en el Worksheet para su edición. El Worksheet es parecido a una hoja de cálculo de Excel, en el cual se puede además de visualizar el archivo de datos de forma organizada y con los datos más sobresalientes (como coordenadas, variables y número total de registros) editar dicho archivo en caso de que se desee copiar, pegar o realizar alguna transformación logarítmica sobre las variables. Estadística Básica Una vez “tratados” los datos se procede a realizar una inspección de las variables de forma individual por medio de la opción de estadística básica del menú EDA. Al seleccionar esta opción desde la ventana principal aparece la siguiente ventana. Fig. 5.2 Ventana para la selección del archivo de datos y la variable para la estadística básica En esta ventana se selecciona el archivo de datos y alguna de las variables del mismo. Además se seleccionan solo los estadígrafos que se deseen visualizar. Y el resultado se obtiene es una ventana como la siguiente Fig. 5.3 Ventana de resultados de una estadística básica En donde se pueden ver los resultados así como los gráficos de la función de distribución normal, el histograma y boxplot. Además esta ventana nos proporciona interacción con los gráficos en cuanto a los colores para obtener una mejor visualización y nos permite guardar las imágenes en una gran variedad de formatos para su análisis ya o uso posterior en algún documento o simplemente imprimirlo directamente . Estadística Bivariada Cuando se selecciona realizar una estadística Bivariada desde la ventana principal aparece la siguiente ventana Fig. 5.4 Ventana para la selección del archivo de datos y las dos variables para la estadística bivariada En esta pantalla se selecciona el archivo de datos y las dos variables sobre la cuales se quiere apreciar su distribución y correlación. Regresión Lineal Para realizar un análisis de regresión lineal de igual forma que para una estadística bivariada se seleccionan dos variables y se obtiene el grafico correspondiente. Fig. 5.5 Resultado de un análisis de regresión lineal Pruebas Herramientas de graficación 2D y 3D A un inicio solo teníamos pensado utilizar Qt y OpenGL para realizar los gráficos necesarios, tanto en 2D como en 3D, pero pronto nos dimos cuenta de que el manejar una variedad amplia de gráficos sin tener una marco de trabajo, era algo muy complicado y que tal vez nos hubiera requerido mayor tiempo de desarrollo y muchas líneas mas de código, por eso nos dimos a la tarea de elegir herramientas de software libre que nos proporcionaran este marco inicial para poder realizar gráficos 2D y 3D de una manera sencilla pero que cumpliera con los requerimientos necesarios. Hablando de los requerimientos, recordaremos los que afectan al manejo de gráficos 2D y 3D, entre ellos se encuentran los siguientes: • Permitir generar gráficos estadísticos en 2D (histograma, scatterplot, regresión, QQ-PP, etc). • Permitir manipular esos gráficos 2D, cambiando tanto los parámetros del grafico como las propiedades de los mismos. • Generar gráficos 3D, de mapas o superficies. • Permitir la manipulación de estos gráficos 3D, pudiéndose aplicar las transformaciones geométricas, de rotación y traslación en cualquiera de sus ejes, escalamiento. • Permitir el manipular los parámetros y propiedades 1del grafico 3D. • Permitir realizar cortes al grafico 3D en cualquiera de las tres direcciones (X, Y o Z). Qt como lo mencionamos a un inicio nos provee de herramientas de graficación, pero estas son muy básicas, son basadas en el manejo de líneas, círculos y rectángulos, y algunas otras funcionalidades, pero en general muy básicas todas estas. Fig. 5.6 Resultados del QCanvas Una de las mejores y mas completas herramientas que encontramos es Root, esta herramienta es software libre, y contiene una gran cantidad de métodos y utilerías para generar gráficos bastante buenos y de una manera sencilla, tiene la posibilidad de generar gráficos tanto 2D como 3D, utiliza OpenGL, y en suma es un software bastante completo pero tenia un inconveniente, y es que no era compatible directamente con Qt. Fig. 5.7 Resultados de QTRoot Pero encontramos una herramienta que nos permitía resolver este inconveniente, y se pensó que seria la solución perfecta para iniciar el desarrollo de nuestro software, esta herramienta es QtRoot, una biblioteca que sirve de interfaz entre Root y Qt, permitiendo tener embebido Root dentro de cualquier aplicación realizada en QT de manera sencilla y practica, se realzaron muchas pruebas con este software y obtuvimos resultados satisfactorios. Fig. 5.8 Otros resultados de QTRoot Pero sigue existiendo otro inconveniente, y era el hecho de que utilizar esta biblioteca nos frenaba la portabilidad del sistema, ya que esta biblioteca únicamente funciona para Linux, y este fue el motivo por el cual se decidió buscar otras alternativas, que aunque no superaran en potencia a Root, por lo menos nos brindaran un marco inicial para la generación de imágenes y que garantizaran la portabilidad del sistema. En este punto de nuestra investigación encontramos dos nuevas bibliotecas, estas son QwtPlot y QwtPlot3D, estas herramientas nos brindan un manejo de gráficos 2D y 3D muy aceptable y son completamente acoplables con Qt, y son además portables. Pero un inconveniente es que estas son herramientas de software libre, las cuales no tienen una garantía de uso, y además no existe la suficiente documentación para su manejo. Para iniciarnos en el desarrollo utilizando estas herramientas fue necesaria la ayuda de las listas de correo de Qt, por medio de las cuales tuvimos la ayuda y cooperación de los integrantes de este grupo, dentro de los cuales encontramos al propio autor de esta biblioteca de QwtPlot, Uwe Rathmann <[email protected]>, quien nos brindo ayuda en ciertas cuestiones necesarias para iniciarnos en el manejo de esta herramienta. Fig. 5.9 Resultados de QWT Sobre QwtPlot3D, diremos que es una biblioteca que va sobre la misma línea que QwtPlot, pero ésta está enfocada el desarrollo de gráficos 3D utilizando OpenGL, esta herramienta nos sirvió para generar los gráficos 3D que representaran los resultados obtenidos en los métodos, y además de esto nos proveía de utilidades para la manipulación de las imágenes 3D generadas. Fig. 5.10 Resultados de QWTPlot3D Una vez concluida esta búsqueda de herramientas que cumplieran los requerimientos del sistema, entonces se pudo dar comienzo a la integración de todo en nuestro sistema. Esta integración involucra el acoplamiento de los gráficos generados dentro de ventanas generadas en Qt, que nos permitieran cambiar sus tamaños, dependiendo el tamaño de la ventana contenedora, que nos permitirán conectar los elementos internos del grafico con los Widgets de Qt, en general que nos permitieran el completo acoplamiento con Qt. A continuación observamos unos de estos resultados. Pruebas de Métodos de Modelación Nuestro sistema tiene por objetivo la obtención de un modelo computacional que represente un fenómeno espacial. Para esto se eligió la geoestadística, y en especial decidimos utilizar GSlib, esta biblioteca de métodos de modelación geoestadística es de uso libre y es una de las herramientas mas utilizadas dentro del ambiente de desarrollo de software de geoestadística. Una de las principales ventajas que vimos en esta librería es en cuestión de quien es el autor de la misma, ya que uno de los autores es Clayton V. Deutsch, una persona bastante reconocida en esta materia. GSLib nos provee de herramientas para la obtención del modelo, para la estimación (kriging) y para obtener simulaciones del modelo. Estos métodos nos dan como resultado un archivo de salida con los resultados en forma de tabla, de los cuales se pueden obtener gráficos como los siguientes. Fig. 5.11 Resultados del software GSLib Pero existieron desventajas significativas que nos hicieron buscar mas alternativas, una de ellas es que GSlib esta escrita en Fortran, y hablar de Fortran hoy en día es algo complicado, al inicio de este trabajo de investigación realizamos un estudio sobre lo que significa Fortran hoy en día, y entre otras cosas nos dimos cuenta de que Fortran no es un lenguaje que haya muerto aun, ya que vimos que existen muchos métodos y bibliotecas de métodos escritas en Fortran, los cuales no pueden ser tirado a la basura, por lo que vimos que la mejor solución para este tipo de códigos era traducirlos a un lenguaje como C++ o Java, ya que son los lenguajes que actualmente nos permiten el uso de interfaces graficas y el manejo de nuevas herramientas de programación o el uso de frameworks los cuales añadan funcionalidad al sistema. Es por lo anterior que decidimos traducir los códigos que forman GSlib al lenguaje C++, esto no es fácil ya que Fortran es un lenguaje que utiliza el paradigma de la programación estructurada, lo cual lo hace difícil de reutilizar y de entender. En la búsqueda de resolver este problema encontramos otra biblioteca llamada F2C la cual es una biblioteca encargada de traducir automáticamente códigos escritos en Fortran al lenguaje C. Esta fue una solución factible por el hecho de que, F2C es una herramienta de software libre y al generar salidas en ANSI C, nos garantiza la portabilidad del sistema. Para lograr este objetivo de convertir los métodos Fortran a código C y después a una biblioteca dinámica, la cual provea los métodos de modelación, estimación y simulación de forma dinámica, es decir, que en cualquier momento podemos hacer una llamada a esta función, pasándole los parámetros correspondientes y esperar a que este nos regrese un archivo de texto plano con los resultados correspondientes al mismo. Para esto entonces es necesario seguir el siguiente algoritmo. Análisis Espacial El análisis espacial es un grafico sumamente necesario para poder realizar un análisis estructural de los datos, y este proceso es posible realizarlo con nuestro sistema. Al crear una vista XY de los datos de nuestro archivo, tenemos que considerar no solo sus coordenadas si no que además deberemos conocer el valor de la variable en ese punto para poder diferenciar los distintos niveles en los que deseemos visualizar el mapa. Para cumplir con el objetivo de generar esta vista XY de los datos fue necesario utilizar Qwt, esta biblioteca nos permite manejar correctamente las escalas, para que sean lo mas claras posibles. Además nos permite manipular cada rango de puntos (tomando la variable como referencia) en símbolos de distintos colores para que sea observe un mapa XY con los puntos bien definidos y sea así mas fácil de interpretar. El objetivo de este tipo de gráficos será que el usuario pueda obtener una vista en planta de los datos y que además pueda observar la distribución de los valores para cierta variable. También, en base a la experiencia de cada usuario, este podrá tener una idea del tipo de distribución que presentan los datos, de los valores atípicos de la muestra y de la posible tendencia de los mismos. Fig. 5.12 Ventana de resultados del análisis espacial Obtención del Modelo Computacional Para realizar cualquier tipo de simulación o de estimación mediante nuestro sistema y en general en cualquier otro sistema de este tipo, antes es necesario crear el modelo, el cual nos representara en un grafico, la función de la correlación que mantienen nuestros datos. Para cumplir con este propósito es necesario realizar un variograma o también llamado semivariograma, el cual nos representa el modelo. Para esto es necesario llamar al método para estimar el variograma con la biblioteca dinámica incluida en nuestro sistema, esta biblioteca dinámica es llamada libgam.so,.dll, su propósito es analizar la correlación entre dos variables (por lo menos), con lo cual nos regresa una tabla con cada uno de los puntos estimados. El usuario tendrá derecho de elegir tanto el archivo de datos del cual tomara las variables correlacionadas, así como los distintos parámetros necesarios para ejecutar el método. La figura siguiente muestra el proceso de elección de parámetros y muestra también el gráfico correspondiente al variograma estimado, fue necesario además agregar información sobre la varianza del error. Fig. 5.13 Ventana de resultado del variograma Una vez que se obtiene un modelo computacional del fenómeno que se esta analizando, este modelo será utilizado por los métodos de estimación para generar una imagen suavizada del fenómeno estudiado. Para este propósito en nuestro sistema además se incluye la biblioteca dinámica kb2d.so, .dll la cual es la encargada de realizar este proceso y a la salida nos devuelve un mapa, dentro de una malla definida por el usuario, sobre la cual se observan los valores interpolados. En nuestro sistema este tipo de gráficos son superficies en tres dimensiones, las pueden ser manipuladas por los usuarios, para realizar las transformaciones geométricas conocidas para poder observar la imagen en distintas perspectivas. La siguiente figura nos muestra la ventana del sistema encargada de recoger los parámetros del usuario necesarios para poder ejecutar el método de estimación por Kriging, y nos desplegara la imagen correspondiente al mapa calculado. Fig. 5.14 Ventana de resultado del método de interpolación Kriging Además de la generación de este tipo de superficies o mapas es necesario brindar otra funcionalidad que es el mostrar gráficos que nos delimiten con mayor eficiencia los resultados obtenidos. Para ello se utilizan las curvas de nivel, en este tipo de gráficos podemos observar mas detalles de la imagen que tal vez pudieran ser difíciles de apreciar en una imagen suavizada como los es el mapa de kriging. Fig. 5.14 Mapa de contorno Fig. 5.15 Mapa de contorno dentro de Qt Modelado del Variograma En esta opción podrá elegirse el modelo que será ajustado a los puntos estimados del variograma previamente calculado, la elección del modelo a ajustar es completamente realizado por el usuario de manera visual, para ellos el sistema permite que los resultados obtenidos con parámetros del modelo que el usuario va variando sean vistos inmediatamente y con ello se permite al usuario ajustar el modelo en base a prueba y error, que es el método tradicional. Una mejora a futuro será que el software implemente métodos automáticos para la elección del mejor modelo y ajuste, y con esto dar la oportunidad a usuarios inexpertos de obtener modelos confiables para variables que se estén analizando. CONCLUSIONES Y TRABAJOS FUTUROS Con el presente trabajo se realizando una contribución importante a la sociedad, ya que este sistema es una herramienta aplicable a distintas áreas de estudio, las cuales son vitales para el desarrollo social; como ejemplo tenemos a la industria petrolera, una de las mas grandes del país, y de la cual depende la economía en gran medida, por lo que esta herramienta tiene por objetivo contribuir con este tipo de industrias, facilitando el análisis de el fenómeno y disminuyendo costos que pueden ser originados por un mal estudio previo del fenómeno, por ejemplo al realizar exploraciones de pozos petroleros, analizando todos los factores que afecten su obtención de manera conjunta (correlación). Aunque la herramienta que se desarrollo en esta investigación es una versión funcional, esta pensado agregar mas elementos y módulos que brinden una mayor funcionalidad al sistema y que puedan resolver problemas mas específicos. Lo que se pretende a futuro es realizar versiones del sistema enfocadas a cada área de aplicación, agregando métodos específicos para cada una de ellas y logrando así que el sistema sea mas especializado y con esto lograr obtener resultados especiales para cada una se estas áreas en las que sea utilizado. Otro de los propósitos a futuro será el implementar mas métodos de modelación así como de análisis estadístico, además crear métodos que agreguen funcionalidades no contempladas por las herramientas actuales de este tipo, entre los cuales tenemos planeado utilizar el reconocimiento de patrones para automatizar tareas y con esto tratar de realizar un sistema experto. Al final lo que se quiere lograr es crear un laboratorio de análisis geoestadístico, en el cual se pueda realizar un análisis completo de cierto fenómeno y con esto se lograra que el usuario ya no tenga que utilizar distintas herramientas de software para cada fase del análisis, si no que todo se integre en un entorno de trabajo, en el cual de manera sencilla pueda realizarse un completo análisis del fenómeno. BIBLIOGRAFÍA Dr. Martín Díaz Viera, Instituto Mexicano del Petróleo Christian Lantuejoul, Geostatistical Simulation: Models and Algorithms, Springer Verlag, 2002. Consentino L., Integrated Reservoir Studies, TECHNIP, 2001. Deutsch, C. V., Geostatistical Reservoir Modeling, Oxford University Press, 2002. Kelkar M. and G. Pérez, Applied Geostatistics for Reservoir Characterization, SPE, 2002. SigmaView – Landmark Graphics Corporation (http://www.lgc.com/ ) (RC)2 Antero – Seismic Micro-Technology (http://www.seismicmicro.com/ ) RMSgeomod – Irap RMS - Roxar Software Solutions (http://www.roxar.com/) Gocad – Earth Decision Sciences (http://www.t-surf.com/ ) RML-HereSim 3D – Beicip Franlab (http://www.beicip.com/ )