Demonstrator

The demonstrator module comprises fast source inversion utilities calling Grond or the Iterative Deconvolution and Stacking (IDS) algorithm. The module provides functions to adjust the parameter search space within the mentioned source estimation tools (MagnitudeGroup), and to controll the parameter sampling (SamplingGroup) and the used ground models (EngineConfig).

Sketch of the basic elements and controls of the demonstrator.

Sketch highlighting the different controlling and configurable elements of the demonstrator. The Sampling groups with containing sampling phases define, how the inversions draw their models from the parameter space (using uniform sampling, a directed search, sampling from a known prior, …). Magnitude groups define the inversion parameters, tested models, etc., depending on the initial magnitude estimate. The engine controls the Green’s Function handling, e.g., where they are stored, and wich Green’s function store should be used.

The core of the demonstrator module is run_source_inversion(), which calls Grond or IDS with given seismic data, their corresponding meta data, and event and finally returns all tested models as sources with associated misfits.

Sketch of the basic work flow of the demonstrator.

Sketch highlighting the general workflow of the demonstrator. It uses the configuration files along with available event information, waveform data, and station meta data to perform seismic inversions after initial quality controlling (QC). The tested source ensembles are reported in YAML files along with their associated misfits. Graphical reports can be generated on demand.

Sampling phases

Within Grond tested models are sampled from the predefined model space. The way samples are drawn can be adjusted using sampling phases. Each phase provides one method of drawing samples. Simple ones will generate models assuming a uniform distribution (UniformSamplingPhase). Others can sample from a priori information (e.g., PDFSamplingPhase). Most of the them wrap Gronds SamplerPhases (Grond docs):

Siria sampler phase

Grond sampler phase

UniformSamplingPhase

grond.optimisers.highscore.optimiser.UniformSamplerPhase

PDFSamplingPhase

grond.optimisers.highscore.optimiser.PDFSamplerPhase

DirectedSamplingPhase

grond.optimisers.highscore.optimiser.DirectedSamplerPhase

Others implement new, more advanced sampling techniques:

  • InjectionSamplingPhase:

    Relying on the siria.si.invert.SourceInjector it samples PDFs of fault orientation and mechanism based on the NEAMTHM2018 (TSUMAPS) and fault databases.

  • PriorSamplingPhase:

    It allows for changing sampling phases, hence changing inversion settings, in consecuitive runs. This sampling phase is aiming for rapid earthquake parameter assessments. Initial inversion runs could use prior information to narrow down the parameter search space. Consecuitive runs can then refine the PDFs provided within earlier stages.

Note: Sampling phases do only matter for the mt, rs and pdr source model included in Grond. The ids source does not require any sampling phase definition.

Sampling groups

SamplingGroup provide the model space sampling within an inversion. It groups one or multiple sampling phases. Note, if multiple SamplingGroup are given, all may be applied to one MagnitudeGroup giving the opportunity to implement different, consecutiviely executed, inversion sampling strategies for the same earthquake.

Magnitude groups

Different inversion strategies can be defined depending on the estimated magnitude of the earthquake or the source model to be used within the inversion. MagnitudeGroup defines inversion settings based on the intial magnitude estimated.

Engine configuration

The demonstrator relies on precalculated Green’s Function stores. The engine and its EngineConfig controll the efficient loading of the stores. Additionally, it provides simple processing settings as the number of parallel processes or threads allowed.

Demonstrator configuration and demonstrator

Configurations of magnitude groups, samplings groups and the engine are required by the demonstrator. It is configured and controlled using the DemonstratorConfig. The config includes also additional settings, e.g., on the number of included stations, or a station blocklist.

When prepared, the configuration is fed into the SourceInversionDemonstrator together with preliminary event information. The demonstrator will handle the inversion processes, and generates reports, if required.

Source inversions runs

Two functions are provided which aid in calling the demonstrator. The core is the run_source_inversion() which runs all source inversions required by the configurations for a given event. It is limited to data given in Pyrocko internal data formats.

run_source_inversion_stream() provides additional options to load, e.g., streams of obspy formatted data.