Skip to main content

Comprehensive mining and metallurgical engineering library

Project description

MineLab

La caja de herramientas que todo ingeniero de minas merece tener en Python.

PyPI Python Tests License: MIT


¿Qué es MineLab?

MineLab nació de una convicción simple: los cálculos que hacemos los ingenieros de minas merecen algo mejor que hojas de cálculo desordenadas, scripts sueltos y fórmulas copiadas a mano.

Soy Ingeniero de Minas y Metalurgia, y también un entusiasta de la programación. MineLab es la librería que me habría gustado tener desde el primer día de carrera — un solo lugar donde encontrar las fórmulas de Bieniawski, los modelos de Kuz-Ram, el kriging ordinario, el análisis de NPV, el diseño de flotación, y cientos de herramientas más, todas validadas, documentadas y listas para usar.

Los números que respaldan esta v0.1.0:

  • 388 funciones cubriendo 16 módulos de ingeniería minera
  • 897 tests con 94% de cobertura de código
  • Cada función incluye referencias bibliográficas a las fórmulas originales
  • Compatible con Python 3.10 – 3.13

Instalación

pip install minelab

Inicio Rápido

import minelab as ml

# --- Economía minera ---
van = ml.npv(rate=0.10, cashflows=[-100_000, 30_000, 35_000, 40_000, 45_000])
print(f"VAN del proyecto: ${van:,.0f}")

# --- Geomecánica: clasificación de macizo rocoso ---
rmr = ml.rmr_bieniawski(
    ucs_rating=12, rqd_rating=17, spacing_rating=10,
    condition_rating=20, groundwater_rating=10, orientation_adj=-5,
)
print(f"RMR89: {rmr}")

# --- Geoestadística: variograma experimental ---
from minelab.geostatistics import experimental_variogram
lags, gamma = experimental_variogram(
    coordinates=coords, values=grades, n_lags=15, lag_size=50.0
)

# --- Procesamiento de minerales: recuperación por flotación ---
rec = ml.flotation_recovery(feed_grade=1.2, concentrate_grade=28.0, tail_grade=0.15)
print(f"Recuperación: {rec:.1f}%")

# --- Perforación y voladura: fragmentación Kuz-Ram ---
x50 = ml.kuz_ram_x50(powder_factor=0.5, rock_factor=8.0, charge_weight=150.0)
print(f"Fragmentación media (x50): {x50:.1f} cm")

También puedes importar desde submódulos específicos:

from minelab.economics import npv, irr, monte_carlo_simulation
from minelab.geostatistics import ordinary_kriging, experimental_variogram
from minelab.geomechanics import hoek_brown_failure, rmr_bieniawski

Módulos

Módulo Descripción
utilities Conversiones de unidades, base de datos de minerales, validadores, estadística
geostatistics Variogramas, kriging, simulación, modelos de bloques
mine_planning Optimización de pit, ley de corte, scheduling
geomechanics Clasificación de macizo rocoso, estabilidad de taludes, soporte
mineral_processing Conminución, flotación, lixiviación, balance metalúrgico
equipment Ciclo de camiones, match factor, productividad de flota
drilling_blasting Diseño de voladura, fragmentación Kuz-Ram, vibración
ventilation Resistencia de vías, Hardy Cross, selección de ventiladores
economics VAN, TIR, Monte Carlo, análisis de sensibilidad
environmental Drenaje ácido, balance hídrico, relaves
production Blending, control de leyes, stockpiles
resource_classification JORC 2012, NI 43-101
data_management Sondajes, compositos, desurvey, formatos I/O
underground_mining Caserones, convergencia-confinamiento, room & pillar, relleno
hydrogeology Ensayos de acuífero, desaguado de rajo, química de aguas
surveying Volumetría, coordenadas UTM, topografía de tronaduras

Esto es solo el comienzo

MineLab v0.1.0 es la primera versión pública — la primera piedra de algo mucho más grande. En el camino vienen:

  • Más funciones y módulos especializados
  • Documentación completa con tutoriales en español
  • Ejemplos con datos reales de la industria
  • Integración con flujos de trabajo geomineros

¿Quieres contribuir? Toda ayuda es bienvenida: reporta bugs, sugiere funciones, o envía un pull request. Este proyecto se construye mejor en comunidad.


Autor

Argenis Marin — Ingeniero de Minas y Metalurgia, entusiasta de la programación y la automatización aplicada a la minería.

GitHub LinkedIn


Requisitos

  • Python >= 3.10
  • NumPy, SciPy, Pandas, Matplotlib, Plotly

Licencia

MIT License — ver LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

minelab-0.1.1.tar.gz (316.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

minelab-0.1.1-py3-none-any.whl (247.5 kB view details)

Uploaded Python 3

File details

Details for the file minelab-0.1.1.tar.gz.

File metadata

  • Download URL: minelab-0.1.1.tar.gz
  • Upload date:
  • Size: 316.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for minelab-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ad726c788fe4371e895f95dccb526fdf7813ee5c072d8f373ebc89b478977239
MD5 90357c2f5a77c135087e387a71ea1210
BLAKE2b-256 2f47023a1f03db1ce1d2caa00fe0a68ea229932a7f740c0fb56ae3007fb23759

See more details on using hashes here.

File details

Details for the file minelab-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: minelab-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 247.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for minelab-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8958e2b1fdedd066c623d7b70db5e68cfc1c0fb6c16a53a8b78fdb218cf87042
MD5 f74475ab2400f7ab904e9f2dd65235fe
BLAKE2b-256 d2887b12a2a5d8a8e17413b50380f53c32e0eb8f642b8653efc6d2463938b990

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page