Geoflslca Colomblana N2 1, Octubre de 1992 31 PROGRAMA RECURSIVO EN PASCAL PARA DETERMINACION DE ZONAS EN UNA SECUENCIA, POR EL METODO DE ANALISIS DE VARIANZA LUIS A. MONTES Profesor Asistente Depto de Geociencias-Facultad de Ciencias-Universidad Nacional de Colombia Montes L.A: Programa Recursivo en Pascal para determinacion de zonas en una secuencia, por el metodo de Analisis de Varianza. Geofis. Colomb. 1:31-36, 1992. ISSN 0121-2974 RESUMEN Los datos qeoloqicos cornunmente forman una secuencia, como registros electricos de pozo, pudiendo dividirse en segmentos hornoqeneos. Las zonas pueden identificarse por rnetodos de analisis de varianza. EI programa contiene un procedimiento recursivo que evalua un coeficiente de zonacion entre varies posibles arreglos de datos, seleccionando el mayor valor para seleccionar ellimite entre los dos nuevos segmentos. Este proceso se repite en cada zona hasta que el tarnano del segmento alcance un limite. En un registro electrico se identificaron 21 contactos. EI programa pude ser usado en otras areas de la Geologia. ABSTRACT Geologic data commonly form a sequence, for example well logs, and they may be subdivided into relative uniform intervals corresponding to stratigraphic units. Distinct zones within ordered data sets can be identified by analysis of variance method. The computer program is a recursive procedure in which arrangements into two contiguous zones are considered at each stage. In each proposed boundary a zonation index is calculated, and is selected the highest one to stablish two different zones. The procedure is repeated for each zone until number of data in segments reach a limit. In a digitized electric log, it was possible to identify 21 boundaries. The program is general and can be used in others branch of geology. 1. INTRODUCCION Muchos datos geologicos se presentan como secuencias de datos. En elias es posible reconocer intervalos con caracteristicas comunes 0 zonas de litologia constante. Este proceso de dividir una secuencia en segmentos relativamente unifo rmes se denomina Zonackin. Las distintas zonas dentro de la secuencia pueden identificarse por el metodo estadistico de Analisis de varianza. La busqueda de estes "contactos" implica una tecnica recursiva, en la cual en la secuencia se evalua un indice, que permite determinar dos segmentos, en los cuales nuevamente se realiza el proceso de determinacion del indice y la posterior seqmentacion. EI proceso termina cuando los segmentos alcanzan un limite. EI metodo se implanta a traves de un programa escrito en lenguaje Pascal, y se ensaya en una secuencia de un registro electrico de un pozo en la localidad de Madrid, C/marca. 32 Montes: Programa para determlnar zonas en una secuencla 2. METODO DE ZONACION EI rnetodo de Analisis de Varianza examina las diferencias entre las medias de dos poblaciones cuyos elementos contribuyen a traves de un modelo lineal. EI modelo plantea que a toda serial contribuyen tres facto res: X(ij) = I.l + ali) + e(ij) Donde I.l ; Media de toda la poblaci6n.a~.>: es el efecto de I" zona particular. e I]) : ~or aleatono asociado con cada o ervaaon. EI rnetodo se basa en dos mediciones diferentes e independientes de la Varianza. La sum a de cuadrados dentro de la secuencia total se calcula de acuerdo a la siguiente fonnula: X;j = i-punto en j-segmento ~ = media de j-segmento nj = # de puntos en j-segmento m = # de segmentos La suma de cuadrados entre segmentos se calcula como: sse = I;m (5< - X\2 / (m-1) }=I i' [2] x = media total de la secuencia X(ij) = i-Qbservaci6n en j-segmento. XU) = media del j-segmento. nO) = numero de observaciones en j-segmento. m = numero total de segmentos. Las fonnulas representan una medida de la varianza alrededor de la media total X de la secuencia. EI coeficiente de zonacion se calcula como: R = 1 - ssw/sse 3. PROCEDIMIENTO [3] AI principio la secuencia total se divide en dos segm~tos, una parte inicial corta que constituya al pnmer segmento y la parte rootanta eI segundo segmento. ~ ~ntinuaci6n. se calculan SSW, sse y el IndlCe de zonaclon R en cada segmento, segun las fonnulas 1, 2 y 3. Ellimite entre los dos segmentos se muava a 10 largo de la secuancia a posiciones sucooivas, de acuerdo a un valor da paso da avance definido, por cada movimiento del limite sa calculan nueva~enta los valores de SSW, sse y R. AI terrninar de barrer la secuencia se obtienen un conjunto de indices de Zonaci6n; uno por cada posicion de eI limite. S": ~usca dentro de ese conjunto el valor de R maximo. y sa escoge dicha posici6n como la primera zona de contacto. Luego cada nuevo segmento genarado se particiona, consloeranoose cada segmento como un bloque complatamante distinto, iterando el procedimiento, para consequir-nuevas zonas de contacto en cada segmento. EI proceso continua hasta que la secuencia se divida an seqrnentos que no pueden superar una longitud minima. 4. APLICACION [1] EI programa se ensay6 con un registro electrico de pozo digitalizado manualmente (Tabla 1)' situ ado en la localidad de Madrid (Cundinamarca). Para esta registro se utiliz6 una sonda corta nonnal de 20 em y los valores se muestraron a profundidades mayo res de 330 m. EI programa sa cre6 con el uso del Compilador HP Pascal-9000 y sa ajecut6 an un microcomputador Hewlett-Packard 9000, del Departamento de Geociencias de la Universidad Nacional. Para la implantaci6n de esta tecnica se utiliz6 el lenguaje Pa.scal, por la facilidad que presenta este lenquaje de .lIamado recursivo de rutinas; una segunda razon es el hecho de ser Pascal un lenguaje muy conocido y de tacil aprendizaje. Su utilizaci6n permiti6 determinar 21 contactos en la secuencia del registro (ver Tabla 2.), los cuales coinciden intuitivamente con las inflexiones de la curva del registro (Fig.1 y 2). AI observar Ia gratica del registro de pozo, se puede observar la bondad de ajuste del rnetodo y del programa en la detenninaci6n de las zonas ~a . ~ntacto que .encierran segmentos htologlcamente homogeneos siendo estos de diferentes espesoroo. ' ~I co~portamiento . del programa asia Influenclado por el longltud del segmento inicial y por eI valor del paso de avance al recorrer la secuencia, !}enerando resultados diferentoo para valoroo distlntos de ootos panimetros. 5. CONCLUSIONES EI uso de programas de computador an la determinaci6n de estructuras geol6gicas es cada dia mas importante. ' Se utiliz6 un programa para la identificaci6n de zonas !itoI6gical"!'.enta hom~g{meas, y se pudo datermlnar su utlhdad al aphcar al metodo an al analisis da un registro electrico. Sa puedan procesar secuencias da infonnaci6n axtensas an periodos da tiampo muy cortos al tiempo para analizar 100 datos la tomo a' la ~aq';Jina aproxi":l~damanta 20 segundos, InclUldo la genaraclon de la salida da resultados. La tecnica de zonacion sa utiliza en otras areas da la geologia, qua contamplan analisis de secuencias da datos. Geofislc8 Colomblana ~ 1, Octubre de 1992 33 , ~_1 1 ij--t----+--+-H I i- ii ---- _.-'_.-~.~~~---- .-~-~ --~~ I-"-::~:::':"- -. _ ..:..- ! I I I-T':' _._.. Figura 1. Registro electricc de pozo. Sensibilidad: 10 divisiones = 500 nm; Profundidad: cada division = 0.9434 m Los segmentos indican unidades litoloqlcas homoqeneas. EI tope de la columna es 332.6 m y la base 423.3 m. --_.=-!!. ~._-- -~._- -~w. ~ '~, -r-r-' ---T--~~-- -fa ~; ~ _ i ,- I . . (: ~I - ,,/It .. ---1--'· I -I~I I j .~'''''''+-=",-+---.,; I Figura 2. [ccntinuacion Fig.1). Registro electrtco de pozo. Sensibilidad: 10 divisiones = 500 nm; Protundidad: cada division = 0.9434 In Los segmentos indican unidades litologicas homcqeneas. EI tope de la columna es 425 my la base 519 m. 34 Montes: Programa para determinar zonas en una secuencia TABLA 1. Resistividades a distintas profundidades. Los valores se muestrearon a intervalos Iguales. Prof Resist Prof Resist Prof Resist Prof Resist 332.6 133.33 378.9 293.33 425.2 186.67 471.5 200.00 334.4 133.33 380.7 220.00 427.0 186.67 473.3 240.00 336.3 166.67 382.6 133.33 428.9 213.33 475.2 240.00 338.1 100.0 384.4 306.67 430.7 126.67 477.0 220.00 340.0 133.33 386.3 333.33 432.6 126.67 478.9 253.33 341.9 100.00 388.1 266.67 434.4 126.67 480.7 220.00 343.7 186.67 390.0 173.33 436.3 126.67 482.6 266.67 345.6 86.67 391.9 300.00 438.1 133.33 484.4 160.00 347.4 86.67 393.7 313.33 440.0 333.33 486.3 120.00 349.3 160.00 395.6 313.33 441.9 353.33 488.1 120.00 351.1 80.00 397.4 186.67 443.7 353.33 490.0 133.33 353.0 66.67 399.3 166.67 445.6 333.33 491.9 200.00 354.8 66.67 401.1 166.67 447.4 333.33 493.7 306.67 356.7 106.67 403.0 146.67 449.3 313.33 495.6 300.00 358.5 133.33 404.8 166.67 451.1 280.00 497.4 266.67 360.4 133.33 406.7 193.33 453.0 266.67 499.3 200.00 362.2 166.67 408.5 200.00 454.8 200.00 501.1 200.00 364.1 253.33 410.4 200.00 456.7 226.67 503.0 200.00 365.9 353.33 412.2 400.00 458.5 333.33 504.8 320.00 367.8 333.33 414.1 546.67 460.4 266.67 506.7 240.00 369.6 186.67 415.9 500.00 462.2 233.33 508.5 233.33 371.5 213.33 417.8 573.33 464.1 366.67 510.4 220.00 373.3 286.67 419.6 466.67 465.9 333.33 512.2 233.33 375.2 286.67 421.5 253.33 467.8 300.00 514.1 233.33 377.0 300.00 423.3 233.33 469.6 266.67 515.9 246.67 , PROGRAMA PARA ZONACION DE SECUENCIAS DE DATOS 1 Programa para zonacion de secuencias de datos Consta de un modulo principal y dos funciones } X : arreglo que contiene datos a procesar } Meant: valor medio de la secuencia total } { Datos es eI nombre del archivo de entrada } PROGRAM lone(data,input, output); VAR data: FILE OF REAL; x : array [1 ..256] of real; k : integer; meant: real; j --------} Funcion que calcula la media del segmento definido liminf1 : cota inferior del segmento a promediar } limsup1 : cota superior del segmento } X: datos a procesar, definidos entre liminf1 y limsup1 } function mean(liminf1, limsup1 : integer) : real; var i : integer; suma : real; begin suma :=0.0; for i := liminf1 to limsup1 do sum a := suma + x~l; rnean.esuma/tllmsup t - liminf1); end; {======================================================================} Geofislca Colombians N2 1, Octubre de 1992 35 Mean 1 : media del primer segmento } Mean2 : media del segundo segmento } liminf, lirnsup : Iimites del segmento a analizar y dividir }} R : coeficiente a evaluar, para determinacion de limites Pos : indicador de R evaluado } Inc: longitud de paso de avance } Delta: indicador de posicion de maximo R procedure border(liminf, lirnsup : integer); var mean1, mean2, ssw, ssb, rmax, r : real; pes, inc, i, delta: integer; begin if (lirnsup - liminf) > 8 then begin pas := 0; inc := 4; rmax:= 0.0; while (Iimsup-liminf-inc > 4) do begin ssw := 0; mean1 := mean(liminf, liminf+inc); rneanz := mean(liminf+inc+ 1, lirnsup): for i := liminf to liminf+inc do ssw := ssw + sqr(x[i]-mean 1); for i := liminf+inc+ 1 to lirnsup do ssw := ssw + sqr(x[i]-mean2); ssw := ssw/(limsup-liminf-4); ssb := sqr(mean 1-meant)+sqr(mean2-meant); pos := pos + 1; if ssb > 0 then begin r := t-tssw/ssb): if r > rmax then begin rmax.er: delta.epos: end' end' ' inc := 'inc +2; end' border(liminf+delta+ 1, limsup); bordertliminf, lirninf -delta): if rmax > 0 then writeln(liminf+delta,' ',rmax:4:3); end; end; {=========================================================================} begin { •• inicio del principal·· } reset(data,'datos') ; k '=0' while' (not Eof(dala)) do begin k := k + 1; read(data, x[k]); end' c1ose(data); meant:=mean(1,k); border(1,k); end. { •• fin del principal •• } 36 Montes: Programa para determinar zonas en una secuencia Cota superior del segmento Tabla 2. Muestra el tope superior del segmento y el Coeficiente R R Profundidad (m) 88 84 74 72 70 68 63 61 59 54 48 46 44 42 32 30 23 19 12 10 7 0.323 0.223 0.573 0.785 0.807 0.462 0.802 0.879 0.423 0.081 0.790 0.940 0.918 0.361 0.155 0.221 0.268 0.148 0.442 0.484 0.389 493.6 486.3 467.8 465.9 460.4 456.7 447.4 443.7 440.0 430.7 419.6 415.9 4122 4085 3900 3863 373.3 3659 353.0 349.3 343.7 , BIBLIOGRAFIA Davis, J. C. (1986): Statistics and data analysis in Geology. 211pp. John Wiley & Sons Co, NewYork. Gill, D. (1970): Application of statistical zonation method to reservoir evaluation and digitized-Log Analysis. The Am. Assoc. of Petrol. Geologists Bulletin. 54 (5):719-729. Miller, R. L. & J.S. Kahn. (1962): Statistical analysis in the geological sciences. John Wiley & Sons Co. Tucker, A.B. (1987): Programming languages. pp.18-66. McGraw-Hili Inc. New York.