scmag

Computes magnitudes.

The purpose of scmag is to compute magnitudes. It takes amplitudes and origins as input and produces StationMagnitudes and NetworkMagnitudes as output. The resulting magnitudes are sent to the “MAGNITUDE” group. scmag doesn’t access any waveforms. It only uses amplitudes previously calculated, e.g. by scamp. The purpose of scmag is the decoupling of magnitude computation from amplitude measurements. This allows several modules to generate amplitudes concurrently, like scautopick and scamp. As soon as an origin comes in, the amplitudes related to the picks are taken either from the memory buffer or the database to compute the magnitudes. Currently the following magnitude types are implemented:

MLv
Local magnitude calculated on the vertical component using a correction term to fit with the standard ML
MLh
Local magnitude calculated on the horizontal components to SED specifications. See MLh
mb
Narrow band body wave magnitude using a third order Butterworth filter with corner frequencies of 0.7 and 2.0 Hz.
mB
Broad band body wave magnitude.
Mwp
The body wave magnitude of Tsuboi et al. (1995)

Additionally, scmag computes the following derived magnitudes:

Mw(mB)
Estimation of the moment magnitude Mw based on mB using the Mw vs. mB regression of Bormann and Saul (2008)
Mw(Mwp)
Estimation of the moment magnitude Mw based on Mwp using the Mw vs. Mwp regression of Whitmore et al. (2002).
M(summary)
Summary magnitude, which consists of a weighted average of the individual magnitudes and attempts to be a best possible compromise between all magnitudes. See below for configuration and also scevent for how to add the summary magnitude to the list of possible preferred magnitudes or how to make it always preferred.
Mw(avg)
Estimation of the moment magnitude Mw based on a weighted average of other magnitudes, currently MLv, mb and Mw(mB), in future possibly other magnitudes as well, especially those suitable for very large events. The purpose of Mw(avg) is to have, at any stage during the processing, a “best possible” estimation of the magnitude by combining all available magnitudes into a single, weighted average. Initially the average will consist of only MLv and/or mb measurements, but as soon as Mw(mB) measurements become available, these (and in future other large-event magnitudes) become progressively more weight in the average.

Configuration

magnitudes = [MLv, mb, mB, Mwp]
Defines the types of magnitudes to calculate. A magnitude of a given type is going to be calculated only when a corresponding amplitude exists. Check the amplitudes calculated by scautopick and scamp. Also, mb and mB are only calculated for stations between 5 and 105 degrees so if autoloc.maxStationDistance is set to 5 or less in scautoloc then no mb, mB, or their derived magnitudes will be available. Mw(mB) is derived from mB and is automatically calculated when mB is on the list.
magnitudes.average = [default]|mean|trimmedMean|median|trimmedMedian
Defines the average method to use when computing the network magnitude. Further configuration is possible. See below.
summaryMagnitude.enabled = [true]|false
Enable/disable calculation of a summary magnitude
summaryMagnitude.type = [M]
Define the name of the summary magnitude.

summaryMagnitude.coefficients.a = [0, Mw(mB):0.4, Mw(Mwp):0.4]
summaryMagnitude.coefficients.b = [1, MLv:2, Mw(mB):-1, Mw(Mwp):-1]

Define the coefficients to calculate the weight of the contribution of a given magnitude to the summary magnitude. The name before the colon must match a contributing magnitude type. weight = a* NetworkMagnitude.stationCount + b. Summary magnitude is then calculated as M = sum(NetworkMagnitude*weight(NetworkMagnitude))/sum(weight(NetworkMagnitude)).

summaryMagnitude.whitelist = []
summaryMagnitude.blacklist = [mB, Mwp]

Define the magnitudes to include into the the summary magnitude. If the whitelist is defined then only magnitudes of those types are included in the summary mangnitude. If the whitelist is empty and the black list has entries then all magnitude are included except those on the black list. If both lists are empty then all network magnitudes are included in the summary magnitude.

Magnitude Averaging

Magnitude average method can be configured by the variable magnitudes.average. See above.

The default average algorithm for all magnitudes is the current scmag algorithm (mean for less than 4 station magnitudes, trimmedMean(25). When using Trimmed type a percent value should be assigned to define the trimming (e.g. trimmedMean(25)

Example:

magnitudes.average = default, MLv:median, mb:trimmedMean(25)

This means that the default algorithm will be used except MLv that will use the median and mb that will use the trimmedMean removing the 25% of outliers.