Seismic Network QC through Teleseism Modeling


The purpose of this package is to compare synthetic seismograms to observations for teleseismic P, SV and SH in the distance range of 30 - 95 degrees. Observed waveform are acquired from data centers, deconvolved, rotated, selected for quality. Using a given focal mechanism defined by strike, dip, rake, moment magnitude and source depth, synthetics are compared to the observed waveforms. A web page is created providing all information on the processing. Traces are flagged with show a significant departure between the observed and synthetic waveforms.  The flagged traces may result from incorrect specifications of the instrument response or from problems with the field instrumentation.

This QC package was easily created by modifying the existing procedure for inverting teleseismic waveforms for earthquake source parameters.

The recent effort to calibrate the Green's functions against free oscillation code (Synthetics for a Spherical Earth) suggest the possibility of modifying the scripts in the current package to also permit a comparison of the long period mantle surface-waves.

Green's Functions

The suggested location of the Green's functions are in the directory ${GREENDIR} where the SHELL variable GREENDIR is defined in the user's ~/.bashrc file.  On my system I define this as

   export GREENDIR=/backup/rbh/GREEN

If you use CSHELL then you will do something similar in your .login or .cshrc file. The reason for specifying the PATH in the startup file, is that the scripts use the ${GREENDIR}, which means that the Green's functions can be moved around the file system, only the definition of GREENDIR changes, and the processing scripts do not have to be changed.

