1 Introducción a SAC - Seismic Analysis Code

1.1 El programa SAC

Existen muchos programas computacionales para el tratamiento de datos temporales en geofísica. En este curso de Análisis de Datos Sismológicos, esperemos introducir algunos de ellos, basados sobre comandos en un terminal y también con un interfase gráfica.

El programa SAC es una plataforma desarrollado para el manejo de series de tiempo, especialmente para el análisis y representación gráfica de eventos sísmicos. El desarrollo y mantención de SAC es hecho por un equipo del Laboratorio Nacional Lawrence Livermore (California) trabajando en cooperación con IRIS.

1.2 La instalación de SAC

En la página web se SAC, hay un enlace para bajar el software. Hay que llenar unos detalles para obtener el programa: el tipo de plataforma computacional, y además cosas como su nombre y instituto (el código postal de la UdeC es 403000).

La respuesta de esta solicitud va a estar un email de IRIS que contiene el programa adjunto en un archivo llamado algo como sac-XXX.XX-linux_x86_64.tar.gz. Hay que mover el archivo tar dentro del directorio donde quiere instalar el programa y extraerlo:

tar -xvzf sac-XXX.XX-linux_x86_64.tar.gz

Ahora existe un subdirectorio sac que contiene el programa. Las buenas noticias es que el programa ya esta compilado para su sistema y solamente hay que definir dos variables (SACAUX y SACDIR) y modificar el variable PATH para que se puede correr SAC en su sistema. SACAUX debe ser la ubicación del directorio que contiene las herramientas auxiliares para SAC, SACDIR debe ser la ubicación del directorio sac, y el PATH debe incluir los ejecutables de SAC que son contenidos en el subdirectorio sac/bin.

Para hacer la definición permanente de estas variables, sugiero que modifique su archivo .bashrc. Por ejemplo, estas son las líneas asociadas con SAC en mi .bashrc:

export SACAUX=/home/matt/bin/SAC101/sac/aux
export SACDIR=/home/matt/bin/SAC101/sac/
export PATH=/home/matt/bin/SAC101/sac/bin:$PATH

Para correr el programa SAC, es simplemente necesario teclear "sac" en el terminal de su computadora. Si no se entiende bien esta parte sugiero revisar el curso de linux que hacemos, o googlear ".bashrc".

¿Por qué no existe un enlace para bajar el programa de SAC automáticamente en la página web?

1.3 La generación de funciones en SAC

Con el programa SAC es posible generar funciones sintéticas usando el comando "funcgen". Empecemos con eso, pero al final de esta clase pueden ver datos de un terremoto. El uso de este comando es:

SAC> funcgen <tipo> delta <d> npts <n> begin <b>
El tipo de función puede ser impulse, step, boxcar entre otros; delta es la separación en segundos entre los puntos de la serie del tiempo, npts es el número de puntos en total en la serie de tiempo, y begin es el tiempo cuando empiece la serie de tiempo.

Por ejemplo, para una señal de tipo escalón, con 1000 puntos en el serie de tiempo separados por 0.01 segundos (entonces una serie de tiempo de 10 segundos en total), usamos:

SAC> funcgen step delta 0.01 npts 1000 begin 0

1.4 Hacer gráficos en SAC

Para hacer un gráfico en SAC, se usa el comando "plot". Se puede teclear "p" en el lugar de "plot" si quieren, siempre los comandos en SAC puede ser acortados.

Para ver la serie de tiempo en un gráfico y interactuar con él, se puede usar el comando "plotpk" o "ppk". En esta ventana, se puede elegir la llegada de fases sísmicas (mas adelante en el curso) y hacer zoom en la serie de tiempo:

Use plotpk para revisar que la serie de tiempo generada en la sección anterior realmente tiene una tasa de muestreo de 0.01 segundos (y entonces una frecuencia de muestreo de 100 Hz).

Para hacer un gráfico de una señal para poder ponerlo en un documento, podemos usar el comando "saveimg" para generar un .ps o un .pdf de lo que se ve en la ventana gráfica. Por ejemplo:

SAC> funcgen step delta 0.01 npts 1000 begin 0
SAC> plot
SAC> saveimg grafico_escalon.ps
SAC> saveimg grafico_escalon.pdf
SAC> ls
Noten que se puede usar algunos comandos de bash en SAC, como ls. Los archivos .ps se pueden fácilmente insertarles en documentos de LATEX y presentaciones de Beamer. Si requieren los gráficos en otro formato o con un mejor bounding box, sugiero que usan ps2eps, ImageMagick o GIMP.

\includegraphics[width=12cm]{grafico_escalon.eps}
Fig 1.1: Imagen de la función tipo escalón en SAC.

1.5 Archivos SAC - guardar y leer

Después de generar una función en SAC con "funcgen", se puede usar el comando con "write" (o simplemente "w") para guardarlo como un archivo:

