Browse Source

docs: polish configuration

whitelist
miili 2 years ago
parent
commit
ac8e9688df
2 changed files with 130 additions and 128 deletions
  1. +82
    -79
      docs/source/config/problems/index.rst
  2. +48
    -49
      docs/source/config/targets/index.rst

+ 82
- 79
docs/source/config/problems/index.rst View File

@ -21,6 +21,25 @@ To define and configure a problem the part called ``problem_config`` in the conf
General configuration
---------------------
.. code-block :: yaml
:caption: Generic example ``ProblemConfig``
problem_config: !grond.RectangularProblemConfig
name_template: '${event_name}'
norm_exponent: 0
decimation_factor: 4
ranges:
north_shift: '-2000 .. 20000'
east_shift: '-2000 .. 20000'
depth: '5000 .. 30000'
length: '12000 .. 18000'
width: '4000 .. 14000'
slip: '0.2 .. 2.'
strike: '80 .. 330'
dip: '0 .. 60'
rake: '60 .. 90'
The following problem parameters are shared by all problems and are part of all
problem configurations:
@ -37,25 +56,32 @@ problem configurations:
An example for the configuration of a rectangular fault problem is given here:
``CMTProblem`` configuration
----------------------------
.. code-block :: yaml
:caption: Example ``CMTProblemConfig``
problem_config: !grond.RectangularProblemConfig
name_template: '${event_name}'
norm_exponent: 0
decimation_factor: 4
problem_config: !grond.CMTProblemConfig
name_template: '${event_name}_regional_mt'
norm_exponent: 1
distance_min: 0
mt_type: 'deviatoric'
ranges:
north_shift: '-2000 .. 20000'
east_shift: '-2000 .. 20000'
depth: '5000 .. 30000'
length: '12000 .. 18000'
width: '4000 .. 14000'
slip: '0.2 .. 2.'
strike: '80 .. 330'
dip: '0 .. 60'
rake: '60 .. 90'
time: '-10 .. 10 | add'
north_shift: '-40e3 .. 40e3'
east_shift: '-40e3 .. 40e3'
depth: '4e3 .. 50e3'
magnitude: '4.0 .. 7.0'
rmnn: '-1.41421 .. 1.41421'
rmee: '-1.41421 .. 1.41421'
rmdd: '-1.41421 .. 1.41421'
rmne: '-1 .. 1'
rmnd: '-1 .. 1'
rmed: '-1 .. 1'
duration: '0. .. 0.'
``CMTProblem`` configuration
----------------------------
The Grond CMTProblem represents one of most popular problems in seismology.
Sought-after are moment tensor source models that well fit the observed seismic waveforms. The
@ -111,10 +137,14 @@ particularly for the ``CMTProblem``.
``duration``
is the duration of the source time function in seconds.
**Example configuration**:
``DoubleDCProblem`` configuration
---------------------------------
.. code-block :: yaml
:caption: Example ``DoubleDCProblemConfig``
problem_config: !grond.CMTProblemConfig
name_template: '${event_name}_regional_mt'
@ -127,17 +157,19 @@ particularly for the ``CMTProblem``.
east_shift: '-40e3 .. 40e3'
depth: '4e3 .. 50e3'
magnitude: '4.0 .. 7.0'
rmnn: '-1.41421 .. 1.41421'
rmee: '-1.41421 .. 1.41421'
rmdd: '-1.41421 .. 1.41421'
rmne: '-1 .. 1'
rmnd: '-1 .. 1'
rmed: '-1 .. 1'
duration: '0. .. 0.'
``DoubleDCProblem`` configuration
---------------------------------
strike1: '30. .. 180.'
dip1: '30. .. 90.'
rake1: '20. .. 150.'
strike2: '30. .. 180.'
dip2: '30. .. 90.'
rake2: '20. .. 150.'
delta_time: '5. .. 10.'
delta_depth: '0. .. 10000.'
azimuth: '0. .. 360.'
distance: '10000. .. 40000.'
mix: '0.2 .. 0.8'
duration1: '5. .. 10.'
duration2: '5. .. 10.'
This problem has two double-couple point sources (derived from ``DoubleDCSource``). They are dependent in location and relative timing to avoid overlapping in either space or time. The mechanisms, the durations and the moments of the two sources are independent. Using this model more complex earthquakes with two prominent rupture phases or with a change of mechanism along the rupture plane can be studied. Or simply the potential of a major source
complexity of an earthquake can be tested.
@ -196,39 +228,32 @@ particularly for the ``DoubleDCProblem``.
``duration1`` & ``duration2``
are the durations of the first and second source's source time functions, respectively, in seconds.
**Example configuration**:
.. code-block :: yaml
problem_config: !grond.DoubleDCProblemConfig
name_template: '${event_name}_regional_mt'
norm_exponent: 1
distance_min: 0
mt_type: 'deviatoric'
ranges:
time: '-10 .. 10 | add'
north_shift: '-40e3 .. 40e3'
east_shift: '-40e3 .. 40e3'
depth: '4e3 .. 50e3'
magnitude: '4.0 .. 7.0'
strike1: '30. .. 180.'
dip1: '30. .. 90.'
rake1: '20. .. 150.'
strike2: '30. .. 180.'
dip2: '30. .. 90.'
rake2: '20. .. 150.'
delta_time: '5. .. 10.'
delta_depth: '0. .. 10000.'
azimuth: '0. .. 360.'
distance: '10000. .. 40000.'
mix: '0.2 .. 0.8'
duration1: '5. .. 10.'
duration2: '5. .. 10.'
``RectangularProblem`` configuration
------------------------------------
.. code-block :: yaml
:caption: Example ``RectangularProblemConfig``
problem_config: !grond.RectangularProblemConfig
name_template: '${event_name}_joint'
norm_exponent: 1
decimation_factor: 4
ranges:
north_shift: '-2000 .. 20000'
east_shift: '-2000 .. 20000'
depth: '5000 .. 30000'
length: '12000 .. 18000'
width: '4000 .. 14000'
slip: '0.2 .. 2.'
strike: '80 .. 330'
dip: '0 .. 60'
rake: '60 .. 90'
time: '-15. .. 10. | add'
nucleation_x: '-1. .. 1.'
nucleation_y: '-1. .. 1.'
The rectangular source is a simple finite source model with a rectangular shape and uniform moment or slip across the rupture plane. It resembles the source model defined by `Haskell (1964)`_, but has a nucleation point from which spreads a circular rupture. The position of the nucleation point on the rupture plane can be part of the problem. Uniform and bilateral ruptures are therefore possible. With the ``RectangularProblem`` also directivity effects in the observations of large earthquake may be predicted.
The static rectangular source is very similar to the analytical rectangular dislocation source as described by `Okada (1985)`_, which is embedded in an isotropic elastic half-space. The ``RectangularProblem`` is therefore well suited to predict near-field static surface displacements observed at GNSS stations or with InSAR. For a joint optimisation of seismic waveforms and near-field static surface displacements a ``RectangularProblem`` is the appropriate choice.
@ -283,28 +308,6 @@ For the source parameter configuration, please note that the last three paramete
``nucleation_y``
relative along-dip position of the rupture nucleation point on the fault to the centre location. This parameter may range from -1 to 1. With 0 being in the centre, -1 being at the top fault edge, 1 at the bottom fault edge, and 0.5 is half-way between centroid and bottom fault edge.
**Example configuration**:
.. code-block :: yaml
problem_config: !grond.RectangularProblemConfig
name_template: '${event_name}_joint'
norm_exponent: 1
decimation_factor: 4
ranges:
north_shift: '-2000 .. 20000'
east_shift: '-2000 .. 20000'
depth: '5000 .. 30000'
length: '12000 .. 18000'
width: '4000 .. 14000'
slip: '0.2 .. 2.'
strike: '80 .. 330'
dip: '0 .. 60'
rake: '60 .. 90'
time: '-15. .. 10. | add'
nucleation_x: '-1. .. 1.'
nucleation_y: '-1. .. 1.'
.. _misfit calculation in Grond: ../method/index.html#Misfit calculation
.. _Pyrocko Sources: _https://pyrocko.org/docs/current/library/reference/gf.html#module-pyrocko.gf.seismosizer


