# ======================================================
# Universidad Central del Ecuador
# FACULTAD DE INGENIERÍA EN GEOLOGÍA, MINAS, PETRÓLEOS Y AMBIENTAL
# CARRERA DE INGENIERÍA EN MINAS
# SOFTWARE MINERO
# TEMA: DESNORMALIZACIÓN DE DATOS ESTIMADOS
# AUTORES: Mónica Alejandro, Antonio Chulde, Wendy Montenegro, Johan Morales, Bryan Pastrano
# FECHA: 23/07/2025
# ======================================================
# Establecer directorio de trabajo
setwd("/cloud/project")
# Definir valor común del mínimo logarítmico
minlog <- -2
# FUNCIÓN GENERAL PARA DESNORMALIZAR VARIABLES
desnormalizar_datos <- function(archivo_csv, patron_estimacion, patron_varianza,
nombre_salida, nombre_ppm, nombre_var_desnorm) {
cat("\nProcesando archivo:", archivo_csv, "\n")
# Leer archivo CSV
datos <- read.csv(archivo_csv)
# Mostrar nombres de columnas para verificar
print(colnames(datos))
# Buscar columnas por nombre aproximado
col_estim <- grep(patron_estimacion, colnames(datos), value = TRUE)[1]
col_var <- grep(patron_varianza, colnames(datos), value = TRUE)[1]
# Validar existencia
if (is.na(col_estim) | is.na(col_var)) {
stop(paste("No se encontraron columnas con patrones:", patron_estimacion, "y/o", patron_varianza))
}
# Extraer variables
estim <- datos[[col_estim]]
varianza <- datos[[col_var]]
# Desnormalizar
datos[[nombre_ppm]] <- 10^(estim + minlog) - 0.01
datos[[nombre_var_desnorm]] <- 10^(varianza + minlog) - 0.01
# Exportar CSV
write.csv(datos, nombre_salida, row.names = FALSE)
cat("Archivo exportado exitosamente:", nombre_salida, "\n")
# Mostrar primeras filas
print(head(datos[, c(col_estim, nombre_ppm, col_var, nombre_var_desnorm)]))
}
# ========================================
# 1. Ni - Nivel Superior
# ========================================
desnormalizar_datos(
archivo_csv = "estimacion_Ni_bloques.csv",
patron_estimacion = "estimacion.*[Nn]i$",
patron_varianza = "estimacion.*[Nn]i.*var",
nombre_salida = "estimacion_desnormalizada_Ni_Sup.csv",
nombre_ppm = "Ni_ppm_sup",
nombre_var_desnorm = "Ni_var_sup_desnorm"
)
##
## Procesando archivo: estimacion_Ni_bloques.csv
## [1] "X" "Y" "Z"
## [4] "estimacion_Ni" "estimacion_Ni_krig_var"
## Archivo exportado exitosamente: estimacion_desnormalizada_Ni_Sup.csv
## estimacion_Ni Ni_ppm_sup estimacion_Ni_krig_var Ni_var_sup_desnorm
## 1 2.95461 8.997619 0.193909 0.005628201
## 2 2.89726 7.883325 0.211921 0.006289997
## 3 3.02535 10.591077 0.181004 0.005170643
## 4 3.04765 11.149635 0.166369 0.004667936
## 5 2.99573 9.892161 0.178478 0.005082662
## 6 2.92095 8.325852 0.201525 0.005904682
# ========================================
# 2. Cu - Nivel Superior
# ========================================
desnormalizar_datos(
archivo_csv = "estimacion_cu_bloques1.csv",
patron_estimacion = "estimacion.*[Cc]u$",
patron_varianza = "estimacion.*[Cc]u.*var",
nombre_salida = "estimacion_desnormalizada_Cu_Sup.csv",
nombre_ppm = "Cu_ppm_sup",
nombre_var_desnorm = "Cu_var_sup_desnorm"
)
##
## Procesando archivo: estimacion_cu_bloques1.csv
## [1] "X" "Y" "Z"
## [4] "estimacion._Cu" "estimacion_Cu_krig_var"
## Archivo exportado exitosamente: estimacion_desnormalizada_Cu_Sup.csv
## estimacion._Cu Cu_ppm_sup estimacion_Cu_krig_var Cu_var_sup_desnorm
## 1 3.37792 23.86371 0.302097 0.010049198
## 2 3.28953 19.46736 0.331156 0.011436605
## 3 3.48323 30.41496 0.279897 0.009050089
## 4 3.53479 34.25021 0.252226 0.007874175
## 5 3.44755 28.01528 0.275020 0.008837358
## 6 3.32816 21.27923 0.314487 0.010629419
# ========================================
# 3. Ni - Nivel Inferior
# ========================================
desnormalizar_datos(
archivo_csv = "estimacion_Ni_inferior.csv",
patron_estimacion = "estimacion.*[Nn]i[_]*inf$",
patron_varianza = "estimacion.*[Nn]i[_]*inf.*var",
nombre_salida = "estimacion_desnormal_Ni_inf.csv",
nombre_ppm = "Ni_ppm_inf",
nombre_var_desnorm = "Ni_var_inf_desnorm"
)
##
## Procesando archivo: estimacion_Ni_inferior.csv
## [1] "X" "Y"
## [3] "Z" "estimacion_Ni_inf"
## [5] "estimacion_Ni_inf_krig_var"
## Archivo exportado exitosamente: estimacion_desnormal_Ni_inf.csv
## estimacion_Ni_inf Ni_ppm_inf estimacion_Ni_inf_krig_var Ni_var_inf_desnorm
## 1 3.31321 20.55885 0.491263 0.02099296
## 2 3.31267 20.53329 0.492751 0.02109933
## 3 3.32704 21.22440 0.487453 0.02072225
## 4 3.32610 21.17849 0.488495 0.02079605
## 5 3.32515 21.13219 0.489728 0.02088361
## 6 3.32422 21.08697 0.491136 0.02098389