Vous êtes sur la page 1sur 17

Programas de computadora para

krigear bloques
por

Marco Antonio Alfaro Sironvalle

Noviembre, 2009

N
Z = �li Z ( xi )
*
V
i =1

1
l1g ( x1 , x1 ) + l2g ( x1 , x2 ) + ... + lN g ( x1 , xN ) + m = g ( x1 , x)dx
V V�
1
l1g ( x2 , x1 ) + l2g ( x2 , x2 ) + ... + lN g ( x2 , x N ) + m = g ( x2 , x)dx
V V�
...................................................................................
1
l1g ( xN , x1 ) + l2g ( xN , x2 ) + ... + lN g ( xN , xN ) + m = g ( xN , x )dx
V V�
l1 + l2 + ... + lN = 1

0
Programas para krigear bloques.
por

Marco Antonio Alfaro Sironvalle

1. Introducción.

Los programas (krigeado1.exe, etc…) sirven para krigear bloques de igual tamaño en el en
el espacio de tres dimensiones. Son compatibles con Windows XP y Vista, W7 y fueron
programados en el lenguaje “PowerBasic”. El PowerBasic contiene un compilador el cual
genera programas ejecutables muy rápidos en su ejecución (más rápidos que C++).

El programa de krigeado es el más rápido del mercado (según comprobaciones realizadas


en Octubre de 2008, versus Vulcan, Gemcom, Isatis, DataMine y MineSight) y trabaja en
doble precisión. Muchos de los paquetes tradicionales trabajan en precisión simple, lo cual
produce pérdida de decimales en el caso de usar coordenadas UTM.

La rapidez de los cálculos del programa de krigeado se basa principalmente en:

 Una programación eficiente, utilizando conceptos geoestadísticos para optimizar los


cálculos.
 La solución del sistema lineal de ecuaciones de krigeado ha sido optimizada para
mayor velocidad.
 La búsqueda de compósitos dentro de la vecindad de un bloque se realiza según un
algoritmo optimizado.

El programa se basa en resolver, para cada bloque, el sistema lineal clásico de krigeado
ordinario:
N
ZV* = �li Z ( xi )
i =1

1
l1g ( x1 , x1 ) + l2g ( x1 , x2 ) + ... + lN g ( x1 , xN ) + m = g ( x1 , x)dx
V V�
1
l1g ( x2 , x1 ) + l2g ( x2 , x2 ) + ... + lN g ( x2 , xN ) + m = g ( x2 , x )dx
V V�
...................................................................................
1
l1g ( xN , x1 ) + l2g ( xN , x2 ) + ... + lN g ( xN , xN ) + m = � g ( xN , x)dx
VV
l1 + l2 + ... + lN = 1

1
Que es un sistema lineal de N+1 ecuaciones con N+1 incógnitas.

En que:

V simboliza el bloque, un paralelepípedo de lados lx, ly, lz a estimar.


λi es el peso del dato Zi.
μ es el parámetro de Lagrange.
N es el número de datos en la vecindad del bloque.
γ es el modelo de variograma correspondiente a los datos en estudio (puede ser esférico,
exponencial, cuadrático, gaussiano o cúbico).
xi es la coordenada del dato Zi.

Si se utiliza un modelo autorizado (esférico, exponencial, cuadrático, ...) el sistema anterior


siempre tiene solución, salvo el caso (bastante común en la práctica) en que, erróneamente,
existen dos (o más) compósitos con iguales coordenadas en la base de datos.

El costo que hay que pagar por tener un programa más rápido y de mayor precisión es que
solo se debe correr de manera única el programa y ningún otro, es decir el programa debe
ocupar todos los recursos de la computadora.

En consecuencia, si se cliquea (mientras está corriendo el programa) con el mouse fuera de


la ventana del programa, el cálculo “se cae”, aparece el reloj de arena (o el temporizador) y
el computador podría quedar “colgado”.

Todos los programas son portables y no requieren instalación. No son “bloatware”.

Por ejemplo variogramas.exe ocupa un espacio en disco de 29 K , es decir cero (¡somos


enemigos del “bloatware” o “software guatón”!) y se puede copiar el programa en el
mismo directorio en el cual están los datos de los compósitos y de los bloques.

El número máximo de compósitos que admite el programa es de 4,294,967,295 , es decir


infinito, si la memoria de la computadora lo permite.

Los programas fueron comprobados “a mano” y se encontraron los mismos resultados, lo


cual no ocurre con los paquetes tradicionales.

