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 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 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.
Content
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 |
|---|---|
|
|
|
|
|
Others implement new, more advanced sampling techniques:
InjectionSamplingPhase:Relying on the
siria.si.invert.SourceInjectorit 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.