Polarity Picker¶
This plugin provides the polarity pickers P-AIC and P-FX which are capable of determining the first motion direction of the onset.
Overview¶
The plugin picker-plugins provides two ways to determine the first motion of a P pick.
The P-AIC utilizes the picker interface and the P-FX the feature-extraction interface FX. Both work almost identical as they use the same internal algorithms to determine the pick polarity. The only difference is the interface and therefore when the polarity picker is started.
In general, the polarity is either set to positive or negative if the
polarity was determined successfully, or to undecidable if the intern
algorithms cannot determine it uniquely.
The polarity is left unset if any intern algorithms fail or if configuration
criteria, like minSNR, are not fulfilled.
P-AIC¶
The P-AIC is built on top of the default AIC algorithm used to refine the P pick. In addition to the standard AIC behavior, the P-AIC tries to identify the first motion direction by applying one or multiple algorithms.
Picks made by the P-AIC plugin can be identified:
In the method column of the arrival table in the Location tab of scolv [1],
In the picker window from the letter within brackets following a phase type (<P>),
In the picker window from the method hint which appears when hovering over a pick.
Read the pick method (scolv picker window) to check the applied method which was used to create a pick polarity.¶
P-FX¶
The P-FX is using the FX interface to determine the pick polarity after a pick is made.
Picks made by the P-FX plugin can only be identified in the picker window from the comment which appears when hovering over a pick.
Read the pick comment (scolv picker window) to check the applied method which was used to create a pick polarity.¶
Picker configuration¶
Plugin loading: Add the plugin polpicker to the configuration of scautopick or the global module configuration for making use of P-AIC or P-FX:
plugins = ${plugins}, polpicker
Module parameters: Activate the P-AIC by changing the name of the
pickerin the module configuration of scautopick:picker = "P-AIC"
or to use the P-FX set the
fxvalue in the scautopick configuration:fx = "P-FX"
Bindings parameters: Configure the P-AIC parameters under picker in global section of the bindings of scautopick. An example:
picker.PAIC.minSNR = 20 picker.PAIC.algorithms = extremaComparer_envtrace,thresholdIncreaser picker.PAIC.decider = polarity picker.PAIC.noiseBegin = -1.0 picker.PAIC.signalBegin = -0.67 picker.PAIC.signalEnd = 0.5 picker.PAIC.filter = "RMHP(0.1)" picker.PAIC.useTime = true picker.PAIC.enableLinearDetrend = false picker.PAIC.disableAIC = false
or for P-FX under fx:
fx.PFX.minSNR = 20 fx.PFX.algorithms = extremaComparer_envtrace,thresholdIncreaser fx.PFX.decider = polarity fx.PFX.noiseBegin = -1.0 fx.PFX.signalBegin = -0.67 fx.PFX.signalEnd = 0.5 fx.PFX.filter = "RMHP(0.1)" fx.PFX.useTime = true fx.PFX.enableLinearDetrend = false
Parameter explanation:
Parameter
Description
Values (defaults in bold)
minSNRMinimum SNR in order to start the polarity picker.
algorithmsDefines the polarity algorithm(s) to use.
thresholdIncreaser, extremaComparer, extremaComparer_dominantperiod, extremaComparer_dominantperiod_noend, extremaComparer_dominantperiod_envtrace, extremaComparer_noend, extremaComparer_envtrace, extremaComparer_envtrace_noend, dominantPeriodFixed, dominantPeriod
deciderDefines how the individual results of multiple algorithms are combined.
polarity, sample, majority
noiseBeginBegin of the noise window in relation to the initial pick time.
signalBeginEnd of the noise and begin of the signal window in relation to the initial pick time.
signalEndEnd of the signal window in relation to the initial pick time.
filterConfigures the first motion filter. Usually first motions are determined on unfiltered traces.
periodPeriod of the dominant waves in the first motion. Only valid for algorithm dominantPeriodFixed.
useTimeWhether to use the pick time refinement produced by the polarity picker.
true, false
enableLinearDetrendIf true, uses the linearly detrended the trace if its SNR increases.
true, false
disableAICIf true disables the second-stage AIC picker beforehand (only used by P-AIC).
true, false
Repicker in scolv: In addition, the P-AIC is available as a repicker in the scolv picker window. In the repicker drop-down menu of the scolv picker, the entry P-AIC should appear. Enable ‘P picking’ and press ‘R’ to automatically repick with P-AIC. .. With SeisComP versions >7, the repicker shows the predicted polarity besides .. the SNR. Make sure the plugin in loaded either in the global module or scolv configuration:
plugins = ${plugins}, polpicker
Configuration hints¶
Although polarities should be picked on unfiltered waveforms, the algorithms might benefit from applying filters that remove noise or precursor artifacts. Depending on the presumed dominant frequency of the signal, low-frequent noise (e.g. microseism) might be filtered out by using a high-pass filter. For example, the filter RMHP(0.1) might not significantly distort the phase of the incoming P phase. For picking polarities on phases that have similar frequencies compared to the sensor sample-rate, precursor artifacts might be visible. To remove their influence, a low-pass filter, e.g. BW_LP(3,-0.4), might be useful.
For more robust polarities minSNR values of at least 10-20 are
recommended.
The noise window should not be too small (and not zero!) as the algorithms need
some data to calibrate.
The initial testing suggested a reasonable signalBegin value is 66%
of the noiseBegin value.
Algorithms¶
Determining the first motion correctly can become a challenging task and may result in non-unique solutions. Therefore the plugin provides a set of algorithms that try to determine the first motion based on different approaches.
The simplest approach is measuring the gradient between the pick and its next sample. As the P-AIC and P-FX are embedded in an automatic processing chain and each automatic pick usually has an uncertainty that is higher than a few samples, the reference pick might not be accurate enough to reliably apply the simple gradient method. Further, the waveform may be affected by high noise levels (either low- or high-frequent), which may make the absolute measurement of the gradient incorrect for such cases.
Instead, more robust algorithms were implemented. Those assume an uncertainty of the initial triggering pick and, thus, consider a larger time window around the pick. Still each algorithm has its drawbacks and might only be useful for certain types of waveform data.
Besides determining the first motion, most of the available algorithms
are capable of refining the pick time by determining the sample that
most-likely corresponds to the polarity onset.
Configure the parameter useTime to enable/disable the pick time
refinement.
thresholdIncreaser:¶
The idea of this algorithm is that the polarity is the first stable amplitude that exceeds the noise. The polarity amplitude is determined by the amplitude that crosses two consecutively increased thresholds.
Advantages:
simplicity of the algorithm
reliable for strong amplitude first motions
Disadvantages:
does not work with large low-frequent noise
might miss weak first motions
Two examples showing the basic idea of the algorithm. Dashed, horizontal
lines represent the increasing thresholds.
The yellow pick represents the amplitude that is responsible for the polarity
decision, while the red pick is the position of the final pick if
useTime is true.
For data where the signal is large compared to the background noise (top),
the algorithm performs well. For example, if the waveform is highly
influenced by low-frequent noise (bottom), the threshold approach is not
suitable anymore and might produce erroneous polarities.¶
extremaComparer:¶
The idea of this algorithm is that the polarity defining extremum is significantly larger than the previous extremum. The contrast between each pair of consecutive extrema is calculated. The extremum with the largest contrast to its previous extremum defines the polarity. To stabilize the results, the algorithm considers only extrema within a most-likely time window around the P onset and calculates for each extrema pair a local mean level before determining the amplitude contrast. The latter results in a more robust determination of the polarity, especially in low-frequent noise environments.
Advantages:
more robust in noisy environments
reliable for strong amplitude first motions
has derivatives tackling certain use cases
Disadvantages:
complex algorithm
might miss weak first motions
Two examples showing the basic idea of the algorithm. Green dots mark all
extrema, whereas red dots mark only the relevant extrema, which lie in the
predicted most-likely arrival time window (vertical, dotted lines).
Next to each red dot is the confidence value, the extremum with the highest
value determines the polarity.
The yellow pick represents the amplitude that is responsible for the polarity
decision, whereas the red pick is the position of the final pick if
useTime is true.
The approach is capable of finding the correct polarities for data with
large SNR (top) as well as for data significantly influenced by
low-frequent noise (bottom).¶
To tackle some of its limitations, the algorithm has some extensions.
For example, add the envtrace extension by replacing
extremaComparer with extremaComparer_envtrace.
Available extensions:
extremaComparer_envtrace: combines amplitude ratios for an envelope trace with the original trace ratios - enhances the detection quality of first motions with small amplitudesextremaComparer_dominantperiod: applies a weighting based on a period depending time difference to the pick - prefers polarities close to the initial pickextremaComparer_noend: there is no end time window restriction by the internal algorithm - helps if the initial pick is too early
and combinations: extremaComparer_envtrace_noend,
extremaComparer_dominantperiod_envtrace and
extremaComparer_dominantperiod_noend
dominantPeriod:¶
In the first step, the dominant period is determined or, for the fixed mode,
read from the configuration (picker.PAIC.period or
fx.PFX.period).
Based on the period value, a time window around the pick is calculated.
The final polarity is defined by the average slope of the time window.
Decider¶
It is possible to use multiple algorithms simultaneously on the same pick by
providing multiple entries in picker.PAIC.algorithms or
fx.PFX.algorithms.
Each algorithm determines polarity and sample individually.
The final polarity that will be associated to the pick needs to be determined
based on the outcome of all algorithms.
For that reason several decider algorithms are available:
polarity: sets the polarity only if all algorithms predict the same polaritysample: sets the polarity only if all algorithms predict the same sample as phase onset, as most algorithms are capable of refining the pick timemajority: sets the polarity to the value of the majority of the results, the polarity is set to undecidable if it is a draw
Note
If only one single algorithm is used, the decider is skipped and the polarity is directly determined by the algorithm.
Validation on test sets¶
The performance of the algorithms have been validated by using publicly available first motion datasets. Hereby, the theoretical polarities (P-AIC/P-FX) were compared against the manual picks from the datasets.
Evaluation of the different polarity picker algorithms against the Instance dataset by Michelini et al. [8] (top) and the SCSN dataset by Ross et al. [10] (bottom). The plots show the matching percentage for all data points with at least at certain SNR value.¶