Changes between Version 2 and Version 3 of eqverify


Ignore:
Timestamp:
05/14/12 12:55:20 (8 years ago)
Author:
branden
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • eqverify

    v2 v3  
    3232 
    3333== Configuration File Commands == 
     34On startup, eqverify reads the configuration file named on the command-line. Commands in this file set up all parameters used in verifying events to be earthquakes. In the control file, lines may begin with a valid eqverify command (listed below) or with one of 2 special characters: 
     35{{{ 
     36#  marks the line as a comment (example: # This is a comment). 
     37 
     38@  allows control files to be nested; one control file can be 
     39   accessed from another with the command "@" followed by 
     40   a string representing the path name of the next control file 
     41   (example: @model.d). 
     42}}} 
     43 
     44Command names must be typed in the control file exactly as shown in this document (upper/lower case matters!). 
     45 
     46 
     47=== EXAMPLE CONFIGURATION FILE === 
     48{{{ 
     49 # 
     50# This is eqverify's parameter file 
     51# 
     52MyModuleId  MOD_EQPROC  # module id to label logfile  with. 
     53                        # Note: eqverify is part of a mega-module which is 
     54                        # ultimately started by the program eqproc.  All 
     55                        # child processes of this mega-module need to use the 
     56                        # same module id (thus use eqproc's module id). 
     57LogFile       1         # 0=no log; 1=log errors 
     58 
     59# send output to the following command: 
     60# PipeTo "log_everything" 
     61PipeTo "hypo_mgr hypo_mgr.d ncal.hyp" 
     62 
     63# Required commands to turn glitch tests on (>0) or off (=0) 
     64test_slopevsmag  1 
     65test_freefitrms  1 
     66test_codawt      1 
     67test_pgroup      1 
     68 
     69# Optional commands that change eqverify test defaults 
     70# force_report  18 2.0    # report events with more than 18 picks 
     71#                         # and mag>=2.0 regardless of event weight 
     72# define_glitch  4 0.035  # a glitch is at least 4 picks within 
     73                          # 0.035 seconds 
     74# EventThreshold     3    # event weight at which event is "noise" 
     75# MaxDeltaT         30.   # consider arrival times within this many 
     76#                         # seconds of the 1st arriving pick 
     77# coda_clip        820    # level at which a coda-avg-absolute-value 
     78#                         # is clipped (see notes in eqcoda.command) 
     79}}} 
     80 
     81=== FUNCTIONAL COMMAND LISTING === 
     82 
     83Below are the commands recognized by eqverify, grouped by the function they influence. Some of the commands are marked "required"; these commands must be specified in the control file in order for eqverify to operate. Other commands have default values which are over-ridden when a command is given. 
     84{{{ 
     85        Earthworm System Setup: 
     86                MyModuleId      required 
     87                PipeTo          required 
     88 
     89        Event Verification: 
     90                test_codawt     required 
     91                test_freefitrms required 
     92                test_pgroup     required 
     93                test_slopevsmag required 
     94                coda_clip 
     95                define_glitch 
     96                EventThreshold 
     97                force_report 
     98                MaxDeltaT 
     99 
     100        Output Control: 
     101                LogFile         required 
     102}}} 
     103 
     104=== ALPHABETIC COMMAND LISTING & DESCRIPTION === 
     105In 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. Default values and the values used by Calnet are listed after each command description. 
     106 
     107The following list is organized by: 
     108 
     109command [argument here] 
     110 
     111'''coda_clip [klipc]'''[[BR]] 
     112Processed by: eqverify_config[[BR]] 
     113Function: verification 
     114 
     115Define the number of counts klipc above which a 2-second trace data window's average absolute amplitude should be considered clipped. Eqcoda also uses the "coda_clip" command; make sure that both eqcoda and eqverify are using the same value for klipc! Eqverify uses klipc in calculating an eqmeas-style coda weight that is used in the coda weight test (see "test_codawt" command). This coda weight is slightly different than that calculated by eqcoda. 
     116{{{ 
     117Default:  coda_clip 820                 Calnet:  coda_clip 820 
     118}}} 
     119 
     120'''define_glitch [npick nsec]'''[[BR]] 
     121Processed by: eqverify_config[[BR]] 
     122Function: verification 
     123 
     124Defines a glitch as at least npick arrivals within nsec seconds. This definition is used in the test on the temporal distribution of P-arrivals (see "test_pgroup" command for an explanation). 
     125 
     126Note: nsec should be set slightly larger than an integer multiple of the pick-timing resolution to avoid missing glitches due to round-off errors in floating point arithmetic (for example, our picks are reported to the nearest 0.01 seconds, so we set nsec to 0.035 sec instead of 0.03 sec). 
     127{{{ 
     128Default:  define_glitch 4 0.035         Calnet:  define_glitch 4 0.035 
     129}}} 
     130 
     131'''!EventThreshold [thresh]'''[[BR]] 
     132Processed by: eqverify_config[[BR]] 
     133Function: verification 
     134 
     135Sets the event weight thresh below which an event is a verified earthquake. Each event begins with an event weight of zero (perfect event). Up to four tests (see "test_*" commands) may be performed to verify that the event has the characteristics of a real earthquake. Three of the tests evaluate coda characteristics, and the other evaluates the temporal distribution of P-arrivals. Each test increments the event weight if non-earthquake characteristics are detected. If the event weight is equal to or greater than thresh after all the tests are performed, the event is declared noise and is written to eqverify's log file. Events with weights less than thresh are piped to the next process. 
     136{{{ 
     137Default:  EventThreshold 3              Calnet:  EventThreshold 3 
     138}}} 
     139 
     140'''force_report [npick mag]'''[[BR]] 
     141Processed by: eqverify_config[[BR]] 
     142Function: verification 
     143 
     144Sets a safety-valve to force large events to be reported regardless of their final event weight. An event with more than npick arrivals and a magnitude of at least mag will always be sent along to the next process, even if its event weight exceeds the event threshold thresh. The event's magnitude is calculated from its median coda duration. This safety-valve is necessary for large events because the picker terminates coda calculations at 144 seconds, before the coda begins to decay. This causes the test described in the "test_slopevsmag" command to yield results that would call the event noise. And we don't want a real large earthquake to be thrown away! 
     145Note: defaults were taken from Lindh and Hirshorn's program, eqmeas. 
     146{{{ 
     147Default:  force_report 17 2.0           Calnet:  force_report 17 2.0 
     148}}} 
     149 
     150'''!LogFile [switch]'''[[BR]] 
     151Processed by: eqverify_config[[BR]] 
     152Function: output 
     153 
     154Sets the on-off switch for writing a log file to disk. If switch is 0, no log file will be written. If switch is 1, eqverify will write daily log file(s) called eqverifyxx.log_yymmdd where xx is eqverify's module id (set with "!MyModuleId" command) and yymmdd is the current UTC date (ex: 960123) on the system clock. The file(s) will be written in the EW_LOG directory (environment variable). 
     155{{{ 
     156Default:  none 
     157}}} 
     158 
     159'''!MaxDeltaT [sec]'''[[BR]] 
     160Processed by: eqverify_config[[BR]] 
     161Function: verification 
     162 
     163Defines the time interval for studying the temporal distribution of P-arrivals (see "test_pgroup" command). Only picks within sec seconds of the first-arriving pick are considered in the test. 
     164{{{ 
     165Default:  MaxDeltaT 30.0                Calnet:  MaxDeltaT 30.0 
     166}}} 
     167 
     168'''!MyModuleId [mod_id]'''[[BR]] 
     169Processed by: eqverify_config[[BR]] 
     170Function: Earthworm setup 
     171 
     172Sets 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. 
     173 
     174NOTE: eqverify is part of a mega-module which is ultimately started by the program eqproc. All sub-modules of this megamodule should be given the same module id. 
     175{{{ 
     176Default:  none                          Calnet:  MyModuleId MOD_EQPROC 
     177}}} 
     178 
     179'''!PipeTo [cmdstring]'''[[BR]] 
     180Processed by: eqverify_config[[BR]] 
     181Function: Earthworm setup 
     182 
     183Sets the command to which eqverify will pipe a hypoinverse-format archive (with shadow cards) event for the next step in earthquake processing. Blank spaces are allowed in cmdstring as long as the entire command is enclosed in double-quotes. 
     184{{{ 
     185Default:  none 
     186Calnet:   PipeTo "hypo_mgr hypo_mgr.d ncal.hyp" 
     187}}} 
     188 
     189'''test_codawt [switch]'''[[BR]] 
     190Processed by: eqverify_config[[BR]] 
     191Function: verification 
     192 
     193Sets the switch for performing the coda weight test on each event. If switch is non-zero, the test will be performed; if switch is zero, it will not be performed. This test, taken from Lindh and Hirshorn's program eqmeas, calculates a coda weight for each pick in the manner of eqmeas. It then finds the average of all coda weights for the event and adds this average value to the event weight. 
     194{{{ 
     195Default:  none                          Calnet:  test_codawt 1 
     196}}} 
     197 
     198'''test_freefitrms [switch]'''[[BR]] 
     199Processed by: eqverify_config[[BR]] 
     200Function: verification 
     201 
     202Sets the switch for performing a test on the rms values from free-fit slopes to the coda average absolute values. If switch is non-zero, the test will be performed; if switch is zero, it will not be performed. This test, taken from Lindh and Hirshorn's program eqmeas, considers only the rms for each arrival where at least 3 coda window average absolute values were used in the free-fit. It finds the median of all such free-fit rms's for the event. If the median rms value is greater than 0.25 (bad fit to coda amplitudes), the event weight is incremented by 1. Otherwise (good fit), the event weight remains the same. With default settings, this test by itself cannot cause an event to be declared noise. 
     203{{{ 
     204Default:  none                          Calnet:  test_freefitrms 1 
     205}}} 
     206 
     207'''test_pgroup [switch]'''[[BR]] 
     208Processed by: eqverify_config[[BR]] 
     209Function: verification 
     210 
     211Sets the switch for performing a test the temporal distribution of P-arrivals for each event. If switch is non-zero, the test will be performed; if switch is zero, it will not be performed. In this test, all arrivals within "!MaxDeltaT" seconds (default = 30) of the first-arriving pick are examined to see if they belong to a glitch as defined by default settings (at least 4 picks within 0.03 seconds) or by the "define_glitch" command. If 50% or more of all picks belong to glitches, the event is declared noise. If 30-50% of the picks are glitch-picks, the event weight is incremented by 1. 
     212{{{ 
     213Default:  none                          Calnet:  test_pgroup 1 
     214}}} 
     215 
     216'''test_slopevsmag [switch]'''[[BR]] 
     217Processed by: eqverify_config[[BR]] 
     218Function: verification 
     219 
     220Sets the switch for performing a test on the median slope (fit to the coda window average absolute values) versus the magnitude calculated from the median coda duration for each event. If switch is non-zero, the test will be performed; if switch is zero, it will not be performed. This test, taken from Lindh and Hirshorn's program eqmeas, increments the event weight by the absolute value of the result of this equation: 
     221 
     222   median-slope + 0.7*magnitude-from-median-duration + 0.5 
     223 
     224For a normal earthquake, the slope fit to the coda windows should be negative and the result from the above equation should be zero. For a noise event, the result from the above equation may be unbounded. This test alone may cause an event to be declared noise. 
     225{{{ 
     226Default:  none                          Calnet:  test_slopevsmag 1 
     227}}} 
     228 
     229=== NOTES ON EQVERIFY'S DEFAULT VALUES FOR ITS CONSTANTS === 
     230 
     231For historical perspective, much of the verification source code was originally written to work on Rex Allen RTP digitizer data which had an output range of +/- 2500 counts for an input signal of +/- 2.5 Volts. The Earthworm system uses a 12-bit A/D; so its output ranges from +/- 2048 counts for the same input signal of +/- 2.5 Volts. 
     232{{{ 
     233   For Allen RTP digitizers,      1 mV = 1.0  counts 
     234   For Earthworm digitizers,      1 mV = 0.82 counts 
     235}}} 
     236 
     237Many constants used here were originally defined for the RTP data to be "nice round numbers" corresponding to some number of mV. The defaults for these constants have been converted for the Earthworm data; they still correspond to the same mV values (they just aren't "nice round numbers" any more). 
    34238 
    35239== Helpful Hints ==