Search:
wiki:pick_ew
Last modified 7 months ago Last modified on 02/04/13 06: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.

2. 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.

3. 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.

4. Comp: a 3-character string to identify the component of motion recorded by this seismic trace.

5. Net: a 2-character string that identifies the network that operates the seismic instrument.

6. Loc: a 2-character string that identifies the location code that describes the sensor location.

Event Termination/ Evaluation Criteria:

7. 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.

8. 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.

9. 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].

10. 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.

11. 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.

12. 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:

13. 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.

14. CharFuncFilt: (c2 in earlier code) Sets the filter parameter CharFuncFilt that is applied in the calculation of the characteristic function of the waveform data.

15. 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.

16. 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.

17. 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.

18. RmavFilt: Filter parameter (time constant) used to calculate the running mean of the absolute value of the waveform data. Usually set to 0.9961.

19. 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:

20. 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.

21. 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.

22. 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.

23. 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:

24. 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

### Download in other formats:

- Plain Text