Top Banner
PyGSLIB, un paquete Python con código abierto para la estimación de recursos minerales Adrian Martínez Vargas 1 1 CSA Global Canada Geosciences - Ltd. Suite 501, 365 Bay Street, Toronto, Ontario, M5H 2V1, Canada ([email protected]) Resumen PyGSLIB es una librería de Python con código abierto para la estimación de Recursos Minerales. Fue escrito en: Python, Cython y Fortran. Consiste en cinco módulos principales: Drillhole, Blockmodel, Gslib, Vtktools, y Nonlinear. Estos módulos contienen funciones y ejercicios para trabajar: con sondajes, modelos de bloques, geometría computacional con funciones implícitas, geoestadística no linear y geoestadística básica. El módulo Gslib contiene parte del código Fortran modificado del software GSLIB. PyGSLIB, está inspirando en macros de Datamine y tiene como premisa producir estimaciones de recursos minerales que puedan reproducirse, también permite la auditabilidad de los cálculos porque: captura la información, parámetros de estimación y comentarios en unas scripts de Jupyter-Notebook. Este documento describe la implementación del software y su funcionalidad es demostrada con un caso de estudio. Abstract PyGSLIB is an open source python package for Mineral Resource estimation. It is written in Python, Cython and Fortran. It consists of five main modules: Drillhole, Blockmodel, Gslib, Vtktools, and Nonlinear. The package contains a set of functions and classes for drillhole and block model processing, basic computational geometry and some implicit modeling capabilities, nonlinear geostatistics, and basic geostatistics. The module gslib contains GSLIB Fortran code modified. This software was inspired in the Datamine macro language and its aim is producing Mineral Resource estimates that can be reproduced. It enables auditability by encapsulating estimation parameters, data, and comments in a single Jupyter-Notebook script. This paper describes the software implementation and functionality and presents a case of study. Palabras clave: desurvey, sondaje, modelo de bloques, geometría computacional 1. Introducción La estimación de recursos es un proceso repetitivo y con un flujo de trabajo que generalmente varía poco de una estimación a otra, independientemente del tipo de yacimiento mineral que se estime (Figura 1), por ello resulta útil el uso de macros o scripts
6

Adrian Martínez Vargas1 - proexplo.com.pe · para desarrollar el proceso de estimación. El mejor ejemplo de software comercial con esta funcionalidad es Datamine Studio, el cual

Oct 04, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Adrian Martínez Vargas1 - proexplo.com.pe · para desarrollar el proceso de estimación. El mejor ejemplo de software comercial con esta funcionalidad es Datamine Studio, el cual

PyGSLIB, un paquete Python con código abierto para la estimación de recursos minerales

Adrian Martínez Vargas1

1CSA Global Canada Geosciences - Ltd. Suite 501, 365 Bay Street, Toronto, Ontario, M5H 2V1, Canada ([email protected])

Resumen

PyGSLIB es una librería de Python con código abierto para la estimación de Recursos Minerales. Fue escrito en: Python, Cython y Fortran. Consiste en cinco módulos principales: Drillhole, Blockmodel, Gslib, Vtktools, y Nonlinear. Estos módulos contienen funciones y ejercicios para trabajar: con sondajes, modelos de bloques, geometría computacional con funciones implícitas, geoestadística no linear y geoestadística básica. El módulo Gslib contiene parte del código Fortran modificado del software GSLIB. PyGSLIB, está inspirando en macros de Datamine y tiene como premisa producir estimaciones de recursos minerales que puedan reproducirse, también permite la auditabilidad de los cálculos porque: captura la información, parámetros de estimación y comentarios en unas scripts de Jupyter-Notebook. Este documento describe la implementación del software y su funcionalidad es demostrada con un caso de estudio. Abstract

PyGSLIB is an open source python package for Mineral Resource estimation. It is written in Python, Cython and Fortran. It consists of five main modules: Drillhole, Blockmodel, Gslib, Vtktools, and Nonlinear. The package contains a set of functions and classes for drillhole and block model processing, basic computational geometry and some implicit modeling capabilities, nonlinear geostatistics, and basic geostatistics. The module gslib contains GSLIB Fortran code modified. This software was inspired in the Datamine macro language and its aim is producing Mineral Resource estimates that can be reproduced. It enables auditability by encapsulating estimation parameters, data, and comments in a single Jupyter-Notebook script. This paper describes the software implementation and functionality and presents a case of study. Palabras clave: desurvey, sondaje, modelo de bloques, geometría computacional

1. Introducción La estimación de recursos es un proceso repetitivo y con un flujo de trabajo que