SAC> funcgen step delta 0.01 npts 1000 begin 0
SAC> write sac_escalon.sac
SAC> quit
Ahora que el archivo .sac esta guardado, podemos leerlo con "read" ("r"):
SAC> read sac_escalon.sac
SAC> plot
SAC> quit

Generan estas funciones, trazarles y guardarles:

  1. impulso, 10 muestras por segundo, 5 segundos en largo.
  2. seno de frecuencia 2 Hz, 100 muestras por segundo, 10 segundos en largo.
En una otra clase, vamos a ver la respuesta de algunos instrumentos por un movimiento del suelo dado por estos tipos de funciones.

1.6 Encabezados en SAC

Cada archivo de SAC tiene un encabezado (header), que muestra algunos detalles de la serie de tiempo y información adicional asociada con el sismograma. Para las funciones generadas en la última sección, leerlos y investiga los contenidos de sus encabezados usando el comando "listhdr" ("lh"). ¿Qué significan los valores asociados con las siguientes variables?

NPTS, B, E, DELTA, DEPMIN, DEPMAX, DEPMEN

1.7 La combinación de archivos

Si dos archivos tienen las mismas variables - DELTA, BEGIN y NPTS - es posible combinarles usando los siguientes comandos:

Por ejemplo, creamos dos señales en SAC:
SAC> funcgen boxcar npts 1000 delta 0.1 begin 0
SAC> plot
SAC> write boxcar.sac
SAC> funcgen sine npts 1000 delta 0.1 begin 0
SAC> plot
SAC> write sine.sac
Ahora podemos multiplicarlos juntos:
SAC> read boxcar.sac
SAC> mulf sine.sac 
SAC> plot
También existen las opciones "add", "sub", "div", "mul" que son usados para modificar la serie de tiempo por un valor constante, por ejemplo (noten como cambia la escala vertical):
SAC> funcgen random npts 1000 delta 0.1 begin 0
SAC> plot
SAC> div 10
SAC> plot
SAC> write random.sac

Combine sine.sac y random.sac para generar una función seno mezclado con ruido aleatorio.

\includegraphics[width=12cm]{noisy_sine.eps}
Fig 1.2: Una función seno mezclado con ruido aleatorio.

1.8 Leyendo archivos de texto en SAC

Se puede leer archivos de texto usando el comando "readtable". Por ejemplo, el archivo senal.xy contiene pares de números y podemos leer la información en SAC:

SAC> readtable content p senal.xy
SAC> plot

1.9 Transformando de archivo SAC a texto

Podemos escribir un archivo .sac en el formato de texto alphanumérico:

SAC> read sine.sac
SAC> write alpha sine.txt
El archivo puede después ser leído con un otro programa como Octave.

También, existe el programa sac2xy que se encuentra dentro de SACTOOLS. Se puede bajar los archivos de SACTOOLS o, alternativamente entrego el archivo sac2xy.tar que contiene solo sac2xy. Es necesario modificar el archivo "makefile", específicamente los variables F90 y BINDIR para el compilador de fortran que usas (sugiero gfortran) y su directorio bin. Después se puede compilar el codigo con el comando "make", y el ejecutable sac2xy debe aparecer en su directorio bin. El programa se corre con:

sac2xy sine.sac sine.xy
Ahora la serie de tiempo es guardado en un formato que se puede usar con cualquier otro programa computacional.

1.10 Trabajo adicional

Bajen CCSP.HNZ.._a.sac, CCSP.HNN.._a.sac y CCSP.HNE.._a.sac. Estos son el registro del terremoto de Maule, 2010 ($ M_W 8.8$) en el acelerómetro instalado en Colegio Concepción, San Pedro. Los datos muestran la aceleración en cm/s/s de los tres componentes del sensor: vertical, norte-sur y este-oeste.

  1. Revise el encabezado de los archivos para obtener:
  2. Lee los tres archivos al mismo tiempo, y investiga la diferencia entre los comandos "plot", "plot1" y "plot2".
  3. Elige la opción "qdp off", y ve la diferencia entre los archivos usando "plotpk". ¿Qué significa qdp?
    SAC> read CCSP.HNZ.._a.sac
    SAC> plotpk
    SAC> qdp off
    SAC> plotpk
    SAC> qdp on
    SAC> plotpk
    
  4. Use "plotpk" para hacer un zoom sobre los primeros treinta segundos del movimiento del terremoto. ¿Cómo aumento la amplitud de las vibraciones?
  5. Hace un imagen de los tres componentes del sismograma en formato postscript.

About this document ...

This document was generated using the LaTeX2HTML translator Version 2008 (1.71)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split 0 -white -no_navigation sac_01_intro.tex

The translation was initiated by matt on 2017-08-28


matt 2017-08-28