wiki:pick_ew
Last modified 7 years ago Last modified on 02/04/13 09:31:50

Earthworm Module: pick_ew

Contributed by:

Function

Picks P-arrivals and makes coda measurements

Details

This is the Earthworm picker. Pick_ew gets real-time data in the form of demultiplexed Earthworm waveform messages (TYPE_TRACEBUF messages). The program picks each channel independently, and produces pick messages, which are sent to an Earthworm transport ring. Pick messages are produced within two seconds of the pick time. Pick_ew also measures the length of the waveform coda following a pick and coda-length messages are also sent to a transport ring. Coda lengths are used by the "eqproc" program to assign a coda magnitude to an event. Pick_ew makes two types of coda measurements: The picker reports a "normal" coda if the amplitude decays to "cutoff" in less than 144 seconds after the P-wave arrival. If the coda does not decay to "cutoff" within 144 seconds, the picker times out, reporting the observed amplitude and a "truncated" coda duration of 144 seconds. For traces with high pre-event noise levels, the picker reports a negative or "noisy" coda duration. In addition to the duration, the picker reports the average absolute amplitudes of up to six pre-determined 2-second trace windows. Pick_ew does not start searching for new picks until the coda calculation is complete.

The pick is released by pick_ew within 3 sec (or whatever the MinCodaTerm value is, most default to 3 seconds), but it doesn't go back to looking for new picks until it reaches the coda termination point. Pick_ew cannot/will not produce any new picks between the pick time and the coda termination time for the given channel that is in coda determination mode.

If the coda termination is set to a very small value, that means the measured coda duration will be longer, and if a new event happens to occur to boost the signal again during this time, pick_ew assumes the energy belongs to the original pick and the coda gets extended. The longest that pick_ew will sit waiting for the signal to reach the coda termination value is 144 sec, after which the picker releases the coda message with 6 time/amplitude pairs and leaves it to eqcoda to extrapolate the duration time. If the data has time gaps, pick_ew can be set up, using configuration parameters, to either interpolate through the gaps or restart itself. For time gaps up to several samples long, it is probably best to interpolate. For longer gaps, it is better to restart. The drawback to interpolating is that the data is somewhat corrupted. The drawback to restarting is that the picker will not start picking again for about one second after a restart.

Picks times are calculated using an algorithm developed by Rex Allen, in the late 1970's and early 1980's. The algorithm works well for short-period data (frequencies > 1 Hz) and has been tested extensively using data from the Northern California Seismic Network. The program tends to miss picks from teleseismic and volcanic events. S waves are occasionally picked, but most of the picks are first-arrival P waves. If the program is used in regions other than Northern California, pick parameters may need to be modified, or another algorithm may be needed. For more information about the picking algorithm used by pick_ew, see the following articles:

Allen, R.V., Automatic Earthquake Recognition and Timing From Single Traces, Bull. Seism. Soc. Am. 68, Oct 1978, pp. 1521-1532.

Allen, R.V., Automatic Phase Pickers: Their Present Use and Future Prospects, Bull. Seism. Soc. Am. 72, Oct 1982, pp. S225-S242.

In addition, Jim Pechmann of the University of Utah has run extensive tests of the earthworm picker. He has written up some suggested picker parameter changes for use with analog and broadband data streams (see below: Tuning: Suggested Picker Parameter Changes).

Configuration File Commands

On startup, pick_ew reads the configuration file named on the command line. Commands in this file set up all parameters used in picking P-wave arrivals from Earthworm waveform data. In the control file, lines may begin with a valid pick_ew command (listed below) or with one of 2 special characters:

#  marks the line as a comment (example: # This is a comment).
   
@  allows control files to be nested; one control file can be 
   accessed from another with the command "@" followed by 
   a string representing the path name of the next control file 
   (example: @pick_ew.d).

Command names must be typed in the control file exactly as shown in this document (upper/lower case matters!).

EXAMPLE CONFIGURATION FILE

