MLh Plugin
The MLh plugin (previously MLsed) is designed to compute amplitudes and magnitudes according to the Swiss Seismological Service (SED) standards. It is a modified version of the gempa ML plugin developed at the Liverpool developer meeting.
Amplitude
The MLh amplitude calculation is very similar to the original ML. The two differences are:
- It uses the maximum of the two horizontal components (average can be configured if necessary)
- It uses zero-to-peak in stead of peak-to-peak values
Zero-to-peak is calculated just by dividing the p2p amplitude by two. This is not exact for unsymmetrical signals, but that doesn't matter because the Gempa code actually generates zero-to-peak amplitudes internally and multiplies them with two. So in the end we get real zero-to-peak values.
Station Magnitude
The MLh plugin calculates the individual station magnitude using the following formula:
mag = log10(waampl) + A * hypdistkm + B
waampl is the amplitude produced by the MLh plugin. hypdistkm is the distance from the sensor to the hypocenter in kilometers. A and B are parameters that can be configured in a config file. Several pairs of A and B can be configured for different ranges of hypocenter distance.
Overall Event Magnitude
The SED standard is to use the median value of all contributing station magnitudes, no trimming.
Options
The MLh plugin must be loaded from an application that links to libseiscomp3_processing e.g., scmag, scamp, scautopick, or scolv. Currently amplitudes for horizontal components are not computed by by scautopick and this must be done by scamp;
scamp.cfg
plugins = ${plugins}, mlh ... # MLh clipping level, in raw counts, eg. 80% of 2^23 = 6710886 module.trunk.global.MLh.ClippingThreshold = 6710886 amplitudes = MLh, MLv, mb, mB, Mwp ...
Once MLh amplitudes are available to scmag then MLh magnitudes can be calculated.
scmag.cfg
plugins = ${plugins}, mlh # define combiner operation for both horizontals (min, max, avg) module.trunk.global.MLh.maxavg = max # define attenuation parameters for ML(SED) # format: "UpToKilometers A B; UpToNextKilometers A B;" # the first parameter set "30 nomag" means that up to 30km # from the sensor the magnitude should not be calculated module.trunk.global.MLh.params = "30 nomag; 60 0.018 2.17; 700 0.0038 3.02" # MLh clipping level, in raw counts, eg. 80% of 2^23 = 6710886 module.trunk.global.MLh.ClippingThreshold = 6710886 # magnitudes to be processed magnitudes = MLv, mb, mB, Mwp, MLh
Source Code
Beginning with the Seiscomp3 Potsdam release, the MLsed is included in the official source. It can be found in the directory ~/seiscomp3-potsdam.beta-2011.203.02/src/sed/plugins/magnitudes/MLh.
Fast Playback
Currently scautopick only computes vertical amplitudes but horizontal amplitudes are needed for MLh. The horizontal amplitudes are calculated using scamp which is not part of the current fast playback.
TODO scripts for adding scamp to fast playback need porting from Gempa wiki to here.