NAME

Mbusneic - body wave magnitude, as computed by US NEIC, computational class for evproc generalized event processing

SYNOPSIS

use Mbusneic ;

($obj,$hashref) = new($class,"db" => $dbref,
		"dbm" => $dbmref[,$name1,$val1[,...]]) ;

display($obj[,@keys]) ;

put($obj,$name1,$val1[,...]) ;

@vals = get($obj,@keys) ;

$hashref = getwftimes($obj) ;

$hashref = process_channel($obj,$trref,$flush) ;

$hashref = process_station($obj,$sta,$flush) ;

$hashref = process_network($obj,$flush) ;

DESCRIPTION

This provides a perl computational class for computing body wave magnitude, aka mb, for use in orbevproc(1) and dbevproc(1) generalized event processing programs. The methodology comes from the United States National Earthquake Information Center through a document at ftp://hazards.cr.usgs.gov/MagnitudeWG/summary_of_WG_recommendations.pdf and a set of distance and depth correction factors. The correction tables came from a web site at http://jclahr.com/science/software/magnitude/mb/index.html operated by John Lahr, USGS, retired. If there is a more up to date and authoritative source for this we would be happy to update the Mbusneic perl computational module.

new is the constructor method and does the basic setup of the internal perl structures for magnitude processing. The Mbusneic::new method is completely inherited unmodified from the Magnitude::new method (see Magnitude(3p)).

display, put and get are also inherited unmodified from the Magnitude super class.

getwftimes is called by orb/dbevproc immediately after an object is created and this method must setup the waveform processing for the particular event. Setting up the waveform processing consists of 1) parsing the input parameters from those passed in by orb/dbevproc from the orbevproc.pf and dbevproc.pf parameter files when the processing object was created, using evproc::setup_processes (see evproc(3p)), 2) skipping origins with the wrong author codes, 3) going through the assoc table to find the stations that are associated with the event and their corresponding distances to the event, 4) computing noise and signal time windows based upon predicted P arrival times and user input parameters and 4) creating and filling in a perl hash with all of the results. The disposition and output perl hash are returned to orb/dbevproc using the evproc::makereturn function.

Mbusneic::process_channel first calls Magnitude::process_channel to get the waveform statistics. The internally cached statistic values are then used as input for computing the particular station-channel body wave magnitude which is also cached for subsequent processing.

Mbusneic::process_station is completely inherited unmodified from Magnitude::process_station.

Mbusneic::process_network first calls Magnitude::process_network to compute and output the network magnitude and magnitude processing results. It then deposits the body wave magnitude into its appropriate field in the output origin table row.

PARAMETER FILE

The parameter file object used by the Mbusneic class must be specified in the original orbevproc.pf or dbeveproc.pf parameter files as associative arrays that are indexed through the entries in the event_processes table (see orbevproc(1)). An example parameter file associative array for Mbusneic follows.


#    This is a parameter template for Mbusneic

mbusneic_params &Arr{
     channels &Tbl{
#    snet_expr chan_expr        noise_twin signal_twin  snr_thresh         clip_upper
#       sta_expr       filter        noise_toffset signal_toffset clip_lower
     .* .*     SHZ     auto     30.0 10.0  20.0    10.0 3.0       -65000.0 +65000.0
     .* .*     BHZ_00  auto     30.0 10.0  20.0    10.0 3.0
     }
     reject &Tbl{
#    snet_expr sta_expr
     IU        RAR
     }
     update_time           10.0
     maximum_wait_time     300.0
     maximum_bad_fraction  0.2
     auth_accept           oa_.|oa_. dbg
     output_magtype        mb
     output_auth           orbevproc
     output_stamag         yes
}

The recipe of stations and channels to be used to compute body wave magnitude are given in the channels table. Each entry in the table must consist of at least 9 white space separated fields:

When determining which channels to process, each line in the channels table is compared against the SEED net code and the CSS sta and chan codes. The first line that matches defines the parameters for that channel. Stations that match in the channels table can be rejected if they match against any of the lines in the reject table. The other parameters are as follows:

LIBRARY

use lib $ENV{ANTELOPE}/data/evproc ;

SEE ALSO

orbevproc(1), evproc(3p), Magnitude(3p)

BUGS AND CAVEATS

We encourage the users to inspect all of the source code, written as perl modules, that is used to compute the magnitudes using orbevproc(1) and dbevproc(1). These can be found in $ANTELOPE/data/evproc. All of the details of how the magnitudes are computed can be seen in the perl module source code files. If you want to change anything, please feel free to do so. However, please do not change any of these modules directly as they are supplied in the distribution. Instead, copy the modules, give them new names and change your own copies as you wish.

AUTHOR

Danny Harvey
Boulder Real Time Technologies, Inc.
Antelope User Group Contributed Software

Table of Contents
Antelope Release 4.9 Linux SuSE 9.3 (i586) 2.6.11.4 2007-11-09
Boulder Real Time Technologies, Inc For more information, contact support@brtt.com