+ 48
- 49
docs/source/config/targets/index.rst View File

@ -44,6 +44,30 @@ Parameters valid for all types of ``MisfitTargets`` are:
Waveform targets
----------------
.. code-block :: yaml
:caption: Example ``WaveformTarget`` configuration
- !grond.WaveformTargetGroup
normalisation_family: time_domain
path: all
weight: 1.0
distance_min: 10000.0
distance_max: 1000000.0
channels: [Z, R, T]
misfit_config: !grond.WaveformMisfitConfig
fmin: 0.01
fmax: 0.1
ffactor: 1.5
tmin: vel_surface:5.5
tmax: vel_surface:3.0
domain: time_domain
norm_exponent: 2
tautoshift_max: 0.0
autoshift_penalty_max: 0.0
interpolation: multilinear
store_id: crust2_ib
.. glossary ::
**Tapering**
@ -88,33 +112,26 @@ Waveform targets
Example :class:`~grond.targets.waveform.WaveformTargetGroup` configuration section:
Satellite targets
-----------------
.. code-block :: yaml
:caption: Example ``SatelliteTarget`` configuration
- !grond.WaveformTargetGroup
enabled: true
normalisation_family: time_domain
- !grond.SatelliteTargetGroup
normalisation_family: insar_target
path: all
weight: 1.0
distance_min: 10000.0
distance_max: 1000000.0
channels: [Z, R, T]
misfit_config: !grond.WaveformMisfitConfig
fmin: 0.01
fmax: 0.1
ffactor: 1.5
tmin: vel_surface:5.5
tmax: vel_surface:3.0
domain: time_domain
norm_exponent: 2
tautoshift_max: 0.0
autoshift_penalty_max: 0.0
kite_scenes: ['*all']
misfit_config: !grond.SatelliteMisfitConfig
optimise_orbital_ramp: true
ranges:
offset: -0.5 .. 0.5
ramp_east: -1e-4 .. 1e-4
ramp_north: -1e-4 .. 1e-4
interpolation: multilinear
store_id: crust2_ib
Satellite targets
-----------------
store_id: crust2_ib_static
Observations of spatial surface displacements as derived from unwrapped InSAR data. These data must be hold in a special container format and prepared using the `kite <https://pyrocko.org/#kite>`_ software package.
@ -138,40 +155,14 @@ Please see `kite's documentation <https://pyrocko.org/docs/kite/current/>`_ for
Example :class:`~grond.targets.satellite.SatelliteTargetGroup` configuration section:
.. code-block :: yaml
- !grond.SatelliteTargetGroup
enabled: true
normalisation_family: insar_target
path: all
weight: 1.0
kite_scenes: ['*all']
misfit_config: !grond.SatelliteMisfitConfig
optimise_orbital_ramp: true
ranges:
offset: -0.5 .. 0.5
ramp_east: -1e-4 .. 1e-4
ramp_north: -1e-4 .. 1e-4
interpolation: multilinear
store_id: crust2_ib_static
GNSS campaign targets
---------------------
True 3D surface displacement as measured by GNSS stations can be included in the inversion process by defining a :class:`~grond.targets.gnss_campaign.GNSSCampaignTargetGroup`. The station's displacement data has to be stored according to :mod:`~pyrocko.model.gnss_campaign`. Please refer to Pyrocko's documentation of the GNSS model (`See example <https://pyrocko.org/docs/current/library/examples/gnss_data.html>`_)
.. glossary ::
``gnss_campaigns``
The campaigns are identified by their ``campaign_name``. Campaigns can be explicitly selected, or the wildcard ``*all`` can be used.
Example :class:`~grond.targets.gnss_campaign.GNSSCampaignTargetGroup` configuration section:
.. code-block :: yaml
:caption: Example ``GNSSTarget`` configuration
- !grond.GNSSCampaignTargetGroup
enabled: true
normalisation_family: gnss_target
path: all
weight: 1.0
@ -180,6 +171,14 @@ Example :class:`~grond.targets.gnss_campaign.GNSSCampaignTargetGroup` configurat
interpolation: multilinear
store_id: crust2_ib_static
True 3D surface displacement as measured by GNSS stations can be included in the inversion process by defining a :class:`~grond.targets.gnss_campaign.GNSSCampaignTargetGroup`. The station's displacement data has to be stored according to :mod:`~pyrocko.model.gnss_campaign`. Please refer to Pyrocko's documentation of the GNSS model (`See example <https://pyrocko.org/docs/current/library/examples/gnss_data.html>`_)
.. glossary ::
``gnss_campaigns``
The campaigns are identified by their ``campaign_name``. Campaigns can be explicitly selected, or the wildcard ``*all`` can be used.
Example :class:`~grond.targets.gnss_campaign.GNSSCampaignTargetGroup` configuration section:
.. _CosTaper: https://pyrocko.org/docs/current/library/reference/trace.html#module-pyrocko.trace

Loading…
Cancel
Save