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:

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.