Codea Blog  

Blog Details

Modelado Geológico en 3D utilizando Python y Bibliotecas Gráficas

INTRODUCCIÓN 

El modelado geológico en 3D es una herramienta esencial en la exploración y visualización de características, como capas de roca, depósitos minerales y estructuras geológicas. Un proyecto minero implica diversos riesgos, sin embargo, una evaluación de yacimientos, lo más cercana posible a la realidad, es fundamental para disminuir significativamente estos riesgos. La evaluación de yacimientos involucra diferentes etapas de geología e ingeniería, pasando por la toma de datos, los modelos digitales geológicos y los procesos metalúrgicos hasta los estudios de mercado. Siendo el modelo geológico una de las primeras etapas de la evaluación, base para los estudios de minería y de procesos metalúrgicos, puede ser considerado un proceso clave en la evaluación.

 

El modelo geológico puede ser divido en las etapas de: Montaje y validación del banco de datos; elaboración del mapa geológico del yacimiento; definición e interpretación de los perfiles geológicos; construcción de los cuerpos geológicos 3D, y definición y construcción del modelo de bloques.

 

Esta representación espacial busca establecer la continuidad de parámetros las que deben ser respaldadas con un sustento geológico que explique cómo interactúa, cómo se forma y cómo se emplaza el yacimiento. El resultado final es la obtención de unidades geológicas o dominios espaciales y temporales que se agrupan según sus características. Un modelo geológico sirve como base para la construcción de modelos de estimación, geotécnicos, hidrogeológicos, geometalúrgicos o de reservas, por lo que es una de las mejores herramientas para la toma de decisiones en la etapa de planificación minera.

 

Python, con sus bibliotecas gráficas como Mayavi y Plotly, ofrece una poderosa plataforma para crear visualizaciones interactivas y detalladas de datos geológicos en tres dimensiones. En este artículo, exploraremos cómo utilizar estas bibliotecas para crear un modelo geológico en 3D a partir de datos geológicos.

 

PREPARACIÓN DE DATOS 

Antes de sumergirse en el modelado geológico en 3D, es fundamental tener los datos en un formato adecuado. Pueden provenir de diversas fuentes, como mediciones de perforaciones, muestreo geológico, datos geofísicos, entre otros. Por lo tanto, se debe asegurar que los datos estén organizados en una estructura que sea compatible con las bibliotecas gráficas que se planea utilizar, como arrays Numpy o DataFrames de Pandas.

 

VISUALIZACIÓN CON MAYAVI

Mayavi es una biblioteca de visualización científica que ofrece diversas opciones para representar datos en 3D. Se puede crear visualizaciones de volúmenes, superficies y contornos para mostrar la distribución de capas geológicas y estructuras subterráneas. Es un paquete de dibujo interactivo en 3D. matplotlib también puede realizar gráficos 3D simples, pero Mayavi se basa en un motor más potente ( VTK ) y es más adecuado para mostrar datos grandes o complejos.

 

• Cargar Datos: Carga tus datos geológicos en un formato compatible con Mayavi, como un array Numpy que represente un volumen 3D.

• Crear una Figura: Utiliza la función mlab.figure() para crear una figura de Mayavi donde se mostrará tu visualización.

• Visualización de Volúmenes: Utiliza mlab.pipeline.volume() para crear una visualización de volúmenes basada en tus datos. Puedes ajustar la escala de colores y propiedades visuales.

• Personalización: Personaliza la visualización ajustando parámetros como colores, escalas, opacidades y otros aspectos visuales para resaltar los detalles geológicos.

• Mostrar la Figura: Utiliza mlab.show() para mostrar la figura en una ventana emergente.

                             import numpy as np
                             from mayavi import mlab

                             # Cargar datos geológicos (reemplace 'data' con sus propios datos)
                             data = np.load('datos_geologicos.npy')

                             # Crear una figura de mayavi
                             fig = mlab.figure(size=(800, 600))

                             # Crear un objeto de visualización de volúmenes
                             vol = mlab.pipeline.volume(mlab.pipeline.scalar_field(data))

                             # Configurar colores y escalas
                             vol.volume_property.set_color(ColorTransferFunction((0.1, 0.5, 1)))
                             vol.volume_mapper.scalar_range = np.min(data), np.max(data)

                             # Mostrar la figura
                             mlab.show()

 

CREACIÓN DE SUPERFICIES CON PLOTLY

Plotly es una biblioteca conocida por sus visualizaciones interactivas y elegantes. Puedes utilizar Plotly para crear superficies 3D que representen tus datos geológicos de manera interactiva.

 

• Creación de Grilla: Crea una grilla 3D utilizando np.meshgrid() con valores adecuados de x e y para representar el plano horizontal donde se generará la superficie.

• Definir Función z: Define una función z = f(x, y) que describa cómo los valores geológicos varían en el espacio. Esto podría ser basado en tus datos reales o en funciones generativas.

• Crear la Superficie: Utiliza go.Surface() de Plotly para crear una superficie 3D con los datos z, x e y definidos anteriormente.

• Personalización de la Figura: Utiliza el método .update_layout() para personalizar la apariencia de la figura, como agregar un título y etiquetas a los ejes.

• Mostrar la Figura: Utiliza fig.show() para mostrar la figura interactiva en una ventana de navegador.

 

                               import numpy as np
                               import plotly.graph_objects as go

                               # Crear una grilla 3D
                               x = np.linspace(0, 10, 50)
                               y = np.linspace(0, 10, 50)
                               X, Y = np.meshgrid(x, y)

                               # Supongamos que tienes una función z = f(x, y) que describe tus datos geológicos
                               Z = np.sin(X) + np.cos(Y)

                               # Crear una superficie 3D
                               fig = go.Figure(data=[go.Surface(z=Z, x=X, y=Y)])

                               # Personalizar el diseño de la figura
                               fig.update_layout(title='Modelo Geológico 3D',
                                                                scene=dict(xaxis_title='X', yaxis_title='Y', zaxis_title='Z'))

                               # Mostrar la figura interactiva
                               fig.show()

 

CONCLUSIÓN

La combinación de Python y bibliotecas gráficas como Mayavi y Plotly nos brinda la capacidad de crear visualizaciones geológicas en 3D efectivas y llamativas. A través de la preparación de datos adecuada, la elección de las técnicas de visualización adecuadas y la personalización de las visualizaciones, se puede comunicar de manera efectiva información geológica compleja y ayudar en la toma de decisiones relacionadas con la exploración y la investigación geológica. Se puede experimentar con diferentes parámetros y opciones para lograr las visualizaciones más informativas y atractivas para necesidades específicas.

 

Comentarios

Registrate o Inicia Sesión para comentar y obtener Cursos de pago gratis

function loadurl(){ var val1 = document.getElementById("valor3").value; console.log(val1); if(val1){ window.location = "/comunidad/blog/filtrar/"+val1+"/"} }