Desarrollo de un Sistema de Cómputo para la Modelación

Anuncio
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/ )
Descargar