#
#                     Pick_ew's Configuration File
#
MyModId        MOD_PICK_EW     # This instance of pick_ew
StaFile        pick_ew.sta     # File containing station name/pin# info
InRing           WAVE_RING     # Transport ring to find waveform data on,
OutRing          PICK_RING     # Transport ring to write output to,
HeartbeatInt            30     # Heartbeat interval, in seconds,
RestartLength          100     # Number of samples to process for restart
MaxGap                  15     # Maximum gap to interpolate
Debug                    0     # If 1, print debugging message

FUNCTIONAL COMMAND LISTING

Below are the commands recognized by pick_ew, grouped by the function they influence. All of the commands are required; they must be specified in the control file (in any order) for pick_ew to operate.

	Earthworm system setup:
		InRing		Shared memory region for input
		OutRing		Shared memory region for output
 		MyModId		Module id for pick_ew
		HeartBeatInt 	Interval between heartbeats

	Picking Parameters:
		RestartLength	Number of samples to process for restarts
		MaxGap		Maximum gap (#samples) to interpolate
		StaFile		File containing station names and picking parameters
		NoCoda		Optional to NOT do CODA PROCESSING (experimental)
                NoCodaHorizontal Optional, like NoCoda, but only No Coda processing for horizontal channels (not ending in Z)

	Output Control:
		Debug		Debugging flag
		PickIndexDir	Directory where pick_ew_MMM.ndx files will be written (optional)

ALPHABETIC COMMAND LISTING & DESCRIPTION

In the following section, all configuration file commands are listed in alphabetical order. Listed along with the command (bold-type) are its arguments (in red), the name of the subroutine that processes the command, and the function within the module that the command influences. A detailed description of the command and is also given. None of the commands has any default value. The values used by Calnet are listed after each command description.

The following list is organized by:

command [argument here]

Debug [flag]
Processed by: GetConfig
Function: output

Sets a flag to control the volume of debugging information output by pick_ew. If flag is zero, no debug info is written. If flag is non-zero, debug information is written to the logfile and screen.

Default:  none				
Sample:   Debug 0

HeartBeatInt [nsec]
Processed by: GetConfig
Function: Earthworm setup

Defines the number of seconds, nsec, between TYPE_HEARTBEAT messages issued by pick_ew.

Default:  none				
Sample:   HeartBeatInt 30

InRing [ring]
Processed by: GetConfig
Function: Earthworm setup

Tells pick_ew which shared memory region to find its input waveforms on. ring is a character string (valid strings are listed in earthworm.d) that relates (in earthworm.d) to a unique number for the key to the shared memory region. By default, pick_ew processes all TYPE_TRACEBUF messages that reside on ring, regardless of their installation id or module id.

Default:  none				
Sample:   InRing WAVE_RING

MaxGap [maxgap]
Processed by: GetConfig
Function: output

Sets maxgap, the maximum length (in samples) of a data gap which pick_ew will allow without restarting the picking algorithm. When pick_ew detects a data gap less than or equal to maxgap samples on a given channel, it will do a simple linear interpolation across the gap and continue in the picking algorithm as if there were no data gap. If a gap is longer than maxgap samples, then pick_ew will drop all active pick and coda calculations for that channel and will enter the "restart" phase (see RestartLength command) of the algorithm.

Default:  none
Sample:   MaxGap 10

MyModId [mod_id]
Processed by: GetConfig
Function: Earthworm setup

Sets the module id for labeling all outgoing messages. mod_id is a character string (valid strings are listed in earthworm.d) that relates (in earthworm.d) to a unique single-byte number. If more than one pick_ew is running at the same time, they must be given different module ids! (If 2 pick_ew's are given the same module id, other modules that listen to pick_ew output may report many "missed message" errors).

Default:  none				
Sample:   MyModId  MOD_PICK_EW

Sample:   MaxGap 10

NoCoda [flag]
Processed by: GetConfig
Function: picking params

This is an optional and experimental feature that is off by default. It forces the coda termination checking to cease functioning if the flag is set to 1.

Default:  none				
Sample:   NoCoda  1

NoCodaHorizontal [flag]
Processed by: GetConfig
Function: picking params

This is an optional and experimental feature that is off by default. It forces the coda termination checking on Horizontal (non-Z) channels to cease functioning if the flag is set to 1. This is useful if you want to do S wave picking on horizontal channels.

Default:  none				
Sample:   NoCodaHorizontal  1

OutRing [ring]
Processed by: GetConfig
Function: Earthworm setup

Tells pick_ew which shared memory region to use for all its output (picks, codas, heartbeats and errors). ring is a character string (valid strings are listed in earthworm.d) that relates (in earthworm.d) to a unique number for the key to the shared memory region.

Default:  none				
Sample:   OutRing PICK_RING

PickIndexDir [dir]
Processed by: GetConfig
Function: picking params

This allows the pick_ew_MMM.ndx index files (used to track pick id's) to be placed in a different directory than the params directory. If this is a relative path, then the path should be relative to the params directory. In either case, the directory must already exist. This is an OPTIONAL FEATURE. If not set, then the pick_ew_MMM.ndx files will be written into the params directory as they have always been. For reference, the MMM refers to the module id.

Default:  none				
Sample:   PickIndexDir  pick_index

RestartLength [nrestart]
Processed by: GetConfig
Function: picking params

Sets nrestart, the number of samples pick_ew will process on startup for each channel to obtain background values before entering the P-wave picking phase for that signal. Once running, any time pick_ew detects a data gap longer than MaxGap samples in a given channel's data, pick_ew will drop any active pick or coda calculations for that channel. It will then "restart" that channel by processing the next nrestart samples to reestablish baseline values, after which it will return to the picking phase of the algorithm.

Default:  none
Sample:   RestartLength 100

StaFile [name]
Processed by: GetConfig
Function: picking params

Tells pick_ew the name of the file that contains the pick/don't pick flag, pin numbers, station code, and per-channel picking parameters. name is a character string; it may be enclosed in double-quotes, but it doesn't have to be. See section 4 below for the format of this file.

Default:  none
Sample:   StaFile "pick_ew.sta"

STATION LIST FORMAT

By default, pick_ew processes all TYPE_TRACEBUF messages (regardless of their installation id or module id) that reside on transport ring specified in the InRing command. All of the channels of trace data being processed by the Earthworm system should be described in pick_ew's station list file. This file contains one line per input channel. Each line contains 22 required fields used by pick_ew to identify the channel and set all the picking parameters for that channel. In v5.1 and higher an optional 23rd field was added for use by the module eqcoda. Pick_ew ignores this 23rd field if it exists. Upon retrieving a TYPE_TRACEBUF message from the ring, pick_ew finds the appropriate parameters for that message by matching the station, component, and network fields in the message header to a line from the station file. If it can't find a match, pick_ew won't process that tracebuf message.

A sample portion of a pick_ew station list file appears below. Note that a comments are preceded by a #.

#
#  This is a sample station list for the pick_ew program.
#
#                                 MinBigZC       RawDataFilt    LtaFilt         DeadSta          PreEvent
# Pick  Pin    Station/      MinSmallZC   MaxMint           StaFilt       RmavFilt           AltCoda
# Flag  Numb   Comp/Net/Loc   Itr1   MinPeakSize  i9  CharFuncFilt  EventThresh          CodaTerm         Erefs   ClipCount
# ----  ----   --------   ---------------------------------------------------------------------------------------------
    1     0  AAR   VHZ NC  -- 3  40  3  60  500  3  .985  3.  .6  .03  5.  .9961  1200.  49.14  .8  1.5  50000.     2048
    1     1  AAS   VHZ NC  -- 3  40  3  60  500  3  .985  3.  .6  .03  5.  .9961  1200.  49.14  .8  1.5  50000.     2048
    0     2  ABL   VHZ CI  -- 3  40  3  60  500  3  .985  3.  .6  .03  5.  .9961  1200.  49.14  .8  1.5  50000.     2048
    1     3  ABR   VHZ NC  -- 3  40  3  60  500  3  .985  3.  .6  .03  5.  .9961  1200.  49.14  .8  1.5  50000.     2048
    1  2005  KCPB  BHZ NC  -- 3  40  3 162  500  3  .939  3.  .4  .015 5.  .9961  1200. 132.7   .8  1.5 135000.  8388608
# end of station file

Each line in the station file contains the following 24 fields, separated by white space:

Channel Identification:

  1. Pick Flag: if Pick Flag is 0, pick_ew will not try to pick P-wave arrivals from this trace. If Pick Flag is 1, the trace will be picked.
  1. Pin Numb: this field is not used by pick_ew, but exists for posterity and for potential use by other programs. Each input signal in a given Earthworm system should have a pin number Pin Numb (2-byte integer) that is unique across all data sources within the system. For example, if we use two digitizers with 256 channels each, our pin numbers would range from 0 to 511.
  1. Station: the first of 3 fields (Station-Comp-Net) that will uniquely identify each trace of seismic data. Station is a string, up to 5 characters, that identifies the physical site of the seismic instrument. This label must be unique within a given network.
  1. Comp: a 3-character string to identify the component of motion recorded by this seismic trace.
  1. Net: a 2-character string that identifies the network that operates the seismic instrument.
  1. Loc: a 2-character string that identifies the location code that describes the sensor location.

Event Termination/ Evaluation Criteria:

  1. Itr1: (i5 in earlier code) Sets Itr1 which is used to calculate the zero-crossing termination count. The pick_ew calculates itrm, the number of consecutive small-zero crossings (zero-crossings where the short-term average is less than the critical termination level) to be allowed before declaring the event over. itrm = Itr1 + m / Itr1 where m is the zero-crossing counter. itrm will start out quite small at the beginning of an event and will increase during an event to a maximum of 50.
  1. MinSmallZC: (i6 in earlier code) Defines the minimum number of zero-crossings for a valid pick. An event is declared over and potentially valid after MinSmallZC zero-crossings. Pick_ew then evaluates the event to determine if it was a seismic event or noise.
  1. MinBigZC: (i7 in earlier code) Defines the minimum number of "big zero-crossings" for a valid pick. No pick is reported unless at least MinBigZC big zero-crossings occurred while the event was active. [A "big zero-crossing" amplitude must exceed rbig, where rbig is (the largest amplitude of first 3 half-cycles after event activation)/3. A "big zero crossing" must also represent a crossing of opposite polarity to the previous crossing].
  1. MinPeakSize: (i8 in earlier code) Defines the minimum amplitude (digital counts) for a valid pick. No pick is reported unless one of the first three peaks of an event has an amplitude larger than MinPeakSize digital counts.
  1. MaxMint: (hard-wired at 500 in earlier code) Maximum interval (in samples) between zero crossings. If no zero crossings occur within MaxMint data samples, the pick event is terminated.
  1. i9: (i9 in earlier code) Defines the minimum coda length (seconds) for a valid pick. No pick is reported unless its coda is at least i9 seconds long.

Waveform Filtering Parameters:

  1. RawDataFilt: (c1 in earlier code) Sets the filter parameter RawDataFilt that is applied to the raw trace data. This is essentially a recursive highpass filter that removes the DC offset from the data.
  1. CharFuncFilt: (c2 in earlier code) Sets the filter parameter CharFuncFilt that is applied in the calculation of the characteristic function of the waveform data.
  1. StaFilt: (c3 in earlier code) Sets the filter parameter (time constant) StaFilt that is used in the calculation of the short-term average (STA) of the characteristic function of the trace.
  1. LtaFilt: (c4 in earlier code) Sets the filter parameter (time constant) LtaFilt that is used in the calculation of the long-term average (LTA) of the characteristic function of the trace.
  1. EventThresh: (c5 in earlier code) Sets the STA/LTA event threshold. An event (a pick) is declared when STA is larger than EventThresh*LTA. Once an event is declared, pick_ew enters an event evaluation mode to determine if the event is a P-wave arrival or noise.
  1. RmavFilt: Filter parameter (time constant) used to calculate the running mean of the absolute value of the waveform data. Usually set to 0.9961.
  1. DeadSta: (c6 in earlier code) Sets the dead station threshold (counts). If the running average of the absolute value (AAV) of a trace is greater than DeadSta digital counts, the channel is considered dead and the pick_ew does not attempt to pick arrivals.

Coda Termination Parameters:

  1. CodaTerm: (c7 in earlier code) Sets the "normal" coda termination threshold (counts). Two methods are used to determine if the coda length calculation is over. For quiet stations, the coda is "normally" terminated when the AAV of a 2-second waveform window drops below CodaTerm digital counts. For noisy stations, an alternate termination method is used (see AltCoda & PreEvent, below). Pick_ew stops all coda calculations 144 seconds after event activation, even if the coda AAV hasn't reached the termination value. In the Northern California Seismic Network's convention, CodaTerm is the number of digital counts produced by a discriminator output signal (input to the Earthworm A/D) of 60 mV. The 2-bit Earthworm A/D has an input range of +/- 2.5 volts and an output range of 0 to 4095 counts (-2048 to 2047 counts). For such a system, a 60 mV input will produce a sample of 49.1 counts.
  1. AltCoda: (c8 in earlier code) Defines the "noisy station level" at which pick_ew should use the alternate coda termination method. If the AAV of a channel is greater than CodaTerm*AltCoda digital counts when an event is declared, pick_ew uses the alternate coda termination method.
  1. PreEvent: (c9 in earlier code) Defines the alternate coda termination threshold for noisy stations. If the AAV of a channel is greater than CodaTerm*AltCoda digital counts when an event is declared, the coda is considered over when the AAV of a 2-second waveform window drops to less than PreEvent*(pre-event signal amplitude). Pick_ew stops all coda calculations 144 seconds after event activation, even if the coda AAV hasn't reached the termination value.
  1. Erefs: (hard-wired at 50000. in earlier code) Used in calculating the increment (crtinc) to be added to the criterion level (ecrit) at each zero crossing. The criterion level is used to determine if the event is over. crtinc = eref / Erefs where eref is the current STA/LTA reference level. The smaller Erefs is, the faster ecrit will increase, and the sooner the event will terminate.

Optional Parameters:

  1. ClipCount: (added in v5.1 for use by eqcoda, ignored by pick_ew) Specifies the maximum absolute amplitude (in counts zero-to-peak) that can be expected for this channel. Eqcoda calculates clipping thresholds for P-amplitudes and coda-window average absolute amplitudes as a fraction of ClipCount.

ADDITIONAL REFERENCES ON THE PICKER ALGORITHM

Allen, Rex V., Automatic Earthquake Recognition and Timing from Single Traces, Bull. Seism. Soc. Am., v. 68, pp 1521-1532, 1978.

Allen, Rex, Automatic Phase Pickers: Their Present Use and Future Prospects, Bull. Seism. Soc. Am., v. 72, pp S225-S242, 1982.

Tuning: Suggested Picker Parameter Changes

James C. Pechmann

University of Utah, Dept. of Geology and Geophysics

July 7, 1998

Updated August 29, 1998

Original 1998 Suggestions.


     This document describes some suggested changes to the standard
parameter settings used in the Earthworm version of Rex Allen's
P-Picker algorithm.  These changes have improved the picker's
performance at two Earthworm installations where they have been
implemented as of this writing:  the University of Utah Seismograph
Stations (UUSS) and the University of Washington.  I consider these
recommended parameter changes to be provisional because I am still
working on optimizing the parameters and because I have not yet done
a systematic comparison between the picker performance with and
without these parameter changes.  Nevertheless, I have been encouraged
to make these provisional recommendations available to other Earthworm
users who may wish to implement them.

     The standard parameter settings were originally developed by Rex
Allen at the U.S. Geological Survey office in Menlo Park, California.
These parameters have been in use for many years in Rex Allen P-Picker
installations operating on data from the Northern California Seismic
Network (NCSN), the Southern California Seismic Network (SCSN), and
elsewhere.  While the performance of the picker with these parameters
has apparently been satisfactory for some networks, such as the NCSN
and SCSN, that has not been the case for other networks including the
UUSS network.  The problem appears to be that the P-Picker algorithm
with the standard parameters does not do a very good job of picking
relatively low-amplitude, emergent first arrivals.  Consequently, for
networks with average station spacings significantly larger than those
of the California networks, the picker is unable to pick enough
arrival times from most of the smaller seismic events to enable them
to be located.

     I believe that the picker performance can be significantly
improved by changing just four of the program's parameters--five for
broadband stations--as detailed below.  These recommended changes are
based primarily on detailed analyses of the reasons for the picker's
failure to pick arrival times on several seismic records with small
but clear P-wave first arrivals.  I will first give a summary of the
recommended changes to the picker parameters and then give a brief
explanation about what these changes do and why I think they are
needed.  The reasons for the first three changes are fairly obvious
once it is understood what the program does.  The last two recommended
changes are not as straightforward, and are subject to revision
pending further work.


SUMMARY OF SUGGESTED CHANGES:

     The 2-letter parameter names given below are those used in the
original Earthworm version of the code.  The longer names are those
used in the 1997 and later versions of the code written by Will Kohler
of the USGS.

(1)  Change i8 = MinPeakSize from 60 to 20 counts

(2)  Change i9 = MinCodaLen from 3 to 0 seconds

(3)  FOR BROADBAND STATIONS ONLY
     Change c1 = RawDataFilt from 0.985 to 0.939 

(4)  Change c3 = StaFilt from 0.6 to 0.4

(5)  Change c4 = LtaFilt from 0.03 to 0.015


EXPLANATION OF SUGGESTED CHANGES:

(1)  Change i8 = MinPeakSize from 60 to 20 counts

    In one of the quality checks performed by the picker, the absolute
values of the amplitudes of the first three extrema (peaks or troughs)
are compared to a threshold value.  This value was formerly called i8
but is called MinPeakSize in more recent versions of the code.  At
least one of these extrema must be greater than or equal to i8 for the
pick to be considered valid.

    For UUSS data, and probably data from other networks as well, the
standard threshold amplitude of i8 = 60 counts used for the NCSN is
unnecessarily high.  I chose to reset this parameter to 20, which is
roughly twice the zero-to-peak noise level for quiet UUSS stations.


(2)  Change i9 = MinCodaLen from 3 to 0 seconds

     It is very important to change this parameter to a value less
than 2 sec, even though for some versions of Earthworm this change
will require recompiling some code.  Here's why.

     The signal duration is defined as the difference between the
P-wave arrival time and the time when the average absolute value of a
200-sample-long window drops below a threshold value.  Except for
"noisy" stations, this threshold is c7 = CodaTerm.  The USGS uses a
value of c7 = 49.14 counts for both historical and practical reasons.

     For some P-wave arrivals with good signal-to-noise ratio on the
UUSS network, the average absolute value over the first 200 samples
after the pick is less than 49.14 counts.  Arrival time picks for such
arrivals will be rejected after 2 sec if the sampling rate is 100 Hz
and the minimum signal duration, i9, is set to 3 sec (the standard
NCSN value).  Setting i9 = MinCodaLen = 0 sec solves this problem.

     This problem could also be solved by lowering the threshold
value, c7 = CodaTerm, perhaps to some value representative of the
background noise levels.  This solution is less desireable because it
would lower the maximum magnitude that could be determined from the
signal duration measurements which, in the interests of timeliness,
are currently limited to 144 sec.

     The parameter i9 = MinCodaLen was unfortunately hardcoded to a
value of 3 sec in the picker software supplied with Earthworm versions
2.8 (May 1997) through 3.1 (April 1998).  If you are running one of
these versions of Earthworm, then to set i9 = MinCodaLen = 0 sec you
need to make the following change in the subroutine pick_ra.c and then
recompile:

                     Change the line

const int MinCodaLen = 3;      /* Must be an odd number */

                            to

const int MinCodaLen = 0;      /* Must be an odd number */


(3)  FOR BROADBAND STATIONS ONLY
     Change c1 = RawDataFilt from 0.985 to 0.939 

     The first thing that the picker algorithm does is to apply a
recursive highpass filter to the data to remove the DC offset.  If
c1 = 0.985 (the standard NCSN value) and if the sampling rate is
100 Hz, then the corner frequency of the filter is 0.24 Hz.  

     On broadband records, which for this purpose I define as records
from seismometers with free periods greater than one second, small
amplitude P-wave arrivals are often obscured by microseisms.  The
microseisms can be filtered out more effectively by setting
c1 = 0.939, which sets the corner frequency of the highpass filter to
1.0 Hz.  This change ought to improve the performance of the picker on
broadband records.  I haven't actually verified that it does improve
the picking, but I have verified that the change in c1 changes the
filtering as predicted.  For stations with short-period (1 Hz)
seismometers, the standard NCSN value of c1= 0.985 works just fine and
should probably be left alone.


(4)  Change c3 = StaFilt from 0.6 to 0.4
(5)  Change c4 = LtaFilt from 0.03 to 0.015

     The need for these changes is less obvious than for the other two,
but nonethless they are very important.  c3 and c4 control the time
constants for the short-term and long-term averages, respectively, of 
the characteristic function used in the identification of P-wave
first arrivals (see Allen, 1978, BSSA 68, 1521-1532).  The changes
above roughly double the time constants for these two averages, whose
ratio serves as the primary detector of P-wave arrivals in the picker
program.  Suppose we define NSTA and NLTA as the number of samples it
takes for the weight in the (recursively calculated) weighted
short-term and long-term averages, respectively, to drop below 10%.
Then the above changes increase NSTA from 3 to 5 samples and NLTA from
75 to 152 samples.

     The motivation for these changes is that the dominant period of the
background noise is 0.05 sec in the primary UUSS data source:  analog
telemetry data digitized at 100 Hz.  It seemed likely that the picker
performance would improve if the short-term average was computed over
a longer time window to better average out this noise.  But how much
longer?  If the short-term average is too long, then the picks will be
late relative to the onset of the arrival.  The value for c3 = 0.4
(NSTA = 5 samples) was based on the observation that the shortest 
zero-to-peak times for first arrivals recorded on the UUSS analog
telemetry network are ~ 0.04 sec.

     I increased the time constant for the long term average
proportionately to that of the short-term average on the assumption
that the ratio of these time constants had previously been optimized.
Experiments using different values of c4 while holding c3 fixed at
0.4 seemed to support this assumption.  However, I intend to do a
grid search on a set of test events to find the optimum values of
c3 and c4.  The optimum values for c3 and c4 depend on some complex
tradeoffs, the description of which is beyond the scope of this short
document.

FURTHER SUGGESTIONS: OCTOBER 2, 2006.

 
c6 = DeadSta .  For 24-bit digital telemetry stations, we set this
parameter to 1000000 instead of 1200--essentially turning off the dead
station check.  That's because this check is primarily useful for analog
telemetry stations, for which telemetry dropouts can cause large amplitude
noise.  We do not tend to have this problem with the digital telemetry
stations we record.  Therefore, we set c6 = DeadSta to a higher value for
digital telemetry stations in order to help keep this check from causing
the rejection of arrival time picks in the codas of prior seismic events.

c7 = CodaTerm .  We use gain-dependent values so that the coda termination
values all correspond to approximately the same ground velocity values.

c1 = RawDatafilt .  In my 1998 report on suggested picker parameter changes,
I recommended that for broadband stations this parameter be set to a value
that sets the corner frequency of the highpass filter to 1.0 Hz.  One point
that I did not make very clear in this report is that the correct value of
c1 for a given highpass filter corner frequency depends on the sampling
rate.  If we define the corner frequency of the filter, fc, as the frequency
at which the amplitude response is 1/sqrt(2) times it's maximum value, then
it can be shown that

fc = (1 / (pi T) arcsin [ (1 - c1) / sqrt(2(1 + c1**2)) ]
 
c1 = [sin(2 pi fc T) -1] / [(2 ( sin(pi fc T) )**2) -1]
 
where T = the sampling interval and pi = 3.14159.  For example, if fc = 1.0
Hz, then c1 = 0.939 for T = 0.01 sec and c1 = 0.854 for T = 0.025 sec.

Helpful Hints