2
2. Las ventanas.

Las figuras 1a y 1b muestran las ventanas de los programas “krigeado1.exe” y


“krigeado2.exe”

Figura 1a: krigeado1.exe. Programa en el cual el variograma posee una sola estructura, es decir un solo
alcance y una sola meseta (anisotrópicos).

3
Figura 1b: krigeado1R.exe. Programa en el cual el variograma posee una estructuras, con restricción de
“Top Cut” para valores anormalmente grandes.

krigeado1R.exe y krigeado2R.exe

Existen dos programas adicionales, “krigeado1R.exe” y “krigeado2R.exe” los cuales se


utilizan en el caso de tener que filtrar leyes anormalmente altas en un cierto radio. Por
ejemplo, en una mina de oro se puede definir un valor de corte (llamado a veces “topcut”)
para las leyes anormalmente altas (llamadas a veces “outliers”) de 20g/t. Si se define un
radio de 5 metros, entonces la influencia de todos los compósitos con leyes mayores que
20g/t quedará reducida a una esfera con centro el compósito y radio de 5 metros.

4
3. Archivos.

Archivo de compósitos.

Es el archivo que contiene la información de los compósitos (ya regularizados a un largo


constante l). Este archivo es un archivo de texto, contiene obligatoriamente 4 columnas,
con el orden siguiente: x (coordenada este), y (coordenada norte), z (cota o elevación),
variable (ley u otra característica). Los datos están separados por espacios o por comas (no
importa su orden).

Ejemplos: Se tienen dos extractos de archivos válidos:

Archivo 1. Datos x, y, z, ley de cobre, separados por uno o más espacios:

518469.0 7412547.0 2624.413 2.84


518467.0 7412547.0 2620.417 1.34
518466.0 7412548.0 2615.719 1.21
518464.0 7412548.0 2611.023 1.45
518462.0 7412549.0 2606.332 1.44
518461.0 7412549.0 2601.643 1.71
518459.0 7412550.0 2596.957 1.09
518457.0 7412550.0 2592.274 1.07
518456.0 7412551.0 2587.594 2.22
518454.0 7412551.0 2582.917 2.16
518452.0 7412552.0 2578.242 1.13
…………………………………..

Archivo 2 . Datos x, y, z, ley de oro, separados por comas:

2849.962,1996.995,2620.779,4.23
2854.385,1940.833,2627.223,1.30
2918.053,2252.848,2563.482,8.58
2934.321,2283.415,2530.368,12.11
2972.592,2355.768,2567.101,0.96
2992.977,2499.723,2552.387,1.65
2994.069,2399.564,2549.021,2.75
2999.440,3393.222,2319.290,3.55
3011.153,3408.896,2178.548,2.41
3012.128,2406.602,2562.350,1.02
3015.462,2900.301,2411.869,2.84
…………………………………

Este tipo de archivos tiene, a veces la extensión “csv” (comma separated variables) y puede
ser leído con el Excel (siempre que no sea demasiado grande: en este caso se puede usar un
editor de texto como el “Kedit”).

5
Observaciones:

 El símbolo coma “,” sirve para separar datos contiguos. El símbolo decimal es el
punto “.”. Luego el computador debe estar configurado para tal efecto. Para ello ir a
Panel de Control – Configuración Regional – Personalizar, y, en símbolo decimal,
poner “.”. Si su computadora está configurada con símbolo decimal = “,”, entonces
el programa no funcionará correctamente.
 El archivo no debe tener encabezado ni líneas en blanco es decir, el número total de
líneas es igual al número de compósitos.
 El usuario es el que debe preparar los archivos. Por ejemplo separar todos los
compósitos correspondientes a una misma unidad geológica en un solo archivo x, y,
z, variable. Siempre el archivo debe tener 4 columnas. Si los datos son
bidimensionales, una de las tres primeras columnas es constante.
Se puede utilizar un editor de texto para preparar el archivo de entrada.
 Se recomienda hacer previamente un análisis estadístico de la variable, con el
propósito de encontrar media, varianza y valores anómalos altos o anómalos bajos.

Archivo de bloques.

Este archivo de texto contiene obligatoriamente 4 columnas: x, y, z, t las cuales


corresponden a los centroides de los bloques. La última columna es arbitraria. Ejemplos de
archivos válidos:

3470.00 4330.00 2066.00 1