generalmente varía poco de una estimación a otra, independientemente del tipo de yacimiento mineral que se estime (Figura 1), por ello resulta útil el uso de macros o scripts

Page 2: Adrian Martínez Vargas1 - proexplo.com.pe · para desarrollar el proceso de estimación. El mejor ejemplo de software comercial con esta funcionalidad es Datamine Studio, el cual

para desarrollar el proceso de estimación. El mejor ejemplo de software comercial con esta funcionalidad es Datamine Studio, el cual fue creado en 1981 y no incorporó interfaz gráfica hasta principio de los 90 (Constellation Software, ?). El uso de script ofrece dos ventajas fundamentales: a) los resultados pueden reproducirse y b) facilita la auditabilidad de la estimación ya que los parámetros y supuestos usados para la estimación son explícita o implícitamente plasmados en el código fuente. Estas son las dos premisas de PyGSLIB, un módulo Python diseñado para la estimación de recursos minerales.

Figura 1. Proceso repetitivo para la estimación de

Recursos Minerales con PyGSLIB.

2. Diseño e implementación PyGSLIB

PyGSLIB utiliza comandos en lenguaje Python, que pueden ejecutarse de manera interactiva o secuencial. Por lo general se recomienda el desarrollo sobre Jupyter Notebooks. Este paquete Python cuenta con los módulos:

Drillhole: para crear objetos de tipo Drillhole los cuales contienen funciones para calcular coordenadas de intervalos, compositar intervalos, entre otras funcionalidades.

Blockmodel: genera modelos de bloques, y calcula porcentaje de bloques dentro de un sólido.

Vtktools: contiene un número de funciones para geometría computacional. También se usa para importar y exportar ficheros de triangulaciones, sondajes y modelos de bloques en formato vtk (Kitware, 2018 [a]).

Gslib: contiene programas del software GSLIB e implementa geoestadística y estadística básica.

Nonlinear: implementa geoestadística no lineal con el modelo gaussiano discreto, usando polinomios de Hermite.

Otros módulos como Sandbox, Sandbox2 y Html_plot también están disponibles. Estos módulos contienen código en estado experimental.

El código de PyGSLIB se distribuye con licencias GPL y MIT y puede ser descargado, modificado y redistribuido sin costo alguno (OpenGeostat, 2018).

3. Caso de estudio sintético

Para ilustrar la funcionalidad y como ejemplo de PYGSLIB se generó un yacimiento artificial (o sintético) usando el propio módulo. El yacimiento se generó digitalizando dominios geológicos y trazas de sondajes en secciones verticales. Las leyes de oro se crearon con simulación secuencial gaussiana no condicional, usando el software GSLIB.

3.1. Exploración de datos de entrada

Para la estimación de recursos minerales se partió de la base de datos de sondajes sintéticos que contienen las tablas de: collares, desviaciones o survey, y de intervalos de muestreo con leyes simuladas, todas en formato *.csv. Las tablas se importaron como DataFrames de Pandas (Pandas, 2018) y se generaron los sondajes como instancias de la clase pygslib.drillhole.Drillhole. Las coordenadas de los intervalos de muestreo se calcularon con la función pygslib.drillhole.Drillhole.desurvey() y las trazas se exportaron al formato vtk para la visualización inicial en el software ParaView (Kitware, 2018 [b]).

3.2. Construcción de los sólidos del dominio de estimación

El modelo geológico se interpretó usando las leyes de oro. Los intervalos con leyes sobre cero se asignaron al dominio 1 y se compositaron a un metro usando la función Drillholes.key_composite(). Los puntos de

Page 3: Adrian Martínez Vargas1 - proexplo.com.pe · para desarrollar el proceso de estimación. El mejor ejemplo de software comercial con esta funcionalidad es Datamine Studio, el cual

contacto se extrajeron de los compósitos y se usaron para generar superficies con la función pygslib.vtktools.rbfinterpolate (Figura 2).

Figura 2. Superficies de contactos generadas con la

función pygslib.vtktools.rbfinterpolate.

Las superficies de contacto se usaron para generar los sólidos, incluido el del dominio 1, para ello las superficies se convirtieron en funciones implícitas (o instancias de tipo vtkImplicitPolyDataDistance) y se usaron para evaluar la distancia entre superficie y puntos dentro de la región que define el área de estudio. Las superficies cerradas de los sólidos se obtienen con una operación booleana entre superficies implícitas, que en este caso es la intersección y se expresa como el mínimo o máximo entre el valor de dos superficies implícitas (Figura 3). La superficie cerrada del sólido se obtiene como el contorno de la isosuperficie 3D que pasa por el valor cero de la operación booleana (Figura 3).

Figura 3. Construcción de sólidos 3D con funciones

