Admit amplitudes into the linear system#

1. Prerequisites#

The aim is to admit the “best” relative P and S amplitudes from the potentially very large sets stored in P-amplitudes.txt and S-amplitudes.txt into the linear system of equations that constraints the relative moment tensors. We assume the following file structure:

myproject/
+-- config.yaml
+-- exclude.yaml
+-- data/
    +-- ...
+-- align1/
    +-- ...
+-- align2/
    +-- ...
+-- amplitude/
    +-- P-amplitudes.txt
    +-- S-amplitudes.txt

As relative S amplitudes represent comparission of event triplets the number of possible S combinations is \(\binom{N}{3}\), for \(N\) events, while the maximum number of P pairs is only \(\binom{N}{2}\).

2. Admit parameters#

The following parameters in config.yaml define the critera by which relative amplitude observations should be excluded. As before, different parameter sets are distinguished using admit_suffix, which is appended to the name of the output files.

config.yaml#
# Admission paramters
# -------------------------
#
# Suffix appended to the amplitude suffix, naming the admission parameters
# parsed to 'admit'
# (str)
admit_suffix: admitted

The first parameters pertain to the quality of waveform reconstruction:

  • max_amplitude_misfit discribes how well a waveform is reconstructed, where a value of 0 indicates perfect reconstruction, >1 indicates that the misfit amplitude is larger than the singal amplitude itself. This value should be <1.

  • max_s_amplitude_misfit As max_amplitude_misfit, but sets a different value for S-waves.

  • max_s_sigma1 discribes the linear independence of the two relative S amplitudes. The values of \(B_{abc}\) and \(B_{acb}\) may become arbitrary as this value approaches 1 and the equation may not be linearily independent of others. However, in the case of very similar S waveforms, \(\sigma_1\) may be close to 1 for almost all waveform combinations. One then runs into danger of excluding all observations when choosing too low a value.

config.yaml#
# Discard amplitude measurements with a higher misfit than this. Applies only to P
# amplitudes if 'max_s_amplitude_misfit' is given.
# (float)
max_amplitude_misfit: inf

# If given, discard S amplitude measurements with a higher misfit.
# 'max_amp_misfit' then only applies to P amplitudes.
# (float)
max_s_amplitude_misfit:

# Maximum first normalized singular value to allow for an S-wave reconstruction. A
# value of 1 indicates that S-waveform adheres to rank 1 rather than rank 2 model.
# The relative amplitudes Babc and Bacb are then not linearly independent.
# (float)
max_s_sigma1: 1.0

The next parameters pertain to properties of event combinations.

  • max_magnitude_difference: Large differences in event magnitude may cause problems in the relative amplitude measurement when the lowpass filter corner was chosen too high and the depletion in high frequency energy of the larger-magnitude event becomes significant.

  • max_event_distance: Large inter-event distances may be an indication that the common Green’s function assumption is violated.

config.yaml#
# Maximum difference in magnitude between two events to allow an amplitude
# measurement.
# (float)
max_magnitude_difference:

# Maximum allowed distance (m) between two events.
# (float)
max_event_distance:

The next parameters assure that only observations that contribute to a meaningful solution enter the system of equations.

  • min_equations indicates that each relative moment tensor must be constrained by at least this many equations

  • max_gap is the maximum azimuthal gap allowed for a moment tensor. If this value is exceeded, all ob

If one of the values is exceeded for a moment tensor, all observations pertaining to that MT will be discarded. These criteria are applied iteratively until no equations are left that violate either.

config.yaml#
# Minimum number of equations required to constrain one moment tensor
# (int)
min_equations: 1

# Minimum number of stations required to constrain one moment tensor
# (int)
min_stations: 1

# Maximum azimuthal gap allowed for one moment tensor
# (float)
max_gap: 360.0

The next paramters allow to decimate the number of S observations. There are \(\binom{3}{N}\) possible S triplets, but only \(\binom{N}{2}\) possible P pairs. However, S observations should not necessarily dominate the equation system.

  • two_s_equations determines, if each S amplitude observation contributes two equations (of the two longest polarization vectors \(g\) for the station-event configuration), or only one (of the longest polarization vector)

  • max_s_equations allows to exclude S observations that are redundant in the sense that the events contributing to the triplet have been observed many times and on stations that have many observations. Observations are exluded until the threshold is reached. When set, keep_events is a list of events that should not be considered as redundant and equation_batches controls how often the equations should be re-ranked.

config.yaml#
# Use two equations per S-amplitude observation triplet (`False` only includes the
# one with the highest norm of the polarization vector).
# (bool)
two_s_equations: True

# Maximum number of P-wave equation in the linear system. If more are available,
# iteratively discard those with redundant observations, on stations with many
# observations, and with a higher misfit
# (int)
max_p_equations:

# As `max_p_equations`, but for S equations.
# (int)
max_s_equations:

# When reducing number of equations, increase importance of these events by not
# counting them in the redundancy score. Use to keep more equations e.g. for the
# reference event or specific events of interest.
# (list)
keep_events:

# When reducing the number of S-wave equations, rank observations iteratively this
# many times by redundancy and remove the most redundant ones. A lower number is
# faster, but may result in discarding less-redundant observations.
# (int)
equation_batches: 1

3. Applying admission parameters#

When a set of parameters has been found, run

shell#
relmt admit

which will place the admitted files next to the original ones

myproject/
+-- config.yaml
+-- exclude.yaml
+-- data/
    +-- ...
+-- align1/
    +-- ...
+-- align2/
    +-- ...
+-- amplitude/
    +-- P-amplitudes.txt
    +-- S-amplitudes.txt
    +-- P-amplitudes-admitted.txt
    +-- S-amplitudes-admitted.txt