Comprehensive mining and metallurgical engineering library
Project description
¿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.
Requisitos
- Python >= 3.10
- NumPy, SciPy, Pandas, Matplotlib, Plotly
Licencia
MIT License — ver LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad726c788fe4371e895f95dccb526fdf7813ee5c072d8f373ebc89b478977239
|
|
| MD5 |
90357c2f5a77c135087e387a71ea1210
|
|
| BLAKE2b-256 |
2f47023a1f03db1ce1d2caa00fe0a68ea229932a7f740c0fb56ae3007fb23759
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8958e2b1fdedd066c623d7b70db5e68cfc1c0fb6c16a53a8b78fdb218cf87042
|
|
| MD5 |
f74475ab2400f7ab904e9f2dd65235fe
|
|
| BLAKE2b-256 |
d2887b12a2a5d8a8e17413b50380f53c32e0eb8f642b8653efc6d2463938b990
|