implícitas booleanas. En gris superficies de contacto.

Arriba planos de secciones generadas con funciones

implícitas con dos superficies de contacto que definen

el dominio 1. En el medio, sección de función implícita

booleana de intersección. Debajo sólidos obtenidos, en

azul dominio 1 y sondajes en gris. La visualización se

realizó con el software Paraview, exportando sólidos y

sondajes en formato vtk.

3.3. Estimación de recursos

Se definió un modelo de bloques de 5x5x5 m con una instancia de la clase pygslib.blockmodel.Blockmodel. El sólido del dominio 1 se usó para generar los bloques y calcular el porcentaje dentro del sólido utilizando la función pygslib.blockmodel.Blockmodel.fillwireframe (Figura 4). Los intervalos de sondajes se usaron para calcular la media desclusterizada, el variograma, y se interpoló con el inverso a la distancia al cuadrado, vecino más cercano y Kriging ordinario. Todas estas operaciones se completaron usando las funciones del módulo pygslib.gslib.

Page 4: Adrian Martínez Vargas1 - proexplo.com.pe · para desarrollar el proceso de estimación. El mejor ejemplo de software comercial con esta funcionalidad es Datamine Studio, el cual

Figura 4. Bloques en dominio 1 coloreado con

porcentaje dentro del sólido.

3.4. Validación de los resultados

La validación de los resultados se realizó de forma visual (Figura 5), comparando leyes promedio en sondajes y modelo de bloque, y diferentes modelos estimados usando Swath plots (Figura 6), y validación en las curvas de ley – tonelaje, comparando los modelos estimados y el modelo gausiano discreto implementado en el módulo pygslib.nonlinear (Figura 7).

Figura 5. Validación visual de secciones de sondajes y

de estimado de contenidos en modelo de bloques. La

visualización ser realizó en el software Paraview.

Figura 6. Swath plot construido usando filtros de

Dataframes de Pandas.

Figura 7. Comparación de curvas de ley tonelaje

obtenidas de la estimación en el modelo de bloque y

del cambio de soporte global con modelo gaussiano

discreto.

Otro ejemplo de estimación de recursos usando PyGSLIB y explicación detallada de las funciones antes mencionadas se pueden encontrar en. https://opengeostat.github.io/pygslib/Tutorial.html. En este ejemplo se usaron datos de la zona Babbitt del complejo Duluth, un depósito de cúmulos ultramáficos con mineralización de níquel, cobre y elementos del grupo del platino localizado en USA. PyGSLIB también ha sido utilizado para optimizar espaciado entre sondajes usando simulación condicional secuencial Gaussiana y de indicadores, tal y como muestra Martinez-Vargas, 2017.

4. Resultados y Conclusiones

Todo el proceso de estimación, incluida la generación de los sólidos, se desarrolló con un script de Jupyter Notebook. El script, además del código, contiene comentarios y salidas gráficas que permiten leer el proceso como si fuera un reporte técnico y es auditable. Para validar que la estimación es reproducible el script fue ejecutado varias veces, obteniéndose los mismos resultados. También se ejecutó excluyendo algunos de los sondajes y modificando parámetros de estimación para evaluar el impacto en tonelaje y ley, y así evaluar la incertidumbre en la estimación. Los resultados demuestran que PyGSLIB permite generar estimaciones fáciles de reproducir y auditar, y permite automatizar el proceso de estimación. Al tener el código abierto, las fórmulas y algoritmos usados también se pueden auditar.

Page 5: Adrian Martínez Vargas1 - proexplo.com.pe · para desarrollar el proceso de estimación. El mejor ejemplo de software comercial con esta funcionalidad es Datamine Studio, el cual

Referencias Constellation Software, ?. Datamine (http://www.miningsoftware.org/portfolio-posts/datamine/) Kitware, 2018. Paraview (https://www.paraview.org/) Kitware, 2018. VTK (https://www.vtk.org/)

Martínez-Vargas, 2017. Optimizing grade-control drillhole spacing with conditional simulation. Minería y Geología v.33 n.1, 2017. OpenGeostat, 2018. PyGSLIB (https://github.com/opengeostat/pygslib) Pandas, 2018. Proyecto Pandas (https://pandas.pydata.org/)

Page 6: Adrian Martínez Vargas1 - proexplo.com.pe · para desarrollar el proceso de estimación. El mejor ejemplo de software comercial con esta funcionalidad es Datamine Studio, el cual

NOTASPyGSLIB, UN PAQUETE PYTHON CON

CÓDIGO ABIERTO PARA LA ESTIMACIÓN

DE RECURSOS MINERALES

Adrian Martínez Vargas