On my system there are two subdirectories of teleseismic Green's functions:  GREEN.AK135 and AK135.TEL.  The GREEN.AK135 is the older set of Green's functions which may be on some user systems.  The AK135.TEL are those resulting from the comprehensive test of Earth flattening referenced above.  In the Scripts below OAK135  will refer to the old version and AK135 will refer to the current, preferred version of Green's functions. There is also a subdirectory Models which has the ASCII files AK135sph.mod (used for the old Green's functions) and tak135sph.mod (used for the current, preferred Green's functions).

The Package

The processing package is obtained at mechqctel.tgz.  Download this file and unpack using the command

gunzip -c mechqctel.tgz | tar xvf - 

This will create the directory MECHQC.TEL with the following contents

|   |-- 00README
|   |-- DAT.TEL
|   |-- GRD.TEL
|   |-- HTML.TEL
|   |-- MT.TEL
|   |-- MTD.TEL
|   |-- PGRD.TEL
|   |-- PMTD.TEL
|   |-- SYN.TEL
|   `-- USGSMT
|       `-- 00README
|-- DO
|   |-- CWBDODAT
|   |-- CWBDODEC
|   |-- CWBDOEVT
|   |-- CWBDOQC
|   `-- CWBDOROT
    |-- IDODAT
    |-- IDODEC
    |-- IDOEVT
    |-- IDOGCARC
    |-- IDOPREV
    |-- IDOQC
    `-- IDOROT

Getting Data

There are many ways to get waveform data for teleseisms.  For my purposes, it is sufficient to obtain the data from the WilberII interface at IRIS, the Orfeus data request or from the Internal USGS Continuous Wave Buffer (CWB).  The processing script discussed below is tailed to each of these sources, e.g., use the DOWILQCORFEUS  if you obtain waveforms data from Orfeus. 

After selecting the earthquake of interest at the IRIS Wilber II or the Orfeus page, you will see a set of menus that will lead you to the data stream.

In this tutorial I will display the screens for the event:


2008-03-03 14:11:15







Philippine Islands region

IRIS Wilber II

From the IRIS page I will select only the II and IU networks.  There are too many stations for my screendump. At the bottom of the page I click Proceed to go to the next page.

Page 1

Page 1: Select networks. Here IU and II (click to enlarge)

Page 2

Page 2: Select distance range and components  (and then Apply filter). This is the top of the page (click to enlarge)

Page 3

Page 3: (bottom of selection). Select format, time window, provide UserName and Request Label and the Proceed (click to enlarge)

Page 4

Page 4: Initial display of request showing processing status. (click to enlarge)

Page 5

Page 5: Processing complete. the location of the FTP directory with the SEED volume is provided. (click to enlarge)

Page 6

Page 6:  Contents of the FTP directory (click to enlarge)

Orfeus Wilber II

I will select only the GEOSCOPE and GEOFON networks for this example

Page 1

Page 1: Select networks, here the GEOFON and GEOSCOPE networks are requested (click for a larger image).

Page 2

Page 2: Select traces, components (B??), format, time window, UserName and Request Label (click to enlarge)

Page 3

Page 3: After the volume is completed, the directory on the FTP server  with the SEED files is indicated. (click to enlarge)

On this Page 2,  I select the stations in the 30 - 95 degree epicentral distance range, state that I want everything in SEED, that I want a time window from 2 minutes before P to 20 minutes after P.  Note the User Name and the Request Label.  This must be entered exactly in the DO script below.  The DO script will start the script DOWILQCORFEUS which will know that the individual trace SEED volumes will be at the Orfeus ftp site in the specific area

with names such as


64 KB


02:58:00 PM


64 KB


02:58:00 PM


64 KB


02:58:00 PM


96 KB


02:58:00 PM


96 KB


02:58:00 PM



This script starts everything. 

# H(km) is the location depth
# MT_DEPTH(km) is the moment tensor depth
# FILE_NAME is the Identifier given when using the Wilbur II menu - note that the
./DOWILQCORFEUS 2008 03 03 14 11 15 000 13.4 125.7 24.0 6.9 37 133 51 -85  6.8 RBHerrmann 20080303141115 pdbs AK135
./DOWILQC       2008 03 03 14 11 16 000 13.4 125.7 24.0 6.9 37 133 51 -85  6.8 RBHerrmann 20080303141116 pdbs AK135
./DOCWBQC       2008 03 03 14 11 14 000 13.4 125.7 24.0 6.9 37 133 51 -85  6.8 RBHerrmann 20080303141116 pdbs AK135

This script actually defines the parameters for the scripts that do all the work.  The only difference in the scripts is the data source. Normally only one
data source is examined. I usually comment out the previous commands by placing an # sign at the beginning of the line.  (Note in this example, I use a slightly different origin time for the different data streams so that the contents of each will be placed in different directories for this tutorial).

There must be exactly 20 entries after the DO.....   These are

YEAR   - year of earthquake
MO        - month
DY         - Day
HR          - Hour
MN         - Minute
SC           - Second
MSC       - Millisecond of origin time
LAT        - event latitude in degrees
LON       - event longitude in degrees
H             - source depth from location - ONLY FOR REFERENCE
MAG       - network magnitude - ONLY FOR REFERENCE
MT_DEPTH  - depth of event from the moment tensor --- VERY ESSENTIAL
USERNAME - UserName use int eh Wilber II request at IRIS or Orfeus. This is not used in the CWB but the entry must be here

Name of the data volume. The IRIS Wilber II creates a directory with this name and places the SEED volume in the directory with the name FILE_NAME.seed.  The Orfeus WILBUR II, places the individual trace SEED volumes into a directory with this name.  This is not used in the CWB but the entry is required

EVID        - USGS Event ID --  this is not used, put could be useful to get the arrival times and other information about the event. If you do now wish to use this, then enter the uppercase code  EVID in this position.
MODEL   - the velocity model to use.  The current choices are AK135 and OAK135, as discussed above.


This script acquires waveforms and responses from the USGS Continuous Wave Buffer (Internal use only) through their query command.  The traces are returned as SAC files, and the responses in units of counts/nanometer in a sac pole-zero format.  After deconvolution and setting the event parameters with CWBDOROT, the processing is exactly the same as for the other two scripts.


This assumes that the waveforms are in the IRIS ftp area, that all traces are in a single SEED volume.  The program rdseed is used to unpack the volume into SAC files while the response file is for use with the program evalresp. After deconvolution and setting the event parameters with IDOROT, the processing is exactly the same as for the other two scripts.


This assumes that the waveforms are in the IRIS ftp area, which has one SEED volume for each trace. .  The program rdseed is used to unpack the volumes into SAC files while the response file is for use with the program evalresp. After deconvolution and setting the event parameters with IDOROT, the processing is exactly the same as for the other two scripts.


The scripts run automatically. They get the waveforms from the archive, deconvolve traces to ground velocity in meters/sec, rotate to vertical, radial and transverse components, create synthetics using the given focal mechanism parameters, and finally create the web page for review. 

If the event is denoted by 20080303141114 then the documentation is in the directory

MECHQC.TEL/20080303141114/HTML.TEL - you will see the organization pattern in the Results links below.  The main page of the documentation is the index.html file, which the browser will open by default.

Initially there are no plots for the moment tensor solution as seed in the pages.  To get these you must perform two steps:


The following pages show the results for the various data sources. Note that the USGS CMT solution did not fit the teleseismic P-wave signal as well as the USGS Body Wave moment tensor. I used those parameters for the forward synthetics

DOCWBQC - USGS Internal Waveform Buffer


DOWILQCORFEUS - Data from the Orfeus Data Center

Last Changed March 12, 2008