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.
Metadata
Release files for assaycalc 0.2.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| assaycalc-0.2.1.1.tar.gz | 6.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| assaycalc-0.2.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.8 kB
Release files / assaycalc-0.2.1.1.tar.gz
| Download URL | assaycalc-0.2.1.1.tar.gz |
|---|---|
| Size | 6.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
12ffafde74911e688c0dd13bfad533624567a297c862121421d1f7a7cc2be79e
|
|
BLAKE2b-256 checksum How to use checksums |
13844b331297d6d9e7c9677e596ce5820a816613021c75a46759344747f853c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Release files / assaycalc-0.2.1.1-py3-none-any.whl
| Download URL | assaycalc-0.2.1.1-py3-none-any.whl |
|---|---|
| Size | 5.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d6886eea4982860f65d95877e01afad87fd731c41553e9d883f33d5bd16022e8
|
|
BLAKE2b-256 checksum How to use checksums |
f740fa4ec6d54dfe84931afc5e24c9dd5abb72924b0b50402676ad13505da04b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|