Librería para leer, validar y procesar datos de ensayos geológicos (assay) de sondajes mineros.
Project description
assaycalc
Herramientas en Python para el procesamiento y validación de datos de assay geológico (sondajes de exploración minera).
Instalación
pip install assaycalc
Uso rápido
from assaycalc import leer_csv_assay, validar_assay, componer_assay, guardar_csv
COLUMNAS_LEY = ["Cu_pct"] # Agrega aquí cualquier otra ley: "Au_gpt", "Ag_gpt", etc.
# 1. Leer datos de assay desde un CSV
df = leer_csv_assay("assay_original.csv", columnas_ley=COLUMNAS_LEY)
# 2. Validar integridad de los datos
validar_assay(df, columnas_ley=COLUMNAS_LEY)
# 3. Generar compósitos de 2 metros ponderados por cada ley indicada
df_compositos = componer_assay(df, longitud_composito=2.0, columnas_ley=COLUMNAS_LEY)
# 4. Guardar el resultado (usa separador=";" si vas a abrirlo directo en Excel en español)
guardar_csv(df_compositos, "assay_compuesto.csv")
Formato de entrada esperado
El CSV debe contener, como mínimo, estas columnas:
| Columna | Descripción |
|---|---|
hole_id |
Identificador del sondaje |
from |
Profundidad inicial del intervalo (m) |
to |
Profundidad final del intervalo (m) |
Además, debe incluir una o más columnas de ley (por ejemplo Cu_pct, Au_gpt, Ag_gpt), indicadas explícitamente mediante el parámetro columnas_ley en cada función.
Validaciones incluidas
validar_assay() verifica automáticamente:
- Que no existan
hole_idvacíos - Que todos los intervalos tengan
from < to - Que no existan leyes negativas en ninguna de las columnas indicadas en
columnas_ley - Que no existan intervalos solapados dentro de un mismo sondaje
Si alguna validación falla, se lanza un ValueError con el detalle del problema.
Compositado
componer_assay() divide cada sondaje en intervalos de longitud fija (por ejemplo, cada 2 metros) y calcula, para cada ley indicada en columnas_ley, el promedio ponderado por la longitud de cada intervalo original que cae dentro del compósito.
Trabajando con Collar (ubicación de sondajes)
Además de Assay, assaycalc permite leer y validar la tabla Collar, que contiene la ubicación de cada sondaje.
from assaycalc import leer_csv_collar, validar_collar, validar_integridad_referencial
# 1. Leer datos de collar desde un CSV
df_collar = leer_csv_collar("collar.csv")
# 2. Validar integridad de collar (hole_id sin vacíos ni duplicados)
validar_collar(df_collar)
# 3. Verificar que todo hole_id de assay tenga su collar correspondiente
validar_integridad_referencial(df_collar, df)
Formato de entrada esperado (Collar)
| Columna | Descripción |
|---|---|
hole_id |
Identificador del sondaje (único) |
x |
Coordenada X del collar |
y |
Coordenada Y del collar |
z |
Coordenada Z (elevación) del collar |
Validaciones incluidas (Collar)
validar_collar() verifica que no existan hole_id vacíos ni duplicados (cada sondaje debe tener una única fila de collar).
validar_integridad_referencial() verifica que todo hole_id presente en Assay exista también en Collar, evitando sondajes "huérfanos" sin ubicación conocida.
Exportar resultados
guardar_csv() acepta parámetros opcionales separador y codificacion. Por defecto usa coma (,) como separador, el estándar universal de CSV. Si vas a abrir el archivo con doble clic en Excel configurado en español, usa separador=";" para evitar que todo aparezca en una sola columna.
Licencia
MIT — ver LICENSE para más detalles.
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 assaycalc-0.2.0.3.tar.gz.
File metadata
- Download URL: assaycalc-0.2.0.3.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33b1d68f3439cb5c19a234d535fb4a80b548837a61d827f83bb0bd8991f20eea
|
|
| MD5 |
7ab1dfd1ad5d4e31347bd14974333e0f
|
|
| BLAKE2b-256 |
05c1af26c11d9f1921c868fdcac1919906b7f4e99ceba57c3ffc02fa9f6d6302
|
File details
Details for the file assaycalc-0.2.0.3-py3-none-any.whl.
File metadata
- Download URL: assaycalc-0.2.0.3-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bec83fee2e23930af48741986938b06572132d3338e52a8019ea48eccdb27f2f
|
|
| MD5 |
4ddb484ca9764bb5fd383a415d39f23c
|
|
| BLAKE2b-256 |
c946f9b560449a5873ce2b15d4acfac3d5ae2af4b82bf6a2c37b1c3381a70bf0
|