GeoEstimaLib: nuestra librería Python para la Geoestadística

En los últimos años, en GeoEstima hemos incorporado Python como una herramienta fundamental dentro de nuestros flujos de trabajo. Python es un lenguaje de programación de alto nivel, interpretado y de propósito general. Además, es open source (código abierto), lo que significa que cualquier persona puede utilizarlo, modificarlo y mejorarlo libremente. Su popularidad en el análisis de datos se debe a su sintaxis clara y a la gran cantidad de librerías disponibles que permiten trabajar eficientemente con grandes volúmenes de información.

Gracias a Python, hemos podido abordar de forma eficiente los archivos de gran tamaño que manejamos diariamente, como los modelos de bloques generados en los procesos de estimación de recursos. Esta herramienta ha sido clave tanto en el análisis exploratorio de las bases de datos como en la validación de los modelos, facilitando la generación de gráficos personalizados que permiten interpretar de mejor manera los resultados.

👉 Puedes conocer más sobre este proceso en nuestro blog: Aspectos relevantes a considerar durante un modelo de Recursos Minerales.

Además del análisis de datos, Python nos permite automatizar diversos procesos internos, como el control de horas por proyecto y la marcación de polígonos directamente sobre el modelo de bloques, mejorando así la eficiencia operativa y reduciendo errores manuales.

Desarrollo de una librería interna

A medida que fuimos desarrollando distintos scripts, surgió la necesidad de distribuir ese conocimiento de manera estructurada entre los profesionales del equipo. Esto nos llevó a implementar una solución más robusta: el desarrollo de una librería interna de Python.

Una librería de Python es un conjunto de módulos que contienen funciones, clases y objetos reutilizables diseñados para resolver tareas específicas y extender las capacidades del lenguaje. Al organizar nuestro código en una librería, pudimos:

  • Mantener un control de versiones.
  • Facilitar la colaboración y el mantenimiento.
  • Garantizar el correcto funcionamiento del código.
  • Asegurar la trazabilidad de los cambios.

Actualmente, nuestra librería se encuentra en la versión 2.3.3 y está alojada en un repositorio privado de GitHub.

Principales módulos de la librería

La librería cuenta con diferentes módulos especializados que cubren las principales etapas de análisis y validación en la estimación de recursos:

• Módulo QAQC
Incluye gráficos específicos para el control de calidad de las muestras, como el análisis de duplicados, blancos y estándares.

Ejemplo: Gráfico de control QAQC

• Módulo EDA (Análisis Exploratorio de Datos)
Permite analizar la distribución y variabilidad espacial de las variables. Se implementaron gráficos como box plots, histogramas, probabilidad acumulada, scatter plots, swath plots, análisis de contacto, entre otros.

Ejemplo: Gráfico de contacto para analizar la ley de mineral entre dominios

• Módulo de Validación
Contiene los gráficos necesarios para validar los resultados del modelo, como el tonelada-ley, swath plot y el scatter plot superblock.

Ejemplo: Swath plots

• Módulo Geotools
Ofrece herramientas para validar simulaciones, generar gráficos tipo Sankey (para visualizar cambios en la clasificación de recursos) y marcar polígonos directamente sobre el modelo de bloques.

Ejempo: Gráfico de variabilidad de las simulaciones por categoría y malla

Buenas prácticas: tests y documentación

Para asegurar la calidad del código, cada módulo incluye tests automatizados que validan los cálculos matemáticos asociados a cada gráfico. Además, disponemos de una documentación interna accesible para todos los miembros del equipo, la cual describe en detalle el uso de cada función, sus parámetros y ejemplos prácticos.

Foto de la documentación

A continuación, se muestra un ejemplo de cómo utilizar el gráfico swath plot del módulo Validación. Primero, se importa la librería, luego, se crea una instancia del objeto Validation, y, finalmente, se llama al método correspondiente con los parámetros definidos:

Ejemplo de cómo utilizamos la librería

Este tipo de interfaz busca simplificar el uso de las herramientas desarrolladas, lo que permite que cualquier miembro del equipo pueda integrarlas fácilmente en sus análisis.

Trabajos futuros

Actualmente, nos encontramos desarrollando la versión 2.4.0, que incluirá nuevos gráficos y funcionalidades orientadas a seguir optimizando nuestros procesos. Cada nueva versión incorpora mejoras surgidas a partir de la retroalimentación del equipo en un proceso de mejora continua que busca entregar herramientas más completas, intuitivas y alineadas con las necesidades de nuestros clientes.