3490.00 4330.00 2066.00 1
3510.00 4330.00 2066.00 1
3530.00 4330.00 2066.00 1
3490.00 4350.00 2066.00 1
3510.00 4350.00 2066.00 1
3510.00 4370.00 2066.00 1
3390.00 3850.00 2048.00 1
3390.00 3870.00 2048.00 1
3410.00 3870.00 2048.00 1
3370.00 3890.00 2048.00 1
3390.00 3890.00 2048.00 1
3410.00 3890.00 2048.00 1
3390.00 3910.00 2048.00 1
3410.00 3910.00 2048.00 1
.............................................

Correspondiente al modelo de bloques de Chuquicamata (coordenadas locales). La última


columna (con valor “1”) no es usada por el programa.

6
333690.00,6894690.00,-190.00,52.1
333710.00,6894690.00,-190.00,41.2
333730.00,6894690.00,-190.00,39.6
333750.00,6894690.00,-190.00,40.0
333770.00,6894690.00,-190.00,32.7
333790.00,6894690.00,-190.00,36.8
333810.00,6894690.00,-190.00,45.2
333830.00,6894690.00,-190.00,34.6
332190.00,6892990.00,-210.00,33.9
332210.00,6892990.00,-210.00,21.7
...................................................

Correspondiente al modelo de bloques de Boquerón Chañar (coordenadas UTM). En este


caso la última columna corresponde a la ley de hierro (el programa no usa esta última
columna).

Los bloques pueden estar en cualquier orden pero conviene que estén ordenados por
bancos.

El número total de líneas de este archivo coincide con el número de bloques a krigear. Si un
bloque no se puede krigear (principalmente porque hay pocos datos), entonces escribe una
ley igual a -1.0.

