Workflow

The plugin is loaded by scautopick [12] as well as screpick [15] or scolv [14].

../_images/deepc-scautopick-full-ex.svg

Fig. 2 Figure 35: Example workflow with DeepC as a plugin for scautopick

Depending on the type of model and application, DeepC’s output differs:

  1. An event classification model used with scautopick or screpick adds a comment with the event type to the resulting pick object. It shouldn’t be loaded with scolv.

  2. Models providing phase classification used with scautopick or screpick potentially change the phase hint of the resulting pick object, and they shouldn’t be loaded with scolv either.

  3. Models providing onset time prediction used with scautopick or screpick will refine the pick time as any other picker plugin. They can also be loaded by scolv and used as repicker. Further, if activated, the confidence of the model’s pick can be shown in the SNR field of the info box.

To load one of these models, you need to define the appropriate “sub-picker”.

task

kind

config name

global binding parameter group

Event classifier

primary

deepc-ec

picker.deepc.deepcEC

Phase classifier

primary

deepc-pc

picker.deepc.deepcPC

Phase classifier and refiner

primary

deepc-pr

picker.deepc.deepcPR

Phase classifier and refiner

secondary

deepc-sr

spicker.deepcSR

Note

Currently, gempa doesn’t provide a model for the task event classification.

3-Component Data Processing

Most DL models require 3-component waveform data to work with. In case only single-component data exits, the missing data .. channels may be generated from the existing ones by duplication and renaming of streams using scart [11].

Example duplicating and renaming streams from a file data.mseed:

dataFile=data.mseed
# extract data to be duplicated:
echo "
2000-01-01 00:00;2024-01-01 00:00;AB.*.00.HHZ > /tmp/filter.list

scart -I $dataFile -l /tmp/filter.list --stdout > /tmp/filter.mseed

# rename:
scart --rename AB.TEST1.00.HHZ:AB.TEST1.00.HHN,AB.TEST1.00.HHZ:AB.TEST1.00.HHN -I /tmp/filter.mseed --stdout > /tmp/hhn.mseed
scart --rename AB.TEST1.00.HHZ:AB.TEST1.00.HHE,AB.TEST1.00.HHZ:AB.TEST1.00.HHE -I /tmp/filter.mseed --stdout > /tmp/hhe.mseed

# merge:
cat /tmp/hhn.mseed /tmp/hhe.mseed $dataFile | scmssort -Eui > /tmp/duplicated.mseed

Note that a DL model won’t work as reliably with artificial components as with true 3-component data.

Phase reclassification

For phase refinement and classification, deepcp and deepcsr can be used as primary and as secondary picker, respectively. Depending on whether picker.deepc.deepcPR.reclassify is set and how confidence thresholds are defined, deepcp follows a decision tree to classify a pick:

../_images/decisiontree-p.svg

Fig. 3 Figure 36: Pick decision tree for DeepC primary picker

In principle, deepcsr could be run with reclassification as well, but it is currently not recommended as it would undermine the sense of the secondary picker. Therefore, deepcsr has only two possibilities: send or not-send an S pick which is implemented by the very basic check if the first S pick after the trigger has a confidence above the given threshold.

A reclassification could take into account if the confidence for a P pick close to the potential S pick is higher. As a consequence, deepcsr could then reject the pick. But, currently, its pick decision tree is not implemented this way, so reclassification should be turned off for deepcsr.