Proyecto Procesamiento sismico
-
Upload
ilichgarca9133 -
Category
Documents
-
view
195 -
download
2
Transcript of Proyecto Procesamiento sismico
Universidad Simón Bolívar
Departamento de Ciencias de la Tierra
Procesamiento Sísmico
MODELADO Y PROCESAMIENTO SÍSMICO DE UNA
ESTRUCTURA DE CORRIMIENTO Y ESTRUCTURA TIPO
FLOR POSITIVA UTILIZANDO EL
PAQUETE SEISMIC UNIX
Profesor: Realizado por:
Ilich García Ada Zamora #06-40493
Carla Barbara #06-39202
Sartenejas, marzo de 2011
RESUMEN
El siguiente trabajo trata sobre el modelado y procesamiento básico de una data sísmica no
real de una estructura compleja utilizando el programa Seismic Unix (SU), para evaluar la
capacidad y utilidad de dicho programa para modelar y aplicar una secuencia de procesamiento
básica a una zona geológica de interés.
El modelo estructural elegido fue una zona que presenta una estructura tipo flor positiva
junto a una estructura de corrimiento, dicho modelo se graficó en papel milimetrado para calcular
coordenadas ficticias para su modelado sísmico en el programa SU. Luego se procedió a realizar el
trazado de rayos, el diseño sintético de adquisición sísmica, el análisis de velocidades, la
corrección NMO, y la migración post-apilamiento, todo esto utilizando dicho programa.
En el informe se señalan varias definiciones para la mayor comprensión de proyecto y una
explicación detallada del programa a utilizar y los pasos realizados para la obtención del los
resultados.
TABLA DE CONTENIDO
- Introducción
- Marco Teórico
- Marco Metodológico
Generación del modelo geológico del subsuelo
Generación del trazado de rayos
Modelado de Propagación de ondas acústicas
Análisis de Velocidad, Corrección NMO y Sección Apilada
Mute y Migración de la Data Sísmica
- Resultados y Análisis
Modelo Geológico en 2D generado con Seismic Unix
Trazado de Rayos y Propagación del frente de ondas a través del modelo
Trazado de Rayos y Frentes de Ondas
Sismogramas Sintéticos
Propagación de ondas acústicas en diferencias finitas para el modelo generado
Shots Gathers
Ordenamiento por CMP
Análisis de Velocidad, Corrección NMO y Sección Apilada
Mute y Migración de la Data Sísmica
Conclusiones
Referencias
Apéndice 1: 2_perfil_tri.sh
Apéndice 2: 6_varios_shots_rayos.ah
Apéndice 3: 8_varios_shots_acusticas.sh
Apéndice 4: 9_nmo.sh
Apéndice 5: 10_miga.sh
TABLA DE IMÁGENES
• Figura 1: Pasos básicos del procesamiento sísmico (Ilich García, 2008)
Figura2: Estructuras tipo flor negativa (A) y flor positiva (B).
Figura3: Modelo geológico asignado
Figura4: Merfil de Lentitud Cuadrática
Figura5: Perfil de Velocidad
Figura6: Modelo Triangular
Figura7: Trazado de Rayos en 2km para la interfaz 2
Figura8: Frente de Ondas en 2km para la interfaz 2
Figura9: Trazado de Rayos en 2km para la interfaz 3
Figura10: Frente de Ondas en 2km para la interfaz 3
Figura11: Trazado de Rayos en 2km para la interfaz 6
Figura12: Frente de Ondas en 2km para la interfaz 6
Figura13: Trazado de Rayos en 3km para la interfaz 3
Figura14: Frente de Ondas en 3km para la interfaz 3
Figura15: Trazado de Rayos en 3km para la interfaz 4
Figura16: Frente de Ondas en 3km para la interfaz 4
Figura17: Trazado de Rayos en 4km para la interfaz 8
Figura18: Frente de Ondas en 4km para la interfaz 8
Figura19: Trazado de Rayos en 2km para la interfaz 12
Figura20: Frente de Ondas en 2km para la interfaz 12
Figura21: Sismograma sintético en 2km para la interfaz 2
Figura22: Sismograma sintético en 2km para la interfaz 3
Figura23: Sismograma sintético en 2km para la interfaz 6
Figura24: Sismograma sintético en 3km para la interfaz 3
Figura25: Sismograma sintético en 3km para la interfaz 4
Figura26: Sismograma sintético en 4km para la interfaz 8
Figura27: Sismograma sintético en 2km para la interfaz 12
Figura28: Secuencia de imágenes de la película generada
Figura29: Shots Gathers correspondientes a un disparo en posición 2000m
Figura30: Shots Gathers correspondientes a un disparo en posición 3200m
Figura31: Shots Gathers correspondientes a un disparo en posición 4000m
Figura32: Shots Gathers correspondientes a un disparo en posición 5200m
Figura33: CMP Gathers
Figura35: CMP gather antes de la corrección (izquierda) y CMP gather después de la
corrección NMO
Figura36: Mapa de Semblanza para CMP=4000m
Figura37: CMP gather antes de la corrección (izquierda) y CMP gather después de la
corrección NMO
Figura38: Mapa de Semblanza para CMP=5000m
Figura39: CMP gather antes de la corrección (izquierda) y CMP gather después de la
corrección NMO
Figura 40: Sección apilada
Figura 41: Sección apilada sin migrar (izquierda) y sección apilada migrada (derecha)
Figura 41: Sección apilada sin migrar (izquierda) y sección apilada migrada (derecha)
INTRODUCCIÓN
Como estudiantes de las Geociencias, sabemos que lo que se encuentra en el subsuelo es un
misterio que continuamente tratamos de revelar. Por esta razón, se han ideado una gran cantidad
de métodos para tratar de obtener información del subsuelo.
El paquete Seismic Unix, constituye una herramienta valiosa para poder realizar simulaciones
de modelos estructurales, así como de los resultados obtenidos en caso de hacer una adquisición
sísmica. Y además de los resultados, ofrece la opción de poder procesarlos, todo ello para tener
interpretaciones más acertadas de nuestra eterna incógnita.
En este trabajo, se trabajará con SU con el propósito de analizar los resultados obtenidos y
ampliar nuestros conocimientos sobre el procesamiento sísmico.
MARCO TEÓRICO
El procesamiento sísmico tiene como objetivo principal transformar las observaciones sísmicas
adquiridas en campo en secciones o volúmenes de datos para poder realizar interpretaciones que
conlleven a la elaboración de un modelo del subsuelo y ver si es rentable la exploración y/o
producción de hidrocarburos. Durante el procesamiento de la data se obtienen parámetros
importantes como velocidades, amplitudes y fase.
Figura 1: Pasos básicos del procesamiento sísmico (Ilich García, 2008)
Para la realización de este trabajo se utilizó el programa Seismic Unix, el cual se operó en el
sistema operativo Ubuntu
Seismic Unix (SU), es un paquete de software libre y de fuente abierta, que realiza modelado y
procesamiento de una data sísmica. Fue desarrollado en el Centro de onda Fenómenos (CWP) en
la Escuela de Minas de Colorado (CSM) en 1987 por los científicos Jack K. Cohen y Shuki Ronen,
entre varios más. Seismic Unix fue programado en lenguaje C y trabaja con base en sistemas
operativo UNIX.
SU contiene herramientas para el modelado, procesamiento, transformadas de Fourier,
filtrado de señales, transformadas de ondículas, entre otras funciones.
Al utilizar la herramienta de modelado, se pueden crear perfiles de propiedades del subsuelo,
formando: modelos uniformemente muestreados y modelos triangulares. También, SU genera la
data sísmica mediante el trazado de rayos y la propagación de ondas acústicas.
Con la herramienta de procesamiento sísmico podemos visualizar y ajustar el header, hacer
ordenamiento por CMP, análisis de velocidad, corrección NMO, apilamiento y migración.
Para poder utilizar este programa y correr los códigos para modelar, es necesario tener claro
ciertos conceptos enunciados a continuación:
- Rayo: Cada una de las líneas, generalmente rectas, que parten del punto en que se
produce una determinada forma de energía y señalan la dirección en que esta se propaga.
Línea de luz que procede de un cuerpo luminoso
- Frente de Ondas: Se denomina frente de onda al lugar geométrico en que los puntos del
medio son alcanzados en un mismo instante por una determinada onda. Dada una onda
propagándose en el espacio o sobre una superficie, los frentes de onda pueden
visualizarse como superficies o líneas que se desplazan a lo largo del tiempo alejándose de
la fuente sin tocarse.
- Shot Gather: Conjunto de trazas que representan la respuesta de una serie de detectores
desde un mismo disparo.
- Common Midpoint (CMP): Es el punto situado en el centro de los diferentes pares fuente-
receptor que corresponden a reflexiones de un mismo punto del subsuelo
- Offset: Es la distancia entre la fuente y el receptor
- Velocidad NMO: Es la velocidad empleada para la corrección de “Normal Move Out” cuando la distancia fuente receptor es pequeña.
- Migración: Es el proceso de reubicación de lo estratos a su posición original.
Modelo geológico generado: Estructuras en flor
La presencia de inflexiones y saltos a lo largo de una falla promueve la formación de
estructuras denominadas duplexes). Las rocas que se encuentran dentro de la zona de influencia
de una inflexión o salto se pueden fallar progresivamente, generando sistemas imbricados en
relación a la falla principal.
El análisis del proceso de formación de duplexes puede realizarse a través de dos
mecanismos: Deformación planar y Deformación no planar.
La formación de duplexes por deformación no planar se encuentra en la compensación
volumétrica por hundimientos y levantamientos. Así en duplexes extensionales se formaran
hundimientos, y en los compresionales, levantamientos. Unas de las estructuras más notables
derivadas de la deformación no planar son las denominadas flores positivas (positive flowers) y
flores negativas (negative flowers) (Woodcock y Fischer, 1986), que a su vez se corresponden con
los casos de duplex compresional y extensional, respectivamente. La geometría interior de las
fallas secundarias en un duplex muestra que estas convergen en profundidad hacia una zona de
falla única. En el caso de una estructura en flor negativa (fig.A), las fallas secundarias dentro del
duplex tendrán un comportamiento mixto, transcurrente-normal, por lo cual podemos decir que la
zona interior está en extensión y sometida a hundimiento. Por el contrario, en una estructura tipo
flor positiva (fig.B), las fallas interiores se comportarán como transcurrentes-inversas, por lo cual
podemos decir que la zona está en compresión y por lo tanto sometida a levantamiento. Esta
estructura tiende a crecer con el aumento del desplazamiento experimentado por las fallas que la
confeccionan.
Figura 2: Estructuras tipo flor negativa (A) y flor positiva (B). Note la subsidencia y alzamiento respectivo en A y B, así mismo como el carácter mixto (transcurrente-normal y transcurrente-inverso) del fallamiento asociado.
MARCO METODOLOGICO
Generación del modelo geológico del subsuelo
El modelo asignado para realizarle el procesamiento fue el de una estructura debido a inversión tectónica positiva, generando una estructura en flor con dos fallas inversas en corrimiento.
Las dimensiones tomadas para el modelo son de 8km de longitud y 5 km de profundidad, tomando como referencia el tamaño real de la estructura. Para poder graficarlo, lo dibujamos sobre papel milimetrado y obtuvimos las coordenadas de cada segmento.
Figura3: modelo geológico asignado.
Ya que el modelo presenta 3 estratos, se le asignaron velocidades a cada uno. Esto se hizo
tomando como referencia velocidades características de litologías comunes. La primera capa tiene
una velocidad de 1500m/s, la segunda una de 2000m/s y la tercera 3000m/s.
En Seismic Unix, el comando Trimodel es utilizado para generar la representación del subsuelo
con las coordenadas y velocidades dadas.
Una vez obtenidas las coordenadas y velocidades del modelo, estas se insertaron en el código
22_perfil_tri.sh. Además, en el código se colocaron los valores de lentitud cuadrática, la cual viene
dada por la relación L=1/V2
Generación del trazado de rayos
Para la generación del trazado de rayos, simulando un arreglo Split spread para varios disparos, se utilizo el comando TRIRAY para el modelo construido con el comando TRIMODEL.
Luego de introducir los valores de nuestro modelo, se introdujeron los siguientes parámetros: interf= 13 Número de interfaces, incluyendo los bordes superior e inferior nangle= 20 Número de ángulos de despegue fangle= -60 Primer ángulo de despegue langle= 60 Último ángulo de despegue nxz= 500 Número de (x,z) en el archivo rayfile fpeak= 10 Frecuencia pico de la ondícula Ricker en Hz offset_max=1 Offset máximo (debe ser un entero) ID=1 Intervalo entre puntos de disparos (debe ser un entero) n1=1000 Número de muestras en z d1=0.005 Intervalo de muestreo en z
Modelado de Propagación de ondas acústicas
Para el modelado de propagación de ondas acústicas en diferencias finitas de nuestro modelo, se utilizó el comando SUFDMOD2, simulando varios disparos para un arreglo split spread.
En este código, los parámetros introducidos debían estar en metros, por lo que transformamos los valores del modelo y de las velocidades a esta unidad
Estos parámetros fueron:
offset_max=2000 Offset máximo
IR=20 Intervalo entre grupos de receptores
fmax= 20 Frecuencia máxima de la ondícula fuente
tmax= 5 Tiempo máximo de grabación
zs= 0 Coordenada z de la fuente
hsz= 0 Coordenada z de la linea horizontal del sismograma (profundidad
de los receptores)
ID=400 Intervalo entre puntos de disparos
Longitud=8000 Longitud del modelo en metros
Profundidad=5000 Profundidad del modelo en metros
fz= 0 Coordenada z de la primera muestra
min_shot=1500 Valor mínimo del shot que se desea graficar
max_shot=6500 Valor máximo del shot que se desea graficar
min_cmp=1500 Valor mínimo del cmp que se desea graficar
max_cmp=6500 Valor máximo del cmp que se desea graficar
clip= 0.49 Valor máximo de la amplitud de la traza en la gráfica de los shots
gathers formato wigle trace display
Análisis de Velocidad, Corrección NMO y Sección Apilada
Para realizar el análisis de velocidades y la corrección NMO se utilizó el archivo CMP arrojado
por el modelado de la propagación de ondas acústicas, para utilizar los CMP Gathers
correspondientes a nuestro modelo. Adicionalmente, se proporcionaron ciertos parámetros que
permitieran generar los mapas de semblanza en función de los cuales se seleccionan las
velocidades para la corrección NMO.
ND= 10 Número de disparos de la adquisición sísmica
cdpmin= 2000 Primer CMP
cdpmax= 6000 Último CMP
dcdp= 500 Intervalo entre CMP
nv= 500 Número de velocidades
dv= 10 Intervalo entre las velocidades
fv= 500 Primera velocidad
vf = fv + ((nv*dv) - dv) = 10990
Las velocidades de corrección para cada CMP Gather se seleccionaban a partir del mapa de
semblanza correspondiente, oprimiendo la tecla “s” con el cursor encima de los puntos de mayor
semblanza que estuvieran dentro del rango de tiempo abarcado por las hipérbolas de las
reflexiones.
Una vez seleccionadas todas las velocidades y horizontalizados los CMP Gathers, se genera
una sección apilada de los mismos.
Mute y Migración de la Data Sísmica
La migración y el mute se realizaron para la sección apilada generada previamente. Para realizar el mute, se selecciona el área escogida pulsando la tecla “s” y colocando el cursor
en dos puntos que unen la línea por encima de la cual se desea eliminar las amplitudes.
En el caso de la migración deben ser escogidos los parámetros siguientes: v = velocidad de migración (debe corresponder a un aproximado de la velocidad de la capa a migrar, aunque no necesariamente debe ser igual)
t = tiempo para el cual se realiza la migración.
RESULTADOS Y ANALISIS
Modelo Geológico en 2D generado con Seismic Unix
El modelo tectónico a generar corresponde a una estructura de flor de dos capas que muestra
inversión tectónica.
El modelado se hizo utilizando Seismic Unix (SU) a través del comando Trimodel. Luego de correr el código 2_perfil_tri.sh, se obtuvieron los perfiles de lentitud cuadrática y velocidad:
Figura4: Perfil de Lentitud Cuadrática
Figura5: Perfil de Velocidad
Se obtuvo también, el modelo triangular:
Figura6: Modelo Triangular
En este modelo, se pueden apreciar los triángulos generados para crear el perfil por medio del método de Triangulación de Delaunay, que corresponden a las líneas grises que atraviesan todo el modelo.
Se aprecia la diferencia en las velocidades de cada capa, con velocidades distintas en cada una.
Las diferentes velocidades se presentan con los colores blanco, gris y negro.
Trazado de Rayos y Propagación del frente de ondas a través del modelo
Una vez creado el modelo triangular, para generar el trazado de rayos es necesario convertirlo en un modelo uniforme. Esto se logra utilizando el código de 6_varios_shots_rayos.sh.
En el modelo generado no se presentan las líneas que definen el perfil, sólo se aprecian las
interfaces de los tres estratos que presentan velocidades distintas. Trazado de Rayos y Frentes de Ondas Para simular el trazado de rayos sobre el modelo creado anteriormente, se asignaron ciertos
parámetros de adquisición, considerando un arreglo Split Spread. Con el propósito de poder abarcar gran parte del perfil, se escogió el rango de ángulos para los
rayos entre -60° y 60° y un offset máximo de 1km. A continuación, se presentan algunas imágenes de los rayos y los frentes de ondas generados
en las interfaces del modelo.
Figura7: Trazado de Rayos en 2km para la interfaz 2
Figura8: Frente de Ondas en 2km para la interfaz 2
Figura9: Trazado de Rayos en 2km para la interfaz 3
Figura10: Frente de Ondas en 2km para la interfaz 3
Figura11: Trazado de Rayos en 2km para la interfaz 6
Figura12: Frente de Ondas en 2km para la interfaz 6
Figura13: Trazado de Rayos en 3km para la interfaz 3
Figura14: Frente de Ondas en 3km para la interfaz 3
Figura15: Trazado de Rayos en 3km para la interfaz 4
Figura16: Frente de Ondas en 3km para la interfaz 4
Figura17: Trazado de Rayos en 4km para la interfaz 8
Figura18: Frente de Ondas en 4km para la interfaz 8
Figura19: Trazado de Rayos en 2km para la interfaz 12
Figura20: Frente de Ondas en 2km para la interfaz 12
En las imágenes anteriores se puede observar la reflexión y la refracción del rayo al conseguirse
con las distintas interfaces, así como también los frentes de onda generados.
Sismogramas Sintéticos
En la práctica, las ondas reflejadas al llegar a la superficie son detectadas por los receptores y con
esta información se puede generar un sismograma sintético. Experimentalmente, para este modelo,
el sismograma sintético se puede obtener mediante las simulaciones en SU.
Los sismogramas generados a través de estas simulaciones representan sismogramas del tipo
Beam Gaussiano, por lo que es necesario definir una frecuencia pico (10Hz), así como el intervalo de
muestreo (0.005s) y el número de muestras (1000). Esto con el propósito de definir la longitud del eje
vertical del sismograma.
Figura21: Sismograma sintético en 2km para la interfaz 2
Figura22: Sismograma sintético en 2km para la interfaz 3
Figura23: Sismograma sintético en 2km para la interfaz 6
Figura24: Sismograma sintético en 3km para la interfaz 3
Figura25: Sismograma sintético en 3km para la interfaz 4
Figura26: Sismograma sintético en 4km para la interfaz 8
Figura27: Sismograma sintético en 2km para la interfaz 12
Podemos observar que para algunas interfaces, la información recibida en lo geófonos es casi nula,
como es el caso de la figura XX, esto se debe a que las ondas reflejadas no llegan hasta los geófonos
en la superficie, o perdieron mucha energía en el camino y su llegada es muy débil para ser
detectada.
Propagación de ondas acústicas en diferencias finitas para el modelo generado
Más allá del trazado de rayos y de la propagación de los frentes de onda, SU permite crear una
propagación de ondas acústicas y de esta manera generar tanto los shot gathers correspondientes,
como realizar el ordenamiento por CMP gathers y crear un película que muestra la trayectoria de
la onda desde su generación hasta sus reflexiones y refracciones. Para lograr esto, se establecieron
parámetros de adquisición específicos.
En figura siguiente podemos observar 8 snapshots de la película que simula la propagación de
ondas acústicas en el medio, para el disparo ubicado en 4000m. En ella se puede apreciar el punto
donde se genera la onda y como esta se va propagando y reflejando en cada una de las interfaces.
Figura28: Secuencia de imágenes de la película generada
Shots Gathers
Los Shot Gathers obtenidos para esta simulación fueron generados en formato Gray en en
formato Wigle, ello para ver de dos formas los resultados obtenidos. A continuación se presentan
los Shots Gathers para los disparos a 2000m, 3200m, 4000m y 5200m
En esta figura se pueden observar en los Shots gathers la onda directa, (aprox entre 0 y 1.2
segundos) y una primera reflexión al conseguir una interfaz (a los 2 segundos)
Figura29: Shots Gathers correspondientes a un disparo en posición 2000m
En este caso, se puede observar la onda directa (entre 0 y 1.5seg), una primera reflexión
aproximadamente a los 2seg y una tenue segunda reflexión a los 3 seg.
Figura30: Shots Gathers correspondientes a un disparo en posición 3200m
Aquí se puede observar nuevamente la onda directa (0 a 1.5seg), una primera reflexión (1.7 a 2.2
seg), una segunda reflexión (3seg.) y hasta una tercera reflexión (4 a 5seg).
Figura31: Shots Gathers correspondientes a un disparo en posición 4000m
En este caso se observa igualmente la onda directa (0 a 1.5seg), se aprecia una primera
reflexión aproximadamente entre 1.6 y 2 seg., una segunda reflexión a los 3 seg. y una tercera
reflexión a los 4 seg.
Figura32: Shots Gathers correspondientes a un disparo en posición 5200m
En todos los Shot Gathers mostrados, se observa que los que presentan mejor resolución
son los que se encuentran en formato Gray, por los que resulta más conveniente estudiar estos
shots gathers, ya que podemos obtener una interpretación más precisa.
Ordenamiento por CMP
Luego de generar los shots gathers, estos se ordenan en el dominio de los CMP gathers
para poder realizar el procesamiento de los mismos. En este ordenamiento de pueden apreciar
todas las trazas generadas de acuerdo a su CMP.
Figura33: CMP Gathers
Análisis de Velocidad, Corrección NMO y Sección Apliada
Luego de ordenar las trazas de acuerdo a los CMP, el siguiente paso en el procesamiento es el
análisis de velocidades y la corrección NMO. Con SU, es posible realizar estas secuencias de
procesamiento para la simulación realizada del modelo de inversión tectónica.
Para realizar el análisis de velocidades, podemos usar el espectro de velocidades. El atributo
utilizado para generar estos espectros en este caso, es la semblanza.
La semblanza se define como una medida de la coherencia de las velocidades. En este caso, se
puede representar con escala de colores. El color azul, representa semblanza 1, lo cual indica que
el valor de velocidad es muy coherente y por lo tanto confiable, a medida que la semblanza toma
colores más cálidos, va perdiendo coherencia.
A continuación se presentan algunos mapas de semblanza y las correcciones NMO hechas
Figura34: Mapa de Semblanza para CMP=3000m
Figura35: CMP gather antes de la corrección (izquierda) y CMP gather después de la corrección NMO
Figura36: Mapa de Semblanza para CMP=4000m
Figura37: CMP gather antes de la corrección (izquierda) y CMP gather después de la corrección NMO
Figura38: Mapa de Semblanza para CMP=5000m
Figura39: CMP gather antes de la corrección (izquierda) y CMP gather después de la corrección NMO
El hecho de que los eventos se hayan podido horizontalizar indica que la sección ha sido bien
corregida. En las figuras anteriores, se observa la diferencia entre las secciones corregidas y sin
corregir.
Esto indica que el método de corrección NMO basado en mapas de semblanza es realmente
útil a la hora de procesar datos sísmicos. Esto se evidencia con los ejemplos dados.
Al aplicar esta corrección a todos los CMP se genera una sección apilada de la data sísmica.
Esta sección es:
Figura 40: Sección apilada
Mute y Migración de la Data Sísmica
Estos representan los últimos pasos en el procesamiento sísmico. El mute se realiza con el
propósito de eliminar amplitudes no deseadas en la sección, aquellas que no aportan información
relevante, como es el caso se las primeras llegadas.
La migración se realiza para mover los eventos buzantes a sus posiciones correctas.
La migración se obtuvo tomando en cuenta la velocidad y el tiempo. Esta sección comprende
a los resultados obtenidos al realizar la migración con un tiempo de 1.5seg y una velocidad de
1000m/s.
Figura 41: Sección apilada sin migrar (izquierda) y sección apilada migrada (derecha)
Migración para un tiempo de 1.5 seg, y una velocidad de 2000m/s:
Figura 42: Sección apilada sin migrar (izquierda) y sección apilada migrada (derecha)
CONCLUSIONES
Mediante el uso de las herramientas de SU, se pueden generar modelos geológicos de
estructuras y realizar simulaciones con los mismos. Sin embargo, al momento de realizar el
modelo, se debe tener el mayor cuidado posible, suministrando al programa las
coordenadas a graficar, ya que un pequeño error en esta etapa, evita que podamos
obtener el modelo respectivo.
Al momento de interpretar los shots gahters generados, las reflexiones se pueden ver
mejor en el shot gather de formato Gray que en el formato Wigle.
Gracias a la utilización de gráfico de espectro de velocidad, se escogieron valores con
mayor coherencia para aplicar la corrección NMO a las trazas, pudiéndose así
horizontalizar los eventos para corregir por NMO.
Los resultados obtenidos fueron certeros. Esto demuestra el alto grado de confiabilidad
que posee esta simulación.
Los códigos utilizados (suministrados por la ayudante docente) para generar las
simulaciones, fueron de gran ayuda para obtener resultados adecuados.
REFERENCIAS
Regueiro, José. Sísmica para Ingenieros y Geólogos. El Método Sísmico de Reflexión.
Universidad Simón Bolívar. (2007).
Judson L. Ahern . Seismic Reflection Method (2007)
Excess Geophysics . Migration in practice (1999)
Pérez, Verónica. Utilización del paquete Seismic Unix para la enseñanza de la sísmica.
Universidad Simón Bolívar. Departamento de Ciencias de la Tierra. (2008).
Vieira, Adelo. Modelado básico de datos sísmicos preapilados y su correspondiente
secuencia de procesamiento utilizando los programas del paquere Seismic Unix.
Universidad Simón Bolívar. Departamento de Ciencias de la Tierra. (2007).
García, Illich. Procesamiento Sísmico. Fundamentos del procesamiento de senales (2009)
Urdaneta, Vanessa. Procesamiento Sísmico. Análisis de velocidad (2011)
http://faculty.kfupm.edu.sa/ES/ashuhail/Undergraduate/GEOP315/Notes/Chapter6/Ch6-
2010.pdf 31/03/2011
Yilmaz Ö. Seismic Data Analysis. Soceity of Exploration Geophysicists. (2001).
Apéndice 1: 2_perfil_tri.sh
#! /bin/bash
#/////////////////////////////////////////////////////////////////////////#
# #
# PERFILES TRIANGULARIZADOS DE LENTITUD CUADRÁTICA Y VELOCIDAD #
# #
# COMANDO TRIMODEL #
#/////////////////////////////////////////////////////////////////////////#
#---------------------------------------#
#---------------------------------------#
# PARÁMETROS DEFINIDOS POR EL USUARIO #
#---------------------------------------#
#---------------------------------------#
hbox=3 # hbox: alto de la ventana en pixels para los modelos en formato
Post Script
wbox=3 # wbox: ancho de la ventana en pixels para los modelos en formato Post
Script
gtri=2 # escala de grises para los bordes de los triángulos, valores fuera de (0,1)
no los dbujan
#*****************************#
# Perfil de Lentitud #
#*****************************#
### trimodel: construye un modelo triangular de lentitud cuadrática (1/v^2)
# xmin: coordenada x mínima
# xmax: coordenada x máxima
# zmin: coordenada z mínima
# zmax: coordenada z máxima
# xedge: coordenadas x de un borde
# zedge: coordenadas z de un borde
# sedge: lentitud cuadrática (1/v^2) o velocidad a lo largo de un borde
# sfill: valores de lentitud cuadrática (1/v^2) o velocidad para cada espacio cerrado por los bordes
# sfill=x,z,x0,z0,s00,dsdx,dsdz donde:
# * (x,y): es un punto cualquiera en el espacio cerrado deseado
# * s00: lentitud cuadrática (1/v^2)
# * dsdx: variación de la lentitud en x (ds/dx)
# * dsdz: variación de la lentitud en z (ds/dz)
# * (x0,z0): es un punto (x,z) del espacio cerrado donde se conoce la variación de la
# lentitud cuadrática o de la velocidad
# kedge: arreglo de índices para identificar cada borde
trimodel xmin=0 xmax=8 zmin=0 zmax=5 \
1 xedge=0,8 \
zedge=0,0 \
sedge=0,0 \
2 xedge=0,0.5,0.75,1.25,1.45 \
zedge=1.5,1.5,1.5,1.5,1.45 \
sedge=0,0,0,0,0 \
3 xedge=1.15,2,2.5,2.75,3.25 \
zedge=1,1,0.9,0.75,0.65 \
sedge=0,0,0,0,0 \
4 xedge=3.1,3.65,4,4.75,5.5,6.75 \
zedge=1.05,1.05,0.9,0.6,0.5,0.5 \
sedge=0,0,0,0,0,0 \
5 xedge=6.6,7.25,8 \
zedge=1.5,1.5,1.5 \
sedge=0,0,0 \
6 xedge=0,1,1.5,1.75 \
zedge=2,2,2.1,2.2 \
sedge=0,0,0,0 \
7 xedge=1.95,2.3,2.75 \
zedge=2.5,2.4,2.5 \
sedge=0,0,0 \
8 xedge=2.75,3.35,4,4.9,5.6 \
zedge=2.2,2.25,2.45,2.75,3.25 \
sedge=0,0,0,0,0 \
9 xedge=6.35,7,8 \
zedge=2,2,2 \
sedge=0,0,0 \
10 xedge=1.15,1.3,1.45,1.6,1.75,1.95,2.2,2.4,2.55,2.75 \
zedge=1,1.25,1.45,1.75,2.2,2.5,3,3.5,4,4.5 \
sedge=0,0,0,0,0,0,0,0,0,0 \
11 xedge=3.25,3.1,3,2.9,2.8,2.75,2.75,2.65,2.64,2.7,2.75 \
zedge=0.65,1.05,1.25,1.5,1.9,2.2,2.5,3,3.5,4,4.5 \
sedge=0,0,0,0,0,0,0,0,0,0,0 \
12 xedge=0,1.25,2.25,2.75,3.25,3.75,4.25,4.75,5.25,5.6,5.8,6.1,6.35,6.6,6.7,6.75 \
zedge=4.5,4.5,4.5,4.5,4.5,4.45,4.25,4,3.65,3.25,3,2.5,2,1.5,1,0.5 \
sedge=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 \
13 xedge=0,8 \
zedge=5,5 \
sedge=0,0 \
sfill=2,0.5,0,0,0.44,0,0 \
sfill=0.5,1.75,0,0,0.25,0,0 \
sfill=2,2,0,0,0.25,0,0 \
sfill=5,1,0,0,0.25,0,0 \
sfill=7,1.75,0,0,0.25,0,0 \
sfill=1,3,0,0,0.11,0,0 \
sfill=4,4,0,0,0.11,0,0 \
sfill=7,5.5,0,0,0.11,0,0 \
sfill=2.5,3,0,0,0.11,0,0 \
kedge=1,2,3,4,5,6,7,8,9,10,11,12,13 > lentitud
#*****************************#
# Perfil de Velocidad #
#*****************************#
### trimodel: construye un modelo triangular de lentitud cuadrática (1/v^2)
# xmin: coordenada x mínima
# xmax: coordenada x máxima
# zmin: coordenada z mínima
# zmax: coordenada z máxima
# xedge: coordenadas x de un borde
# zedge: coordenadas z de un borde
# sedge: lentitud cuadrática (1/v^2) o velocidad a lo largo de un borde
# sfill: valores de lentitud cuadrática (1/v^2) o velocidad para cada espacio cerrado por los bordes
# sfill=x,z,x0,z0,s00,dsdx,dsdz donde:
# * (x,y): es un punto cualquiera en el espacio cerrado deseado
# * s00: lentitud cuadrática (1/v^2)
# * dsdx: variación de la lentitud en x (ds/dx)
# * dsdz: variación de la lentitud en z (ds/dz)
# * (x0,z0): es un punto (x,z) del espacio cerrado donde se conoce la variación de la
# lentitud cuadrática o de la velocidad
# kedge: arreglo de índices para identificar cada borde
trimodel xmin=0 xmax=8 zmin=0 zmax=5 \
1 xedge=0,8 \
zedge=0,0 \
sedge=0,0 \
2 xedge=0,0.5,0.75,1.25,1.45 \
zedge=1.5,1.5,1.5,1.5,1.45 \
sedge=0,0,0,0,0 \
3 xedge=1.15,2,2.5,2.75,3.25 \
zedge=1,1,0.9,0.75,0.65 \
sedge=0,0,0,0,0 \
4 xedge=3.1,3.65,4,4.75,5.5,6.75 \
zedge=1.05,1.05,0.9,0.6,0.5,0.5 \
sedge=0,0,0,0,0,0 \
5 xedge=6.6,7.25,8 \
zedge=1.5,1.5,1.5 \
sedge=0,0,0 \
6 xedge=0,1,1.5,1.75 \
zedge=2,2,2.1,2.2 \
sedge=0,0,0,0 \
7 xedge=1.95,2.3,2.75 \
zedge=2.5,2.4,2.5 \
sedge=0,0,0 \
8 xedge=2.75,3.35,4,4.9,5.6 \
zedge=2.2,2.25,2.45,2.75,3.25 \
sedge=0,0,0,0,0 \
9 xedge=6.35,7,8 \
zedge=2,2,2 \
sedge=0,0,0 \
10 xedge=1.15,1.3,1.45,1.6,1.75,1.95,2.2,2.4,2.55,2.75 \
zedge=1,1.25,1.45,1.75,2.2,2.5,3,3.5,4,4.5 \
sedge=0,0,0,0,0,0,0,0,0,0 \
11 xedge=3.25,3.1,3,2.9,2.8,2.75,2.75,2.65,2.64,2.7,2.75 \
zedge=0.65,1.05,1.25,1.5,1.9,2.2,2.5,3,3.5,4,4.5 \
sedge=0,0,0,0,0,0,0,0,0,0,0 \
12 xedge=0,1.25,2.25,2.75,3.25,3.75,4.25,4.75,5.25,5.6,5.8,6.1,6.35,6.6,6.7,6.75 \
zedge=4.5,4.5,4.5,4.5,4.5,4.45,4.25,4,3.65,3.25,3,2.5,2,1.5,1,0.5 \
sedge=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 \
13 xedge=0,8 \
zedge=5,5 \
sedge=0,0 \
sfill=2,0.5,0,0,1.5,0,0 \
sfill=0.5,1.75,0,0,2,0,0 \
sfill=2,2,0,0,2,0,0 \
sfill=5,1,0,0,2,0,0 \
sfill=7,1.75,0,0,2,0,0 \
sfill=1,3,0,0,3,0,0 \
sfill=4,4,0,0,3,0,0 \
sfill=7,5.5,0,0,3,0,0 \
sfill=2.5,3,0,0,3,0,0 \
kedge=1,2,3,4,5,6,7,8,9,10,11,12,13 > velocidad
#_______________________________________________________________________________
____________#
# Construcción de los Perfiles #
#_______________________________________________________________________________
____________#
#*****************************#
# Perfil de Lentitud #
#*****************************#
#### Graficación del modelo triangular en formato Post Script ####
### spsplot: plotea una función triangular de lentitud cuadrática (1/v^2) s(x,z), en formato
PostScript
# gtri: escala de grises para los bordes de los triámgulos, valores fuera de (0,1) no los dbujan
# title: título de la gráfica
# labelz: etiqueta del eje z
# labelx: etiqueta del eje x
# dznum: intervalo de muestreo en el eje z
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
spsplot <lentitud gtri=$gtri title="Perfil de lentitud cuadratica" \
labelz="Profundidad (km)" labelx="Distancia (km)" dznum=1 hbox=$hbox wbox=$wbox >
lentitud.ps
#### Graficación del modelo triangular en formato x-window ####
### spsplot: plotea una función triangular de lentitud cuadrática (1/v^2) s(x,z), en formato x-
window
# title: título de la gráfica
# label1: etiqueta del eje z
# label2: etiqueta del eje x
sxplot < lentitud label1="Profundidad (km)" label2="Distancia lentitud (km)" tricolor=none
sxplot < lentitud label1="Profundidad (km)" label2="Distancia lentitud (km)" \
title="las lineas amarillas son los triagulos de la interpolacion"
#*****************************#
# Perfil de Velocidad #
#*****************************#
#### Graficación del modelo triangular en formato Post Script ####
### spsplot: plotea una función triangular de lentitud cuadrática (1/v^2) s(x,z), en formato
PostScript
# gtri: escala de grises para los bordes de los triámgulos, valores fuera de (0,1) no los dbujan
# title: título de la gráfica
# labelz: etiqueta del eje z
# labelx: etiqueta del eje x
# dznum: intervalo de muestreo en el eje z
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
spsplot <velocidad gtri=$gtri title="Perfil de Velocidad" \
labelz="Profundidad (km)" labelx="Distancia (km)" dznum=1000 hbox=$hbox
wbox=$wbox > velocidad.ps
sxplot < velocidad label1="Profundidad (km)" label2="Distancia velocidad (km)" tricolor=none
sxplot < velocidad label1="Profundidad (km)" label2="Distancia velocidad (km)" \
title="las lineas amarillas son los triagulos de la interpolacion"
Apéndice2:
6_varios_shots_rayos.sh
#!/bin/bash
#///////////////////////////////////////////////////////////////#
# #
# TRAZADO DE RAYOS CON EL COMANDO TRIRAY #
# PARA MODELOS TRIANGULARES CONSTRUIDOS CON EL COMANDO TRIMODEL #
# ARREGLO SPLIT SPREAD #
# VARIOS DISPAROS #
# #
#///////////////////////////////////////////////////////////////#
#---------------------------------------#
#---------------------------------------#
# PARÁMETROS DEFINIDOS POR EL USUARIO #
#---------------------------------------#
#---------------------------------------#
#*************************************#
# Perfil de lentitud cuadrática #
#*************************************#
#### Perfil de lentitud cuadrática (1/v^2) ####
### trimodel: construye un modelo triangular de lentitud cuadrática (1/v^2)
## xmin: coordenada x mínima
## xmax: coordenada x máxima
## zmin: coordenada z mínima
## zmax: coordenada z máxima
## xedge: coordenadas x de un borde
## zedge: coordenadas z de un borde
## sedge: lentitud cuadrática (1/v^2) a lo largo de un borde
## sfill: valores de lentitud cuadrática (1/v^2) para cada espacio cerrado por los bordes
## sfill=x,z,x0,z0,s00,dsdx,dsdz donde:
## * (x,y): es un punto cualquiera en el espacio cerrado deseado
## * s00: lentitud cuadrática (1/v^2)
## * dsdx: variación de la lentitud en x (ds/dx)
## * dsdz: variación de la lentitud en z (ds/dz)
## * (x0,z0): es un punto del espacio cerrado donde conozco la variación de la lentitud en x y
z
## kedge: arreglo de índices para identificar cada borde
xmin=0
xmax=8
zmin=0
zmax=5
trimodel xmin=0 xmax=8 zmin=0 zmax=5 \
1 xedge=0,8 \
zedge=0,0 \
sedge=0,0 \
2 xedge=0,0.5,0.75,1.25,1.45 \
zedge=1.5,1.5,1.5,1.5,1.45 \
sedge=0,0,0,0,0 \
3 xedge=1.15,2,2.5,2.75,3.25 \
zedge=1,1,0.9,0.75,0.65 \
sedge=0,0,0,0,0 \
4 xedge=3.1,3.65,4,4.75,5.5,6.75 \
zedge=1.05,1.05,0.9,0.6,0.5,0.5 \
sedge=0,0,0,0,0,0 \
5 xedge=6.6,7.25,8 \
zedge=1.5,1.5,1.5 \
sedge=0,0,0 \
6 xedge=0,1,1.5,1.75 \
zedge=2,2,2.1,2.2 \
sedge=0,0,0,0 \
7 xedge=1.95,2.3,2.75 \
zedge=2.5,2.4,2.5 \
sedge=0,0,0 \
8 xedge=2.75,3.35,4,4.9,5.6 \
zedge=2.2,2.25,2.45,2.75,3.25 \
sedge=0,0,0,0,0 \
9 xedge=6.35,7,8 \
zedge=2,2,2 \
sedge=0,0,0 \
10 xedge=1.15,1.3,1.45,1.6,1.75,1.95,2.2,2.4,2.55,2.75 \
zedge=1,1.25,1.45,1.75,2.2,2.5,3,3.5,4,4.5 \
sedge=0,0,0,0,0,0,0,0,0,0 \
11 xedge=3.25,3.1,3,2.9,2.8,2.75,2.75,2.65,2.64,2.7,2.75 \
zedge=0.65,1.05,1.25,1.5,1.9,2.2,2.5,3,3.5,4,4.5 \
sedge=0,0,0,0,0,0,0,0,0,0,0 \
12 xedge=0,1.25,2.25,2.75,3.25,3.75,4.25,4.75,5.25,5.6,5.8,6.1,6.35,6.6,6.7,6.75 \
zedge=4.5,4.5,4.5,4.5,4.5,4.45,4.25,4,3.65,3.25,3,2.5,2,1.5,1,0.5 \
sedge=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 \
13 xedge=0,8 \
zedge=5,5 \
sedge=0,0 \
sfill=2,0.5,0,0,0.44,0,0 \
sfill=0.5,1.75,0,0,0.25,0,0 \
sfill=2,2,0,0,0.25,0,0 \
sfill=5,1,0,0,0.25,0,0 \
sfill=7,1.75,0,0,0.25,0,0 \
sfill=1,3,0,0,0.11,0,0 \
sfill=4,4,0,0,0.11,0,0 \
sfill=7,5.5,0,0,0.11,0,0 \
sfill=2.5,3,0,0,0.11,0,0 \
kedge=1,2,3,4,5,6,7,8,9,10,11,12,13 > lentitud
#***************************#
# Parámetros de adquisición #
#***************************#
interf=13 # número de interfaces, incluyendo los bordes superior e inferior (kedge
máximo)
nangle=20 # número de ángulos de despegue
fangle=-60 # primer ángulo de despegue
langle=60 # último ángulo de despegue
nxz=500 # número de (x,z) en el archivo rayfile, debe ser mayor que dos
veces el número
# de triángulos intersección por el rayos
fpeak=10 # fpeak: frecuencia (hz) pico de la ondícula ricker (fpeak=0.1/dt)
offset_max=1 # Offset máximo (debe ser un entero)
ID=1 # Intervalo entre puntos de disparos (debe ser un entero)
n1=1000 # Número de muestras en z
d1=0.005 # Intervalo de muestreo en z
# n1*d1=longitud max del eje del vertical del sismograma=dt*nt
hbox=5.0 # hbox: alto de la ventana en pixels para los modelos en formato Post
Script
wbox=8.0 # wbox: ancho de la ventana en pixels para los modelos en formato Post
Script
#_______________________________________________________________________________
____________#
# Trazado de Rayos y Frente de Ondas #
#_______________________________________________________________________________
____________#
#------------------------#
#------------------------#
# PERFILES #
#------------------------#
#------------------------#
#### Graficación del modelo triangular en formato PostScript ####
## spsplot: plotea una función triangular de lentitud cuadrática (1/v^2) s(x,z), en formato Post
Script
# gtri: escala de grises para los bordes de los triángulos
# title: título de la gráfica
# labelz: etiqueta del eje z
# labelx: etiqueta del eje x
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
spsplot < lentitud gtri=0.2 title="Modelo triangular" \
labelz="Profundidad (km)" labelx="Distancia (km)" hbox=$hbox wbox=$wbox > lentitud.ps
#### Graficación del modelo triangular en formato x-window ####
## sxplot: plotea una función triangular de lentitud cuadrática (1/v^2) s(x,z), en formato x-
windows
# gtri: escala de grises para los bordes de los triángulos
# title: título de la gráfica
# label1: etiqueta del eje z
# label2: etiqueta del eje x
# tricolor: color de los bordes de los triángulos
sxplot <lentitud label1="Profundidad (km)" label2="Distancia (km)" \
title="Modelo triangular" tricolor=none &
#--------------------------------------#
#--------------------------------------#
# CICLO DE DISPAROS POR CADA INTERFACE #
#--------------------------------------#
#--------------------------------------#
LT=$(echo "scale=5; 2*$offset_max" | bc -l) # Longitud del tendido
j=2 # Primera interface en la que se efectuará el trazado de rayos para
cada shot
xs=$offset_max # Poscición del primer disparo
shotf=$((xmax - offset_max)) # Poscición del último disparo
while [ "$xs" -le "$shotf" ]
do
for ((i=$j; i<$interf; ++i))
do
# CÁLCULO DE LOS PARÁMETROS NECESARIOS PARA CONSTRUIR EL TENDIDO #
fx=$(echo "scale=3; $xs - $offset_max" | bc -l) # Coordenada x de la primera muestra
xf=$(echo "scale=3; $LT + $fx" | bc -l) # Coordenada x de la última muestra
a=100
b=$(echo "scale=3; $LT/$a" | bc -l) # Calculo de d2=IR
d2=$b # Intervalo de muestreo en x
IR=$b # Intervalo entre grupos de receptores
e=$(echo "scale=3; $LT/$IR" | bc -l)
ng=$(echo "scale=3; $e + 1" | bc -l) # ng: número de geófonos distribuidos
uniformemente
#### Paŕametros para convertir el modelo triangular en un modelo uniforme
nx=$(echo "scale=2; $LT/$IR + 1" | bc -l) # Número de muestras en x
dx=$IR # Intervalo de muestreo en x (segunda dimensión)
nz=$(echo "scale=2; $zmax/$IR + 1" | bc -l) # Número de muestras en z
dz=$IR # Intervalo de muestreo en z (primera dimensión)
echo i=$i xs=$xs
#********************#
# Trazado de Rayos #
#********************#
## triray: trazado de rayos dinámico para un modelo triangular de lentitud cuadrática (1/v^2).
Parámetros:
# rayendsfile: archivo que contiene los parámetros de rayo
# wavefile: archivo que contiene las coordenadas x,z de los rayos uniformemente muestreadas en
tiempo, este archivo
# nos permite graficar el frente de ondas
# nt: número de pares x,z en el archivo wavefile
# xs: coordenada x de la fuente
# zs: coordenada z de la fuente
# rayfile: archivo con las coordenadas (x,z) de las intersecciones rayo-borde
# nxz número de pares (x,z) en el archivo rayfile, debe ser mayor al doble de el
# número de triángulos intersectados por el rayo
# infofile: archivo ASCII con la infomación de rayos
# nangle: número de ángulos de despeque
# fangle: primer ángulo de despegue
# langle: último ángulo de despegue
# refseq: índice del reflector, seguido de una secuencia de reflexión (1), transmisión (0) o final del
rayo (-1)
# krecord: si se especifica, sólo los rayos incidentes en la interface con ese índice se muestran
triray <lentitud >rayendsfile_$xs$i wavefile=waves_$xs$i nt=10 xs=$xs zs=0 \
rayfile=rayfile_$xs$i nxz=$nxz infofile=rayos_$xs$i\
nangle=$nangle fangle=$fangle langle=$langle \
refseq=$i,1 refseq=1,-1
##krecord=1
## xgraph: plotea n[i] coordenadas de pares (x,y)en formato X-Windows. Parámetros:
# nplot: número de diagramas, es calculado por triray
# n: número de puntos por gráfica
# x1beg: valor donde comienza el eje z
# x1end: valor donde termina el eje z
# x1beg: valor donde comienza el eje x
# x2end: valor donde termina el eje x
# style: seismic= eje1 horizontal, eje2 vertical
# normal= eje1 vertical, eje2 horizontal
# linecolor: color de línea
# label1: etiqueta del eje z
# label2: etiqueta del eje x
# title: título de la gráfica
xgraph <rayfile_$xs$i -geom 650x300+650+330 nplot=`cat outpar` n=$nxz \
x1beg=$zmin x1end=$zmax x2beg=$fx x2end=$xf f2=$fx style=seismic linecolor=4 \
label1="Profundidad (km)" label2="Distancia (km)" title="Raypaths_$xs$i" &
## psgraph: plotea n[i] coordenadas de pares (x,y). Parámetros:
# nplot: número de diagramas, es calculado por triray
# n: número de puntos por gráfica
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# x1beg: valor donde comienza el eje z
# x1end: valor donde termina el eje z
# x1beg: valor donde comienza el eje x
# x2end: valor donde termina el eje x
# f2: Coordenada x de la primera muestra
# style: seismic= eje1 horizontal, eje2 vertical
# normal= eje1 vertical, eje2 horizontal
# linecolor: color de línea
# label1: etiqueta del eje z
# label2: etiqueta del eje x
# title: título de la gráfica
# d1num: intervalo de muestreo en el primer eje (z)
# d2num: intervalo de muestreo en el segundo eje (x)
psgraph <rayfile_$xs$i nplot=`cat outpar` n=$nxz hbox=$hbox wbox=$wbox \
x1beg=$zmin x1end=$zmax x2beg=$fx x2end=$xf f2=$fx style=seismic linecolor=blue \
d1num=0.5 d2num=1.0 >rayos_$xs$i.ps
#*******************************#
# Sismograma Sintético Gauseano #
#*******************************#
## gbbeam: sismograma sintético gauseano para un modelo de lentitud cuadrática. Parámetros
# rayendsfile: archivo que contiene los parámetros de rayo, es calculado por triray
# bw: amplitud de rayo en la frecuencia máxima
# xg: coordenadas máxima y mínima de los geófonos en la superficie
# zg: coordenada z de los geófonos
# ng: número de geófonos distribuidos uniformemente
# lscale: restringe el rango de extrapolación
# krecord: índice del borde donde se encuentran los geófonos
# fpeak: frecuencia (hz) pico de la ondícula ricker (fpeak=0.1/dt)
# nt: Número de muestras en tiempo
# dt: Intervalo de muestreo en tiempo
# nt*dt=tiempo max del eje del sismograma=n1*d1
# ft: primera muestra en tiempo
# infofile: archivo ASCII con la infomación de rayos
gbbeam<rayendsfile_$xs$i \
bw=0 xg=$fx,$xf zg=0,0 ng=$ng lscale=0.5 \
krecord=1 fpeak=$fpeak nt=$n1 dt=$d1 ft=0 infofile=sismograma_$xs$i >sintetico_$xs$i
## xwigb: genera una imagen X-Windows en formato wigle trace display. Parámetros:
# n1: número de muestras en la primera dimensión (z)
# d1: intervalo de muestras en la primera dimensión (z)
# n2: número de muestras en la segunda dimensión (x)
# d2: intervalo de muestras en la segunda dimensión (x)
# xcur: valor máximo de la amplitud de la traza en la gráfica
# title: título de la gráfica
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# f2: Coordenada x de la primera muestra
# f1: Coordenada z de la primera muestra
xwigb <sintetico_$xs$i n1=$n1 d1=$d1 n2=$n2 d2=$d2 xcur=3.0 title="sintetico_$xs$i" xbox=670
ybox=660\
perc=100 hbox=300 wbox=650 f1=0 f2=$fx &
## pswigb: genera una imagen Post Script en formato wigle trace display. Parámetros:
# n1: número de muestras en la primera dimensión (z)
# d1: intervalo de muestras en la primera dimensión (z)
# n2: número de muestras en la segunda dimensión (x)
# d2: intervalo de muestras en la segunda dimensión (x)
# xcur: valor máximo de la amplitud de la traza en la gráfica
# title: título de la gráfica
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# f2: Coordenada x de la primera muestra
# f1: Coordenada z de la primera muestra
pswigb <sintetico_$xs$i n1=$n1 d1=$d1 n2=$n2 d2=$d2 xcur=3.0 title="sintetico_$xs$i"\
perc=100 hbox=4.0 wbox=6.0 f1=0 f2=$fx >sintetico_$xs$i.ps
#******************#
# Frente de Ondas #
#******************#
## transp: trasnpuesta de los elementos de una matrix. Parámetros
# n1: número de elementos de de la primera dimensión de la matrix
# n2: número de elementos de de la segunda dimensión de la matrix
# nbpe: número de bytes por elemento de la matriz
transp< waves_$xs$i > wavestransp_$xs$i n1=10 n2=$nangle nbpe=8
## xgraph: plotea n[i] coordenadas de pares (x,y)en formato X-Windows. Parámetros:
# nplot: número de diagramas
# n: número de puntos por gráfica
# x1beg: valor donde comienza el eje z
# x1end: valor donde termina el eje z
# x1beg: valor donde comienza el eje x
# x2end: valor donde termina el eje x
# f2: Coordenada x de la primera muestra
# style: seismic= eje1 horizontal, eje2 vertical
# normal= eje1 vertical, eje2 horizontal
# linecolor: color de línea
# label1: etiqueta del eje z
# label2: etiqueta del eje x
# title: título de la gráfica
# d1num: intervalo de muestreo en el primer eje (z)
# d2num: intervalo de muestreo en el segundo eje (x)
# linewidth: ancho de la linea en pixels (cero para no dibujar la linea)
# mark: tipo de punto utilizado en el diagrama
# marksize: tamaño del punto utilizado en pixels
xgraph <wavestransp_$xs$i -geom 650x300+670+0 nplot=10 n=$nangle hbox=2.0 wbox=6.0 \
x1beg=$zmin x1end=$zmax x2beg=$fx x2end=$xf f2=$fx style=seismic linecolor=2 \
label1="Profundidad (km)" label2="Distancia (km)" title="wavefronts_$xs$i" \
d1num=0.5 d2num=1.0 linewidth=0.0 mark=7 marksize=2
## psgraph: plotea n[i] coordenadas de pares (x,y). Parámetros:
# nplot: número de diagramas
# n: número de puntos por gráfica
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# x1beg: valor donde comienza el eje z
# x1end: valor donde termina el eje z
# x1beg: valor donde comienza el eje x
# x2end: valor donde termina el eje x
# f2: Coordenada x de la primera muestra
# style: seismic= eje1 horizontal, eje2 vertical
# normal= eje1 vertical, eje2 horizontal
# linecolor: color de línea
# label1: etiqueta del eje z
# label2: etiqueta del eje x
# title: título de la gráfica
# d1num: intervalo de muestreo en el primer eje (z)
# d2num: intervalo de muestreo en el segundo eje (x)
# linewidth: ancho de la linea en pixels (cero para no dibujar la linea)
# mark: tipo de punto utilizado en el diagrama
# marksize: tamaño del punto utilizado en pixels
psgraph <wavestransp_$xs$i nplot=10 n=$nangle hbox=$hbox wbox=$wbox \
x1beg=$zmin x1end=$zmax x2beg=$fx x2end=$xf f2=$fx style=seismic linecolor=red \
d1num=0.5 d2num=1.0 linewidth=0.0 mark=7 marksize=2 >wavefronts_$xs$i.ps
#******************************************************#
# Fusión del modelo, los rayos y frente de ondas en PS #
#******************************************************#
## Construcción del modelo uniforme
### tri2uni: convierte un modelo triangular en un modelo uniformemente muestreado.
Parámetros:
# n1: número de muestras en la primera dimensión (z)
# n2: número de muestras en la segunda dimensión (x)
# d1: intervalo de muestras en la primera dimensión (z)
# d2: intervalo de muestras en la segunda dimensión (x)
# f2: Coordenada x de la primera muestra
tri2uni < lentitud > lentitud_uni \
n1=$nz n2=$nx d1=$dz d2=$dx f2=$fx
### psimage: genera una imagen en formato postscrip. Parámetros:
# n1: número de muestras en la primera dimensión (z)
# n2: número de muestras en la segunda dimensión (x)
# d1: intervalo de muestras en la primera dimensión (z)
# d2: intervalo de muestras en la segunda dimensión (x)
# f2: Coordenada x de la primera muestra
# legend: despliega la escala de colores
# units: unidades de la escala de colores
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# lx: posición de la escala de colores en pixels
# d1num: intervalo de muestreo en el primer eje (z)
# d2num: intervalo de muestreo en el segundo eje (x)
psimage < lentitud_uni x1beg=$zmin x1end=$zmax x2beg=$fx x2end=$xf \
n1=$nz n2=$nx d1=$dz d2=$dx f2=$fx \
d1num=0.5 d2num=1.0 hbox=$hbox wbox=$wbox \
legend=1 units='lentitud cuadratica (seg^2/m^2)' >modelo.ps
#Fusión del modelo y los rayos
## psmerge: fusiona archivos Post Script
# in: archivo Post Script a fusionar
psmerge in=modelo.ps in=rayos_$xs$i.ps >rayosmodel_$xs$i.ps
#Fusión del modelo y el frente de ondas
## psmerge: fusiona archivos Post Script
# in: archivo Post Script a fusionar
psmerge in=modelo.ps in=wavefronts_$xs$i.ps >wavesmodel_$xs$i.ps
#Fusión del modelo,los rayos y el frente de ondas
## psmerge: fusiona archivos Post Script
# in: archivo Post Script a fusionar
psmerge in=modelo.ps in=rayos_$xs$i.ps in=wavefronts_$xs$i.ps >rayosmodelwaves_$xs$i.ps
pause
echo | tr -d "\012" >/dev/tty
done
# Siguiente shot (shot actual más 1 km)
xs=$((xs + ID))
done
Apéndice 3:
8_varios_shots_acusticas.sh
#! /bin/bash
#///////////////////////////////////////////////////////////////#
# #
# MODELADO DE PROPAGACIÓN DE ONDAS ACÚSTICAS #
# EN DIFERENCIAS FINITAS CON EL COMANDO SUFDMOD2 #
# PARA MODELOS TRIANGULARES CONSTRUIDOS CON EL COMANDO TRIMODEL #
# ARREGLO SPLIT SPREAD. #
# VARIOS DISPAROS #
# #
#///////////////////////////////////////////////////////////////#
#---------------------------------------#
#---------------------------------------#
# PARÁMETROS DEFINIDOS POR EL USUARIO #
#---------------------------------------#
#---------------------------------------#
#***************************#
# Parámetros de adquisición #
#***************************#
#### La unidad selecionada es el metro
offset_max=2000 # Offset máximo
IR=20 # Intervalo entre grupos de receptores
fmax=20 # Frecuencia máxima de la ondícula fuente
tmax=5 # Tiempo máximo de grabación
zs=0 # Coordenada z de la fuente
hsz=0 # Coordenada z de la linea horizontal del sismograma
(profundidad de los receptores)
ID=400 # Intervalo entre puntos de disparos
#************************************#
# Parámetros del modelo del subsuelo #
#************************************#
Longitud=8000 # Longitud del modelo en metros
Profundidad=5000 # Profundidad del modelo en metros
fz=0 # Coordenada z de la primera muestra
min_shot=1500 # Valor mínimo del shot que se desea graficar
max_shot=6500 # Valor máximo del shot que se desea graficar
min_cmp=1500 # Valor mínimo del cmp que se desea graficar
max_cmp=6500 # Valor máximo del cmp que se desea graficar
clip=0.49 # Valor máximo de la amplitud de la traza en la gráfica de los shots
gathers formato
# wigle trace display
hbox=5 # hbox: alto de la ventana en pixels para los modelos en formato
Post Script
wbox=8 # wbox: ancho de la ventana en pixels para los modelos en
formato Post Script
#*****************************#
# Perfil de Velocidad #
#*****************************#
### trimodel: construye un modelo triangular de velocidad (m/s). Parámetros
## xmin: coordenada x mínima
## xmax: coordenada x máxima
## zmin: coordenada z mínima
## zmax: coordenada z máxima
## xedge: coordenadas x de un borde
## zedge: coordenadas z de un borde
## sedge: velocidad (m/s) a lo largo de un borde
## sfill: valores de velocidad (m/s) para cada espacio cerrado por los bordes
## sfill=x,z,x0,z0,s00,dsdx,dsdz donde:
## * (x,y): es un punto cualquiera en el espacio cerrado deseado
## * s00: velocidad (m/s)
## * dsdx: variación de la lentitud en x (ds/dx)
## * dsdz: variación de la lentitud en z (ds/dz)
## * (x0,z0): es un punto del espacio cerrado donde conozco la variación de la velocidad (m/s)
en x y z
## kedge: arreglo de índices para identificar cada borde
trimodel xmin=0 xmax=8000 zmin=0 zmax=5000 \
1 xedge=0,8000 \
zedge=0,0 \
sedge=0,0 \
2 xedge=0,500,750,1250,1450 \
zedge=1500,1500,1500,1500,1450 \
sedge=0,0,0,0,0 \
3 xedge=1150,2000,2500,2750,3250 \
zedge=1000,1000,900,750,650 \
sedge=0,0,0,0,0 \
4 xedge=3100,3650,4000,4750,5500,6750 \
zedge=1050,1050,900,600,500,500 \
sedge=0,0,0,0,0,0 \
5 xedge=6600,7250,8000 \
zedge=1500,1500,1500 \
sedge=0,0,0 \
6 xedge=0,1000,1500,1750 \
zedge=2000,2000,2100,2200 \
sedge=0,0,0,0 \
7 xedge=1950,2300,2750 \
zedge=2500,2400,2500 \
sedge=0,0,0 \
8 xedge=2750,3350,4000,4900,5600 \
zedge=2200,2250,2450,2750,3250 \
sedge=0,0,0,0,0 \
9 xedge=6350,7000,8000 \
zedge=2000,2000,2000 \
sedge=0,0,0 \
10 xedge=1150,1300,1450,1600,1750,1950,2200,2400,2550,2750 \
zedge=1000,1250,1450,1750,2200,2500,3000,3500,4000,4500 \
sedge=0,0,0,0,0,0,0,0,0,0 \
11 xedge=3250,3100,3000,2900,2800,2750,2750,2650,2640,2700,2750 \
zedge=650,1050,1250,1500,1900,2200,2500,3000,3500,4000,4500 \
sedge=0,0,0,0,0,0,0,0,0,0,0 \
12
xedge=0,1250,2250,2750,3250,3750,4250,4750,5250,5600,5800,6100,6350,6600,6700,67
50 \
zedge=4500,4500,4500,4500,4500,4450,4250,4000,3650,3250,3000,2500,2000,1500,1000
,500 \
sedge=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 \
13 xedge=0,8000 \
zedge=5000,5000 \
sedge=0,0 \
sfill=2000,500,0,0,1500,0,0 \
sfill=500,1750,0,0,2000,0,0 \
sfill=2000,2000,0,0,2000,0,0 \
sfill=5000,1000,0,0,2000,0,0 \
sfill=7000,1750,0,0,2000,0,0 \
sfill=1000,3000,0,0,3000,0,0 \
sfill=4000,4000,0,0,3000,0,0 \
sfill=7000,5500,0,0,3000,0,0 \
sfill=2500,3000,0,0,3000,0,0 \
kedge=1,2,3,4,5,6,7,8,9,10,11,12,13 > velocidad
#_______________________________________________________________________________
____________#
# Modelado #
#_______________________________________________________________________________
____________#
#### Graficación del modelo triangular en formato Post Script ####
### spsplot: plotea una función triangular en formato Post Script
## gtri: gray to draw non-fixed edges of triangles (pone más grises o menos grises los bordes)
## title: título de la gráfica
## labelz: etiqueta del eje z
## labelx: etiqueta del eje x
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
spsplot < velocidad gtri=0.5 title="modelo triangular" \
labelz="Profundidad (km)" labelx="Distancia (km)" hbox=$hbox wbox=$wbox >
velocidad_tri.ps
#### Graficación del modelo triangular en formato x-windows ####
### spsplot: plotea una función triangular de lentitud cuadrática (1/v^2) s(x,z), en formato x-
windows
## gtri: gray to draw non-fixed edges of triangles (pone más grises o menos griese los bordes)
## title: título de la gráfica
## label1: etiqueta del eje z
## label2: etiqueta del eje x
sxplot <velocidad label1="Profundidad (km)" label2="DIstancia (km)" \
title="modelo triangular"
#--------------------------------------#
#--------------------------------------#
# CONSTRUCCIÓN DEl PERFIL UNIFORME #
#--------------------------------------#
#--------------------------------------#
LT=$((2*offset_max)) # Longitud del tendido
NR=$((LT/IR+1)) # Número de grupos de receptores
ND=$(((Longitud-LT)/ID)) # Número de disparos
nx=$((LT/IR+1)) # Número de muestras en x
dx=$IR # Intervalo de muestreo en x (segunda dimensión)
nz=$((Profundidad/IR+1)) # Número de muestras en z
dz=$IR # Intervalo de muestreo en z (primera dimensión)
fpeak=$((fmax/2)) # Frecuencia (hz) pico de la ondícula ricker (fpeak=0.5*fmax)
LIMIT=$((ND*ID-ID)) # LIMIT es el límite del tendido para el arreglo seleccionado
# LIMIT= número de disparos*intervalo entre disparos-intervalo
entre disparos
for ((fx=0 ; fx <=LIMIT ; fx=$((fx+ID)) )) # fx: Coordenada x de la primera muestra
do
#**************************************#
# Modelo Uniforme: Perfil de Velocidad #
#**************************************#
### tri2uni: convierte un modelo triangular en un modelo uniformemente muestreado.
Parámetros:
# n1: número de muestras en la primera dimensión (z)
# n2: número de muestras en la segunda dimensión (x)
# d1: intervalo de muestras en la primera dimensión (z)
# d2: intervalo de muestras en la segunda dimensión (x)
tri2uni < velocidad > velocidad_uni\
f1=$fz f2=$fx n1=$nz n2=$nx d1=$dz d2=$dx
#### Graficación del perfil de velocidad (Formato X-Windows) ####
### ximage: genera una imagen en formato x-windows. Parámetros:
# n1: número de muestras en la primera dimensión (z)
# n2: número de muestras en la segunda dimensión (x)
# d1: intervalo de muestras en la primera dimensión (z)
# d2: intervalo de muestras en la segunda dimensión (x)
# f2: Coordenada x de la primera muestra
# f1: Coordenada z de la primera muestra
# legend: despliega la escala de colores
# units: unidades de la escala de colores
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# lx: posición de la escala de colores en pixels
# xbox: x en pixels de la esquina superior izquierdo de la ventana
# ybox: y en pixels de la esquina superior izquierdo de la ventana
# title: título de la gráfica
ximage < velocidad_uni n1=$nz n2=$nx d1=$dz d2=$dx f2=$fx f1=$fz \
title="perfil de velocidad shot $((fx+offset_max))m" label1='Profundidad (m)'
label2='Distancia (m)'\
legend=1 xbox=10 ybox=10 lx=0.0 units='Velocidad (m/seg)' &
#### Graficación del perfil de velocidad (Formato PostScript) ####
### psimage: genera una imagen en formato postscrip. Parámetros:
# n1: número de muestras en la primera dimensión (z)
# n2: número de muestras en la segunda dimensión (x)
# d1: intervalo de muestras en la primera dimensión (z)
# d2: intervalo de muestras en la segunda dimensión (x)
# f2: Coordenada x de la primera muestra
# f1: Coordenada z de la primera muestra
# legend: despliega la escala de colores
# units: unidades de la escala de colores
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# lx: posición de la escala de colores en pixels
# d1num: intervalo de muestreo en el primer eje (z)
# d2num: intervalo de muestreo en el segundo eje (x)
# title: título de la gráfica
# legendfont: tipo de letra para el título
# labelsize: tamaño de letra para las etiquetas de los ejes
# titlesize: tamaño de letra para el título
psimage < velocidad_uni n1=$nz n2=$nx d1=$dz d2=$dx f2=$fx f1=$fz \
title="Perfil de Velocidad correspondiente a un disparo en la posicion $((fx+offset_max))" \
label1='Profundidad (m)' label2='Distancia (m)' \
legend=1 units='Velocidad (m/seg)'hbox=$hbox wbox=$wbox \
lx=0 d1num=500 d2num=1000 \
legendfont=times_roman8 labelsize=12 titlesize=18 >velocidad{$((fx+offset_max))}.ps
#psimage < velocidad_uni n1=$nz n2=$nx d1=$dz d2=$dx f2=$fx f1=$fz \
# title="Perfil de Velocidad" label1='Profundidad (m)' label2='Distancia (m)' \
# legend=1 units='Velocidad (m/seg)'hbox=$hbox wbox=$wbox \
# lx=0 d1num=500 d2num=1000 \
# legendfont=times_roman8 labelsize=12 titlesize=18 \
# wrgb=1.0,.5,0 grgb=0,.7,1.0 brgb=0,1.0,0 >velocidad_color.ps
#---------------------------------------------#
#---------------------------------------------#
# MODELADO DE PROPAGACIÓN DE ONDAS ACÚSTICAS #
#---------------------------------------------#
#---------------------------------------------#
### sufdmod2:realiza un modelado en diferencias finitas de segundo orden de la
### ecuación de ondas acústicas, en un modelo uniforme del subsuelo. Parámetros:
# dfile: archivo que contiene la densidad d(x,z)
# nx: Número de muestras en x
# nz: Número de muestras en z
# dx: Intervalo de muestreo en x (segunda dimensión)
# dz: Intervalo de muestreo en z (primera dimensión)
# fx: Coordenada x de la primera muestra
# fz: Coordenada z de la primera muestra
# zs: Coordenada z de la fuente
# xs: Coordenada x de la fuente
# fpeak: Frecuencia (hz) pico de la ondícula ricker (fpeak=0.5*fmax)
# fmax: Frecuencia máxima de la ondícula fuente
# hsz: Coordenada z de la linea horizontal del sismograma (profundidad de los receptores)
# tmax: Tiempo máximo de grabación
# abs=1,1,1,1: absorbe las condiciones de borde en los lados
# superior,izquierdo,inferior y derecho del modelo
# mt: número de pasos en tiempo (dt) para el archivo de salida
# hsfile: archivo de salida para la linea horizontal del sismograma [nx][nt]
sufdmod2 < velocidad_uni \
nz=$nz dz=$dz nx=$nx dx=$dx fx=$fx fz=$fz \
zs=$zs xs=$((fx+offset_max)) fpeak=$fpeak fmax=$fmax \
hsz=$hsz tmax=$tmax abs=1,1,1,1 mt=2 \
hsfile=Shotgather{$((fx+offset_max))} >ONDAS
#### Película de propagación de ondas (Formato PostScript) ####
### supsmovie: genera una película de datos segy en formato PostScript. Parámetros:
# n1: número de muestras en la primera dimensión (z)
# n2: número de muestras en la segunda dimensión (x)
# d1: intervalo de muestras en la primera dimensión (z)
# d2: intervalo de muestras en la segunda dimensión (x)
# f2: Coordenada x de la primera muestra
# f1: Coordenada z de la primera muestra
# clip: Valor máximo de la amplitud de la traza en la gráfica
# title: título de la gráfica
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# d1num: intervalo de muestreo en el primer eje (z)
# d2num: intervalo de muestreo en el segundo eje (x)
# lx: posición de la escala de colores en pixel
# labelsize: tamaño de letra para las etiquetas de los ejes
# titlesize: tamaño de letra para el título
supsmovie < ONDAS \
n1=$nz d1=$dz n2=$nx d2=$dx f2=$fx f1=$fz clip=0.3\
title="Propagacion de ondas acusticas correspondiente a un disparo en la posicion
$((fx+offset_max))" \
label1='Pofundidad (m)' label2='Distancia (m)' \
hbox=5 wbox=5 d1num=500 d2num=500 lx=0 labelsize=17 titlesize=12 >
ondas{$((fx+offset_max))}.ps
#### Película de propagación de ondas (Formato X-Windows) ####
#### suxmovie:genera una película de datos segy en formato X-Window. Parámetros:
# n1: número de muestras en la primera dimensión (z)
# n2: número de muestras en la segunda dimensión (x)
# d1: intervalo de muestras en la primera dimensión (z)
# d2: intervalo de muestras en la segunda dimensión (x)
# f2: Coordenada x de la primera muestra
# f1: Coordenada z de la primera muestra
# clip: Valor máximo de la amplitud de la traza en la gráfica
# title: título de la gráfica
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# loop=1 la película se repite constantemente, loop=0 la película sólo aparece una vez
suxmovie < ONDAS n1=$nz d1=$dz n2=$nx d2=$dx f2=$fx f1=$fz \
title="Propagacion de ondas acusticas correspondiente a un disparo en la posicion
$((fx+offset_max))" \
label1='Pofundidad (m)' label2='Distancia (m)'\
clip=0.3 loop=1
#### Graficación del Shot Gathers (Formato PostScript) ####
### supswigb: genera una imagen Post Script de un conjunto de datos segy en
### formato wigle trace display. Parámetros:
# clip: Valor máximo de la amplitud de la traza en la gráfica
# title: título de la gráfica
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# labelsize: tamaño de letra para las etiquetas de los ejes
# titlesize: tamaño de letra para el título
# d2num: intervalo de muestreo en el segundo eje (x)
supswigb < Shotgather{$((fx+offset_max))} clip=$clip f2=$fx f1=$fz \
title="Shot Gather correspondiente a un disparo en la posicion $((fx+offset_max))" \
label1='tiempo (seg)' label2='Distancia (m)' \
wbox=8.5 hbox=8.5 titlesize=14 labelsize=18 d2num=500 >
Shotgather_wigle{$((fx+offset_max))}.ps
### supsimage: genera una imagen Post Script de un conjunto de datos segy en
### escala de grises. Parámetros:
# perc: porcentaje para determinar el clip
# title: título de la gráfica
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# labelsize: tamaño de letra para las etiquetas de los ejes
# titlesize: tamaño de letra para el título
# d2num: intervalo de muestreo en el segundo eje (x)
supsimage < Shotgather{$((fx+offset_max))} clip=0.25 f2=$fx f1=$fz \
title="Shot Gather correspondiente a un disparo en la posicion $((fx+offset_max))" \
label1='tiempo (seg)' label2='Distancia (m)' \
wbox=8.5 hbox=8.5 titlesize=14 labelsize=18 d2num=500 >
Shotgather_gray{$((fx+offset_max))}.ps
### Graficación del Shot Gathers (Formato X-Windows)###
### suxwigb: genera una imagen X-Window de un conjunto de datos segy en
### formato wigle trace display. Parámetros:
# clip: Valor máximo de la amplitud de la traza en la gráfica
# title: título de la gráfica
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
suxwigb < Shotgather{$((fx+offset_max))} clip=$clip f2=$fx f1=$fz \
title="Shot Gather correspondiente a la posicion $((fx+offset_max))" \
label1='Tiempo (seg)' label2='Distancia (m)'
### suximage: genera una imagen X-Windows de un conjunto de datos segy en
### escala de grises. Parámetros:
# perc: porcentaje para determinar el clip
# title: título de la gráfica
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
suximage < Shotgather{$((fx+offset_max))} clip=0.25 f2=$fx f1=$fz \
title="Shot Gather correspondiente a la posicion $((fx+offset_max))" \
label1='Tiempo (seg)' label2='Distancia (m)'
done
#------------------------------------------------------------------------------------------#
#------------------------------------------------------------------------------------------#
# SORTING CMP #
#------------------------------------------------------------------------------------------#
#------------------------------------------------------------------------------------------#
#**************************************************************#
# Concanetación de los Shot Gathers obtenidos #
#**************************************************************#
# cat: concatena un conjunto de archivos
cat Shotgather* > SHOTS
## Ajuste del Header del archivo SHOTS
# sushw: ajusta los parámetros del header de un archivo con formato SU
# Parámetros de sushw:
# key:
# gx:coordenada x de los receptores
# tracl: secuencia numérica de las trazas de un archivo sísmico
# tracr: secuencia numérica entre carriles
# tracf: secuencia de las trazas para cada Shot Gather
# sx: ubicación x de la fuente
# fldr: número de archivo
# offset: distancia fuente-receptor.
# a: valor(s) en la primera traza
# b: incremento dentro del grupo (s)
# c: incremento del grupo(s)
# j: número de elementos en un grupo
sushw < SHOTS key=gx a=0 b=$IR c=$ID j=$NR > SHOTS.HEA
sushw <SHOTS.HEA key=tracl,tracr,tracf,sx,fldr,offset a=1,1,1,$(($LT/2)),1,-$(($LT/2))
b=1,1,1,0,0,$IR c=0,0,0,$ID,1,0 j=$(($NR*$ND)),$(($NR*$ND)),$NR,$NR,$NR,$NR > SHOTS.HEADER
# suchw: cambia los parámetros del header de un archivo con formato su
# Parámetros de sushw:
# b: escala del primer parámetro key
# c: escala del segundo parámetro key
# d: escala total
# gx: coordenada x de los receptores
# sx: ubicación x de la fuente
# cdp: punto medio común
suchw < SHOTS.HEADER key1=cdp key2=gx key3=sx b=1 c=1 d=2 > SHOTS.CMP
#### Gráfica de los Shots Gathers obtenidos y concatenados
# suwind: permite seleccionar trazas por medio de un campo específico del header
# min: valor minimo del key
# max: valor max del key
# sx: ubicación x de la fuente
# suxwigb:genera una imagen (wiggle) de un conjunto de datos segy en formato x-windows
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# title: título de la gráfica
# clip:Valor máximo de la amplitud de la traza en la gráfica
suwind <SHOTS.CMP key=sx min=$min_shot max=$max_shot|
suxwigb clip=0.3 title="Shots gathers" label1='tiempo (seg)' label2='distancia (m)'
# suximage:genera una imagen de un conjunto de datos segy en formato x-windows
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# title: título de la gráfica
# perc: porcentaje para determinar el clip
suwind <SHOTS.CMP key=sx min=$min_shot max=$max_shot|
suximage perc=90 title="Shots gathers" label1='tiempo (seg)' label2='distancia (m)'
#### Gráfica de los Shots Gathers obtenidos en formato PostScript
## supswigb: genera una imagen (wiggle) de un conjunto de datos segy en formato Post Script
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# title: título de la gráfica
# clip: Valor máximo de la amplitud de la traza en la gráfica
# legendfont: tipo de letra para el título
# labelsize: tamaño de letra para las etiquetas de los ejes
# titlesize: tamaño de letra para el título
# d2num: intervalo de muestreo en el segundo eje (x)
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
suwind <SHOTS.CMP key=sx min=$min_shot max=$max_shot|
supswigb clip=0.3 title="Shots gathers" label1='tiempo (seg)' label2='distancia (m)'\
wbox=8.5 hbox=8.5 titlesize=10 labelsize=18 d2num=500 > wshotsgathers.ps
## supsimage: genera una imagen de un conjunto de datos segy en formato Post Script
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# title: título de la gráfica
# clip:Valor máximo de la amplitud de la traza en la gráfica
# title: título de la gráfica
# legendfont: tipo de letra para el título
# labelsize: tamaño de letra para las etiquetas de los ejes
# titlesize: tamaño de letra para el título
# d2num: intervalo de muestreo en el segundo eje (x)
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
suwind <SHOTS.CMP key=sx min=$min_shot max=$max_shot|
supsimage clip=0.3 title="Shots gathers" label1='tiempo (seg)' label2='distancia (m)'\
wbox=8.5 hbox=8.5 titlesize=10 labelsize=18 d2num=500 > shotsgathers.ps
#*************************#
# Orden CMP #
#*************************#
## Ordenamiento por CMP
# susort: clasifica los headers de datos segy basandose en key
susort < SHOTS.CMP > CMP cdp
## Graficación de los CMP Gathers formato X-Windows
# suwind: permite al usuario establecer los valores de un campo específico del header
# min: valor minimo del key
# max: valor max del key
# key=cdp: Número de conjunto de CMP
# f2: primera muestra en x
# d2: intervalo de muestreo en x
# d2num: intervalo en los valores del eje x
# suxwigb:genera una imagen (wiggle) de un conjunto de datos segy en formato x-window
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# title: título de la gráfica
# clip:Valor máximo de la amplitud de la traza en la gráfica
suwind < CMP key=cdp min=$min_cmp max=$max_cmp |
suxwigb clip=0.3 f2=1994 d2=0.3125 d2num=12.5 \
title="CMP Gather" \
windowtitle="CMP" \
label1='Tiempo (seg)' label2='Distancia (m)'
# suximage:genera una imagen de un conjunto de datos segy en formato x-windows
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# title: título de la gráfica
# perc: porcentaje para determinar el clip
suwind < CMP key=cdp min=$min_cmp max=$max_cmp |
suximage perc=90 f2=1994 d2=0.3125 d2num=12.5 \
title="CMP Gather" \
windowtitle="CMP" \
label1='Tiempo (seg)' label2='Distancia (m)'
### Gráfica de los CMP Gathers obtenidos en formato PostScript
# suwind: permite al usuario establecer los valores de un campo específico del header
# min: valor minimo del key
# max: valor max del key
# key=cdp: Número de conjunto de CMP
# f2: primera muestra en x
# d2: intervalo de muestreo en x
# d2num: intervalo en los valores del eje x
## supswigb: genera una imagen (wiggle) de un conjunto de datos segy en formato Post Script
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# title: título de la gráfica
# clip:Valor máximo de la amplitud de la traza en la gráfica
# legendfont: tipo de letra para el título
# labelsize: tamaño de letra para las etiquetas de los ejes
# titlesize: tamaño de letra para el título
# d2num: intervalo de muestreo en el segundo eje (x)
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
suwind < CMP key=cdp min=$min_cmp max=$max_cmp |
supswigb clip=0.3 f2=1994 d2=0.3125 d2num=12.5 \
title="CMP Gather" \
windowtitle="CMP" \
label1='Tiempo (seg)' label2='Distancia (m)' \
wbox=8.5 hbox=8.5 titlesize=10 labelsize=18 d2num=500 > W_CMP.ps
## supsimage: genera una imagen de un conjunto de datos segy en formato Post Script
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# title: título de la gráfica
# clip:Valor máximo de la amplitud de la traza en la gráfica
# title: título de la gráfica
# legendfont: tipo de letra para el título
# labelsize: tamaño de letra para las etiquetas de los ejes
# titlesize: tamaño de letra para el título
# d2num: intervalo de muestreo en el segundo eje (x)
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
suwind < CMP key=cdp min=$min_cmp max=$max_cmp |
supsimage clip=0.3 f2=1994 d2=0.3125 d2num=12.5 \
title="CMP Gather" \
windowtitle="CMP" \
label1='Tiempo (seg)' label2='Distancia (m)' \
wbox=8.5 hbox=8.5 titlesize=10 labelsize=18 d2num=500 > CMP.ps
Apéndice 4:
9_nmo.sh
#!/bin/bash
#///////////////////////////////////////////////////////////////#
# #
# ANALISIS DE VELOCIDAD, CORRECCIÓN NMO #
# Y SECCIÓN APILADA #
# #
#///////////////////////////////////////////////////////////////#
#---------------------------------------#
#---------------------------------------#
# PARÁMETROS DEFINIDOS POR EL USUARIO #
#---------------------------------------#
#---------------------------------------#
ND=10 # Número de disparos de la adquisición sísmica
#*****************************************#
# Seleccion de los CMP para la corrección #
#*****************************************#
cdpmin=2000 # Primer CMP
cdpmax=6000 # Último CMP
dcdp=500 # Intervalo entre CMP
#**************************************************************#
# Seleccion del intervalo de velocidades del mapa de sembñanza #
#**************************************************************#
### La velocidad final es vf=fv+((nv*dv)-dv)
nv=500 # Número de velocidades
dv=10 # Intervalo entre las velocidades
fv=500 # Primera velocidad
#***********************************#
# Parámetros de graficación #
#***********************************#
clip=0.5 # Valor máximo de la amplitud de la traza en la gráfica de los cmp
gather; formato
# wigle trace display
clipsem=0.25 # Valor mínimo de la amplitud de la traza en el mapa de semblanza de la
escala de
# colores (el máximo es 1)
clipnmo1=0.25 # Valor máximo de la amplitud de la traza en la gráfica de la corrección
NMO de cada cmp # gather corregido; formato wigle trace display
clipnmo2=0.25 # Valor máximo de la amplitud de la traza en la gráfica de la corrección
NMO de toda # la data corregida; formato wigle trace display
mincmp=0.25 # Valor mínimo del cmp corregido por nmo que desee graficar en
formato Post Script
maxcmp=0.25 # Valor máximo del cmp corregido por nmo que desee graficar en
formato Post Script
clipstack=0.5 # Valor máximo de la amplitud de la traza en la gráfica de la sección
apilada # en formato wigle trace display
#_______________________________________________________________________________
____________#
# Analisis de velocidad y correccion NMO #
#_______________________________________________________________________________
____________#
# Archivo de entrada (Data sísmica ordenada por CMP)
infile=CMP
# Archivo de salida
outfile=stkvel.p1
# ### Análisis de velocidad
cdp=$cdpmin
while [ $cdp -le $cdpmax ]
do
ok=false
while [ $ok = false ]
do
#*****************************************#
# Selección de los CMP para la corrección #
#*****************************************#
# suwind: permite seleccionar trazas por medio de un campo específico del header
# key=cdp: Número de conjunto de CMP
# min: valor minimo del key
# max: valor max del key
# count=ND: número de trazas máximas en un CMP Gather
suwind < $infile key=cdp min=$cdp max=$cdp count=$ND > panel.$cdp
#### Grafica del CMP seleccionado en formato x-windows ####
# suxwigb:genera una imagen (wiggle) de un conjunto de datos segy en formato x-window
# title: título de la gráfica
# clip:Valor máximo de la amplitud de la traza en la gráfica
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# label1: etiqueta del primer eje (z)
suxwigb < panel.$cdp title="CMP gather para CMP=$cdp" clip=$clip xbox=600 wbox=504 \
label1="Tiempo (seg)" mpicks=mpicks.$cdp &
#### Grafica del CMP seleccionado en formato Post Script ####
# supswigb:genera una imagen (wiggle) de un conjunto de datos segy en formato Post Script
# title: título de la gráfica
# clip:Valor máximo de la amplitud de la traza en la gráfica
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# label1: etiqueta del primer eje (z)
#supswigb < panel.$cdp title="CMP gather para CMP $cmp" clip=$clip wbox=500 hbox=700 \
# label1="Tiempo (seg)" > cmp$cdp.ps
### suximage: genera una imagen X-Windows de un conjunto de datos segy en
### escala de colores. Parámetros:
# title: título de la gráfica
# clip:Valor máximo de la amplitud de la traza en la gráfica
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# label1: etiqueta del primer eje (z)
# cmap: selección de la escala de colores
suximage < panel.$cdp title="CMP gather para CMP=$cdp" clip=0.1 xbox=600 wbox=504 \
label1="Tiempo (seg)" cmap=hsv1 mpicks=mpicks.$cdp &
#************************************#
# Mapas de semblanza para cada cmp #
#************************************#
# # Selección de los valores del filtro
# Valores de frecuencia
f=1,10,100,120
# Valores de amplitud
amps=0,1,1,0
sugain tpow=2 < panel.$cdp |
sufilter f=$f amps=$amps > panel_gan.$cdp
### suvelan: calcula el mapa de semblanza para un cmp gather
# nv: Número de velocidades
# dv: Intervalo entre las velocidades
# fv: Primera velocidad
suvelan < panel_gan.$cdp nv=$nv dv=$dv fv=$fv > semblanza
##### Mapa en escala de colores #####
# Formato X-Windows #
### suximage: genera una imagen X-Windows de un conjunto de datos segy en
### escala de colores. Parámetros:
# bclip,wclip: a la data entre (bclip,wclip) se le aplicara clip. Valores máximos
# y mínimos en el mapa de semblanza
# f2: Coordenada x de la primera muestra
# d2: intervalo de muestreo en la segunda dimensión (x)
# cmap: selección de la escala de colores
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# units: unidades de la escala de colores
# legend=1: despliega la escala de colores
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# title: título de la gráfica
# mpicks: archivo donde se guardan los valores seleccionados con el raton
suximage < semblanza wclip=$clipsem bclip=1 f2=$fv d2=$dv cmap=hsv1 xbox=0 wbox=504 \
units="Semblanza" legend=1 \
label1="Tiempo (seg)" label2="Velocidad (m/seg)" \
title="Mapa de Semblanza para CMP=$cdp" mpicks=mpicks.$cdp &
# formato Post Script #
### supsimage: genera una imagen Post Script de un conjunto de datos segy en
### escala de colores. Parámetros:
# bclip,wclip: a la data entre (bclip,wclip) se le aplicara clip. Valores máximos
# y mínimos en el mapa de semblanza
# f2: Coordenada x de la primera muestra
# d2: intervalo de muestreo en la segunda dimensión (x)
# cmap: selección de la escala de colores
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# units: unidades de la escala de colores
# legend=1: despliega la escala de colores
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# title: título de la gráfica
# mpicks: archivo donde se guardan los valores seleccionados con el raton
#supsimage < semblanza wclip=$clipsem bclip=1 f2=$fv d2=$dv cmap=hsv1 wbox=500 hbox=700 \
# units="Semblanza" legend=1 \
# label1="Tiempo (seg)" label2="Velocidad (m/seg)" \
# title="Mapa de Semblanza para CMP $cmp" mpicks=mpicks.$cdp > semblanza$cdp.ps
##### Mapa de contorno #####
# f2: Coordenada x de la primera muestra
# d2: intervalo de muestreo en la segunda dimensión (x)
# nc: Número de valores de contorno para el mapa de semblanza
# fc: Primer valor del mapa de contorno
# ccolor: arreglo de colores en el mapa de contorno
# units: unidades de la escala de colores
# legend=1: despliega la escala de colores
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# title: título de la gráfica
# mpicks: archivo donde se guardan los valores seleccionados con el raton
nc=35 # this number should be at least 25
fc=.05 # This number should be between .05 to .15 for real data
ccolor=black,grey,green,black,grey,cyan,black,grey,blue,black,grey,blue,red,red,red
suxcontour < semblanza nc=$nc f2=$fv d2=$dv xbox=0 wbox=504 legend=1 \
units="Semblaza" fc=$fc ccolor=$ccolor \
label1="Tiempo (seg)" label2="Velocidad (m/seg)" \
title="Mapa de Semblanza para CMP=$cdp" \
mpicks=mpicks.$cdp
#********************************#
# Construcción del archivo par #
#********************************#
## sort: ordena lineas de texto
# -n: ordena por valor numérico
## mkparfile: convierte archivos ascii a formato par
# string1: primsera secuencia del archivo par
# string2: segunda secuencia del archivo par
sort <mpicks.$cdp -n |
mkparfile string1=tnmo string2=vnmo >par.$cdp
#********************************************************************#
# Construcción de la gráfica de funcion de velocidad de apilamiento #
#********************************************************************#
##### Transfomación del archivo par a un archivo binario #####
# sed: editor de texto. Se cambia tnmo por xin y vnmo por yin
# s: sustituye
sed <par.$cdp '
s/tnmo/xin/
s/vnmo/yin/
' >unisam.p
### unisam: muestrea uniformemente una funcion y(x) especificada como pares x,y (archivo
binario)
# nout: número de valores de y que tendra el archivo de salida
# fxout: primer x del archivo de salida
# dxout: intervalo de muestreo de x del archivo de salida
# par: archivo par
# method: método de interpolacion
## Tomando los valores de nout y dxout del header del archivo CMP
# sugethw: muestra los valores indicados por el key
# ns: número de muestras en la traza
# dt: intervalo de muestreo en micro segundos
# sed: editor de texto.
# 1q: 1 imprime la linea y q finaliza el sed
# s: sustituye
# bc: lenguaje de calculo
# -l: define la libreria de matemática estándar
nout=`sugethw ns <$infile | sed 1q | sed 's/.*ns=//'`
dt=`sugethw dt <$infile | sed 1q | sed 's/.*dt=//'`
dxout=`bc -l <<END
$dt / 1000000
END`
unisam nout=$nout fxout=0.0 dxout=$dxout \
par=unisam.p method=spline > varias.u
### xgraph: plotea n[i] coordenadas de pares (x,y)en formato X-Windows. Parámetros:
# n: número de puntos por gráfica
# nplot: número de diagramas
# f1: Coordenada z de la primera muestra
# d1: intervalo de muestreo en z
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# title: título de la gráfica
# grid1: tipo de linea en el eje 1
# grid2: tipo de linea en el eje 1
# linecolor: color de línea
# style: seismic= eje1 horizontal, eje2 vertical
# normal= eje1 vertical, eje2 horizontal
xgraph < varias.u n=$nout nplot=1 d1=$dxout f1=0.0 width=504 height=700 \
label1="Tiempo (seg)" label2="Velocidad (m/seg)" \
title="Funcion de velocidad de apilamiento: CMP $cdp" \
grid1=solid grid2=solid \
linecolor=2 style=seismic
### psgraph: plotea n[i] coordenadas de pares (x,y)en formato Post Script
# n: número de puntos por gráfica
# nplot: número de diagramas
# f1: Coordenada z de la primera muestra
# d1: intervalo de muestreo en z
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# title: título de la gráfica
# grid1: tipo de linea en el eje 1
# grid2: tipo de linea en el eje 1
# linecolor: color de línea
# style: seismic= eje1 horizontal, eje2 vertical
# normal= eje1 vertical, eje2 horizontal
#psgraph < varias.u n=$nout nplot=1 d1=$dxout f1=0.0 wbox=500 hbox=700 \
# label1="Tiempo (seg)" label2="Velocidad (m/seg)" \
# title="Funcion de velocidad de apilamiento: CMP $cmp" \
# grid1=solid grid2=solid \
# linecolor=2 style=seismic > funcion_velocidad_$cdp.ps
#******************************************#
# Corrección NMO para cada CMP analizado #
#******************************************#
### sunmo: corrección nmo para una funcion de velocidad arbitraria en tiempo y cmp
# par: archivo par que contiene Vnmo y Tnmo
### suxwigb: genera una imagen X-Window de un conjunto de datos segy en
### formato wigle trace display. Parámetros:
# title: título de la gráfica
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# clip: Valor máximo de la amplitud de la traza en la gráfica
sunmo < panel_gan.$cdp par=par.$cdp |
suxwigb title="Correccion NMO para cdp=$cdp" xbox=0 wbox=504 xcur=$xcur \
label1="Tiempo (seg)" perc=$perc xcur=$xcur clip=$clipnmo1 &
### supswigb: genera una imagen Post Script de un conjunto de datos segy en
### formato wigle trace display. Parámetros:
# title: título de la gráfica
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# clip: Valor máximo de la amplitud de la traza en la gráfica
#sunmo < panel_gan.$cdp par=par.$cdp |
#supswigb title="Correccion NMO para cdp=$cdp" xbox=0 wbox=504 xcur=$xcur \
# label1="Tiempo (seg)" perc=$perc xcur=$xcur clip=$clipnmo1 > nmo$cdp.ps
#************************#
# Consulta al usuario #
#************************#
# pause: detiene el programa hasta que se presione enter
# echo: despliega una cadena de caracteres en el terminal
# tr -d "\012" elimina del bufer la informacion obtenida al presionar enter (012= octal value of
enter)
# read: la informacion contenida en el bufer se le asigna a esta variable
# case: utiliza la informacion contenida en la variable asignada a read para definir varias opciones
# bc: lenguaje de calculo
# -l: define la libreria de matemática estándar
# set +x: imprime por pantalla cada comando y sus argumentos
pause
echo "La selección es correcta? (s/n) " | tr -d "\012" >/dev/tty
read response
case $response in
n*) ok=false ;;
*) ok=true ;;
esac
done </dev/tty
cdp=`bc -l <<END
$cdp + $dcdp
END`
done
set +x
#****************************************#
# Construcción del archivo par único #
#****************************************#
# echo: despliega una cadena de caracteres en el terminal
# tr -d "\012" elimina del bufer la informacion obtenida al presionar enter (012= octal value of
enter)
# bc: lenguaje de calculo
# -l: define la libreria de matemática estándar
# cat: concatena archivos
## construcción del vector con los valores de cmp analizados en el archivo de salida
>$outfile
echo "cdp=" | tr -d "\012" >>$outfile
cdp=$cdpmin
echo "$cdp" | tr -d "\012" >>$outfile
cdp=`bc -l <<END
$cdp + $dcdp
END`
while [ $cdp -le $cdpmax ]
do
echo ",$cdp" | tr -d "\012" >>$outfile
cdp=`bc -l <<END
$cdp + $dcdp
END`
done
echo >>$outfile
## concanetación de los archivos par en el archivo de salida
cdp=$cdpmin
while [ $cdp -le $cdpmax ]
do
cat par.$cdp >>$outfile
cdp=`bc -l <<END
$cdp + $dcdp
END`
done
echo "El archivo .par que será ingresado al comando SUNMO: $outfile fue creado"
### Limpieza del directorio
cdp=$cdpmin
while [ $cdp -le $cdpmax ]
do
rm mpicks.$cdp par.$cdp
cdp=`bc -l <<END
$cdp + $dcdp
END`
done
rm unisam.p
# ---------------------------
#---------------------------#
#---------------------------#
# CORRECIÓN NMO #
#---------------------------#
#---------------------------#
### sunmo: corrección nmo para una funcion de velocidad arbitraria en tiempo y cmp
# par: archivo par que contiene Vnmo y Tnmo
sunmo < $infile par=stkvel.p1 > nmodata
#### Despliegue de la data corregida por NMO en formato X-window
# suwind: permite al usuario establecer los valores de un campo específico del header
# j: intervalo entre trazas
suwind < nmodata j=1 > NMO
sugain < NMO tpow=2 gpow=0.5 > NMO_sugain
### suxwigb: genera una imagen X-Window de un conjunto de datos segy en
### formato wigle trace display. Parámetros:
# title: título de la gráfica
# wbox: ancho de la ventana en pixels
# xbox: x en pixels de la esquina superior izquierda de la ventana
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# windowtitle: título de la ventana
# clip: Valor máximo de la amplitud de la traza en la gráfica
suxwigb < NMO clip=$clipnmo2 xbox=0 wbox=2000 \
title="Data corregida por NMO" \
windowtitle="NMO" \
label1="Tiempo (seg)" label2="Distancia (km)" &
#### Despliegue de la data corregida por NMO en formato Post Script
# suwind: permite al usuario establecer los valores de un campo específico del header
# min: valor minimo del key
# max: valor max del key
# cdp: punto medio común
suwind < nmodata key=cdp min=$mincmp max=$cmp > NMO2
### supswigb: genera una imagen Post Script de un conjunto de datos segy en
### formato wigle trace display. Parámetros:
# title: título de la gráfica
# wbox: ancho de la ventana en pixels
# xbox: x en pixels de la esquina superior izquierda de la ventana
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# windowtitle: título de la ventana
# clip: Valor máximo de la amplitud de la traza en la gráfica
#supswigb < NMO2 clip=$clipnmo2 xbox=0 wbox=500 \
# title="Data corregida por NMO 2" \
# windowtitle="NMO" \
# label1="Tiempo (seg)" label2="Distancia (km)" > NMO.ps
#---------------------------#
#---------------------------#
# SECCIÓN APILADA #
#---------------------------#
#---------------------------#
### sustack: apila trazas adyacentes
sustack < nmodata normpow=1.0 > stackdata
###### Despliegue de la sección apilada en formato X-Windows
# suwind: permite al usuario establecer los valores de un campo específico del header
# j: intervalo entre trazas
### suxwigb: genera una imagen X-Window de un conjunto de datos segy en
### formato wigle trace display. Parámetros:
# title: título de la gráfica
# wbox: ancho de la ventana en pixels
# xbox: x en pixels de la esquina superior izquierda de la ventana
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# windowtitle: título de la ventana
# clip: Valor máximo de la amplitud de la traza en la gráfica
suwind < stackdata j=1 |
suxwigb title="Seccion apilada" clip=$clipstack wbox=720 xbox=140 \
windowtitle="Stack" \
label1="Tiempo (seg)" label2="Distancia (km)" &
# suwind: permite al usuario establecer los valores de un campo específico del header
# j: intervalo entre trazas
### suximage: genera una imagen X-Window de un conjunto de datos segy en
### escala de grises. Parámetros:
# title: título de la gráfica
# wbox: ancho de la ventana en pixels
# xbox: x en pixels de la esquina superior izquierda de la ventana
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# windowtitle: título de la ventana
# clip: Valor máximo de la amplitud de la traza en la gráfica
suwind < stackdata j=1 |
suximage title="Seccion apilada" clip=0.3 wbox=720 xbox=140 \
windowtitle="Stack" \
label1="Tiempo (seg)" label2="Distancia (km)" &
###### Despliegue de la sección apilada en formato Post Script
# suwind: permite al usuario establecer los valores de un campo específico del header
# j: intervalo entre trazas
### supswigb: genera una imagen X-Window de un conjunto de datos segy en
### formato wigle trace display. Parámetros:
# title: título de la gráfica
# wbox: ancho de la ventana en pixels
# xbox: x en pixels de la esquina superior izquierda de la ventana
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# windowtitle: título de la ventana
# clip: Valor máximo de la amplitud de la traza en la gráfica
suwind < stackdata j=1 |
supswigb title="Seccion apilada" clip=$clipstack wbox=720 xbox=140 \
windowtitle="Stack" \
label1="Tiempo (seg)" label2="Distancia (km)" > stack_w.ps
# suwind: permite al usuario establecer los valores de un campo específico del header
# j: intervalo entre trazas
### supsimage: genera una imagen Post Script de un conjunto de datos segy en
### escala de grises. Parámetros:
# title: título de la gráfica
# wbox: ancho de la ventana en pixels
# xbox: x en pixels de la esquina superior izquierda de la ventana
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
# windowtitle: título de la ventana
# clip: Valor máximo de la amplitud de la traza en la gráfica
suwind < stackdata j=1 |
supsimage title="Seccion apilada" clip=0.3 \
windowtitle="Stack" \
label1="Tiempo (seg)" label2="Distancia (m)" > stack.ps
# Limpieza del directorio
rm NMO* panel* semblanza varias.u stackdata_gan
Apéndice 5:
10_migra.sh
#!/bin/bash
#////////////////////////////////////////////////////////////#
# #
# MUTE Y MIGRACIÓN DE DATA SISMICA EN D=2+1 #
# #
#////////////////////////////////////////////////////////////#
#---------------------------------------#
#---------------------------------------#
# PARÁMETROS DEFINIDOS POR EL USUARIO #
#---------------------------------------#
#---------------------------------------#
v=4000 # Velocidad de Migración
t=1.5 # tiempo de migración
#*****************************#
# Mute #
#*****************************#
data=stackdata # sección apilada
mutepicks=mutepicks.$data # data del mute
parfile=par.$data #
key=tracl # secuencia numérica de las trazas
### suximage: genera una imagen X-Windows de un conjunto de datos segy en
### escala de grises. Parámetros:
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
suximage < $data mpicks=$mutepicks wbox=1000 hbox=500
### sort: reordena lineas de texto
# n: orden numérico
## mkparfile: convierte archivos ascii a formato par
# string1: primera secuencia a convertir
# string2: segunda secuencia a convertir
sort < $mutepicks -n |
mkparfile string1=tmute string2=xmute > $parfile
### sumute: realiza un mute por encima (o por debajo) de una curva poligonal definida por el
usuario
### la distancia de la curva es especificada por un key del header
sumute < $data par=$parfile key=$key > mute.$data
### suximage: genera una imagen X-Windows de un conjunto de datos segy en
### escala de grises. Paráme### supsimage: genera una imagen Post Script de un conjunto de
datos segy en
### escala de grises. Parámetros: tros:
# perc: porcentaje para determinar el clip
suximage < mute.$data perc=90 &
#*****************************#
# Migración #
#*****************************#
### sumigps: migración por cambio de fase
# tmig: tiempo de migración
# vmig: velocidad de migración
sumigps <mute.$data tmig=$t vmig=$v >stack_mig
### Graficación de la sección migrada
### suximage: genera una imagen X-Windows de un conjunto de datos segy en
### escala de grises. Parámetros:
# perc: porcentaje para determinar el clip
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# title: título de la gráfica
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
suximage < stack_mig title='seccion apilada y migrada' perc=80 \
wbox=720 xbox=140 label1='Tiempo (seg)' label2='Distancia (m)'
### supsimage: genera una imagen Post Script de un conjunto de datos segy en
### escala de grises. Parámetros:
# perc: porcentaje para determinar el clip
# wbox: ancho de la ventana en pixels
# hbox: alto de la ventana en pixels
# title: título de la gráfica
# label1: etiqueta del primer eje (z)
# label2: etiqueta del segundo eje (x)
supsimage <stack_mig title='seccion apilada y migrada' perc=80 \
wbox=720 xbox=140 label1='Tiempo (seg)' label2='Distancia (m)' > stack_migrada.ps