El usuario es el que debe preparar los archivos de bloques y de compósitos. Por ejemplo
separar todos los bloques y compósitos correspondientes a una misma unidad geológica en
un solo archivo x, y, z. Este archivo siempre debe tener 4 columnas (poner un nombre
nemotécnico, por ejemplo “CompoOxidos.xyz”, “BloquesOxidos.xyz”. Si los datos son
bidimensionales, una de las tres columnas correspondiente a las coordenadas (por lo
general z) es constante.

Archivo de salida.

El archivo de salida es generado por el programa y contiene los resultados del cálculo, y es
un archivo csv (datos separados por coma), al cual conviene ponerle la extensión “csv” para
poder ser leído con el Excel o un editor de texto.

Un ejemplo de este tipo de archivos (al cambiar coma por espacios) es:

x y z Au e d N
2534712.50 6713242.50 1857.50 2.41 1.24 6.00 32.00
2534712.50 6713242.50 1862.50 2.45 1.22 4.80 32.00
2534712.50 6713247.50 1802.50 1.80 1.88 27.10 32.00
2534712.50 6713247.50 1807.50 2.23 1.88 31.40 32.00
2534712.50 6713247.50 1812.50 2.11 1.88 31.40 32.00
2534712.50 6713247.50 1817.50 2.55 1.95 30.10 32.00
2534712.50 6713247.50 1822.50 2.75 1.95 29.10 32.00

7
2534712.50 6713247.50 1827.50 3.96 1.92 28.30 32.00
2534712.50 6713247.50 1832.50 3.60 1.90 25.40 32.00
2534712.50 6713247.50 1837.50 3.55 1.85 21.30 32.00
2534712.50 6713247.50 1842.50 3.28 1.77 17.30 32.00
2534712.50 6713247.50 1847.50 2.84 1.64 13.60 32.00
2534712.50 6713247.50 1852.50 2.75 1.49 10.50 32.00
2534712.50 6713247.50 1857.50 2.53 1.37 8.60 32.00
2534712.50 6713247.50 1862.50 2.41 1.40 8.60 32.00
2534712.50 6713252.50 1802.50 1.53 1.88 29.30 32.00
2534712.50 6713252.50 1807.50 2.18 1.88 30.70 32.00
2534712.50 6713252.50 1812.50 2.42 1.89 32.50 32.00
2534712.50 6713252.50 1817.50 2.45 1.92 30.90 32.00
2534712.50 6713252.50 1822.50 3.18 1.92 28.50 32.00

Correspondiente a un extracto del modelo de bloques de la mina de oro de Gualcamayo,


editado con Excel.

En este caso, el tratamiento de las coordenadas UTM del orden de 6,713,247,50 ocasiona
problemas si el programa es de simple precisión.
En este tipo de archivo:

 x es la coordenada Este del centroide del bloque


 y es la coordenada Norte del centroide del bloque
 z es la cota del centroide del bloque
 Au es la ley krigeada del bloque de coordenadas (x, y, z). Podría ser otra variable
(Ag, CuT, CuS, Mo, As, etc.)
 e es la desviación estándar del error de estimación del bloque (una medida del
error)
 d es la distancia entre el centroide del bloque y el compósito más cercano
 N es el número de compósitos dentro de la vecindad de estimación del bloque

Los parámetros e, d, N se utilizan a menudo para categorizar el bloque (medido, indicado e


inferido)

Lados del bloque.

Corresponden a las dimensiones del bloque o celda V, es decir del paralelepípedo de lados
lx, ly, lz, según los ejes (x, y, z), tal como muestra la figura 2:

8
Figura 2: Dimensiones del bloque.

El programa funciona solamente con bloques de tamaño constante. No se pueden krigear


sub bloques o sub celdas.

Discretización del bloque.

Si observamos el sistema clásico de krigeado ordinario, se observa que en el segundo


miembro aparecen unas integrales, las cuales se realizan dentro del paralelepípedo V.
Estas integrales se calculan por aproximación al discretizar el bloque V, es decir al dividirlo
en (kx, ky, kz) sub bloques, tal como muestra la figura 3:

Figura 3: Discretización del bloque V . En este caso se asocia el bloque de lados (lx, ly, lz) a 32 puntos: kx =
4, ky = 4, kz = 2 localizados en los centroides de las celdas. El valor de kz = 2 se justifica porque el largo del
compósito, en este caso, es igual a la mitad de la altura del bloque. Si el largo del compósito coincide con la
altura del bloque, entonces hay que tomar kz = 1.

9
Mientras mayor sea la discretización de V , mejor será la aproximación de las integrales
del segundo miembro (sin embargo los cálculos serán más lentos).

Radios de búsqueda.

Corresponden a los radios de un elipsoide cuyo centro es el centroide del bloque. El


programa busca todos los compósitos N que caen dentro de este elipsoide (llamado a
veces vecindad de estimación), según un algoritmo optimizado.

Figura 4: Radios de búsqueda en las direcciones (x, y, z). Se miden desde el centroide del bloque. Constituyen
lo que se llama vecindad deslizante o vecindad móvil.

En una primera aproximación, conviene tomar los radios de búsqueda iguales a los alcances
de los variogramas en las direcciones correspondientes.

Mínimo de compósitos para krigear un bloque.

Corresponde al número kmin, mínimo de compósitos para krigear un bloque. Conviene


elegir este valor como un número superior o igual a 2 para evitar la situaciones como la de
la figura 5, en la cual se estima el bloque con 1 solo compósito (extrapolación peligrosa).

Figura 5:. En verde bloques y compósitos bajo la ley de corte. En rojo, compósitos y bloques sobre la ley de
corte. En gris, bloques que no se pueden estimar (indeterminados). Si kmin = 1, el programa asignará una ley
(la misma ley del compósito) al bloque V

10
Máximo de compósitos para krigear un bloque.

Corresponde al número kmax, máximo de compósitos para krigear un bloque. Este valor
se define para que los cálculos sean más rápidos. El programa solo usa los kmax
compósitos más cercanos al centro del bloque V (ver las figuras 6a y 6b).

Figura 6a: Si kmax = 8, solo se utilizarán los 8 compósitos más cercanos al centroide del bloque V.
Observamos que en la vecindad hay 52 compósitos.

Figura 6b: Si kmax = 8, estos son los compósitos usados para estimar el bloque V.

En el caso tridimensional, hay que elegir un número más grande para el máximo de
compósitos (la práctica recomienda múltiplos de 8: 16, 24, 32, ...).

Modelo de variograma.

Corresponde al modelo de variograma de los datos, según la convención siguiente:

Esférico 1
Exponencial 2
Cuadrático 3

11
Gaussiano 4
Cúbico 5

En el caso de tener un variograma lineal, se debe ajustar al variograma experimental un


variograma esférico de gran alcance.

Alcances del variograma.

Corresponden a los alcances del modelo de variograma.

Si hay una sola estructura, se tiene:

alcx alcance del variograma en la dirección del eje x


alcy alcance del variograma en la dirección del eje y
alcz alcance del variograma en la dirección del eje z

Si hay dos estructuras, se tiene:

alcx 1 alcance de la primera estructura del variograma según eje x


alcy 1 alcance de la primera estructura del variograma según eje y
alcz 1 alcance de al primera estructura del variograma según eje z

alcx 2 alcance de la segunda estructura del variograma según eje x


alcy 2 alcance de la segunda estructura del variograma según eje y
alcz 2 alcance de al segunda estructura del variograma según eje z

Meseta 1 meseta de la primera estructura


Meseta 2 meseta de la segunda estructura

Con dos estructuras es suficiente para la mayoría de las aplicaciones prácticas.

Anisotropía que no coincide con los ejes x, y, z.

Si el elipsoide de anisotropía (figura 7) no coincide con los ejes (x, y, z), se deben rotar
previamente las coordenadas.

12
Figura 7: El elipsoide de anisotropía no coincide con los ejes x, y, z.

Se debe rotar el modelo de bloques y los compósitos según el ángulo φ.

La rotación (compósitos y bloques) hay que hacerla por fuera del programa de krigeado,
utilizando las ecuaciones de rotación (caso 2D):

x ' = x cos(j ) + y sin(j )


y ' = - x sin(j ) + y cos(j )

4. Ejecución del programa.

Al cliquear en “Ejecutar”, el programa escribe el progreso de los cálculos en % y


finalmente el tiempo de ejecución empleado en el proceso. Finalmente hay que revisar y
tratar el archivo de salida (en formato csv). Cuando en este archivo aparece una línea en la
cual la ley y la desviación del error son iguales a -1, esto significa que no se pudo krigear el
bloque cuyo centroide es x, y, z (principalmente por falta de datos en la vecindad).

Se recomienda comparar el tiempo de ejecución con el que proporcionan los paquetes


tradicionales comerciales (que cuestan miles de dólares), con el tiempo que toma nuestro
programa que es de dominio público (es decir gratis).

Compósitos repetidos.

Una situación, más común que lo que uno se imagina es, cuando, en la base de datos de
compósitos existen datos repetidos. Esta situación no es deseable porque los paquetes
eliminan estos datos según el orden en que van apareciendo. El programa escribe, por
ejemplo, un mensaje como el de la figura 8 y deja de funcionar:

13
Figura 8: Datos repetidos.

Será necesario entonces intervenir la base de datos, “por fuera” de manera de eliminar las
repeticiones (problema informático de los “dupes”).

Tratamiento de valores anómalos altos.

Al ejecutar el programa krigeado1R.exe (o bien krigeado2R.exe) aparecerán dos pantallas


en las cuales habrá que definir el radio de influencia de los valores anómalos y la ley de
corte de estos valores, tal como muestra la figura 1b.

Ejemplo.

Se desea krigear los bloques B1 y B2 de la figura 10, a partir de 5 compósitos C1, C2, C3, C4
y C5.

Figura 10: bloques a krigear.

Los compósitos tienen 10 metros de largo y los bloques son cúbicos de 10mx10mx10m. La
cota del centroide de los bloques es la cota 5. Las leyes de los compósitos son
respectivamente (para C1, C2, ..., C5): 1, 10, 2, 1, 1.

Una vista en planta de la situación es:

14
Figura 11: Vista en planta.

El variograma es esférico e isótropo, con alcance de 100 metros en todas las direcciones.
Tiene una sola estructura con efecto de pepita igual a 0.2, meseta igual a 0.6.

En primear lugar construimos con un editor el archivo de texto “compo.dat”, archivo de


compósitos, el cual es:

10 50 5 1
25 55 5 10
25 55 15 2
25 55 -5 1
40 55 5 1

Ahora el archivo “bloques.dat”, archivo de bloques, el cual es:

25 55 5 0
35 55 5 0

(la cuarta columna “0” es obligatoria pero el programa no la usa)

Estos dos archivos deben estar en el mismo directorio en el que se encuentra krigeado1.exe.

Estamos listos para krigear. Llenamos las casillas de krigeado1.exe (ojo: las figuras
corresponden a una versión antigua del programa pero es casi lo mismo):

15
Al examinar “bloques.csv”, se tiene:

x y z ley e d N
25 55 5 4.095 0.282 0 5
35 55 5 2.987 0.323 5 5

La ley de B1 es 4.095 y la ley de B2 es 2.987.

Si se krigean los mismos bloques con el programa “krigeado1R.exe, con un radio de


restricción de 5 metros y un corte de 8, se tiene:

x y z ley e d N
25 55 5 4.095 0.282 0 5
35 55 5 1.227 0.343 5 4

Ahora la ley de B1 es 4.095 y la ley de B2 es 1.227.

En este caso el outlier solo influye en el bloque que lo contiene.

16

Vous aimerez peut-être aussi