Commit 7887698d authored by Sebastian Heimann's avatar Sebastian Heimann
Browse files

improve readme

parent 511c0533
# Grond
*What do you want to bust today?!*
A bootstrap-based probabilistic battering ram to explore solution spaces in
earthquake source parameter estimation problems.
## Installation
First, install [Pyrocko](http://pyrocko.org/current/install.html),
then install Grond:
```bash
git clone https://gitext.gfz-potsdam.de/heimann/grond.git
cd grond
sudo python setup.py install
```
## Usage
Grond can be run as a command line tool or by calling Grond's library functions
from a Python script. To get a brief description on available options of
Grond's command line tool, run `grond --help` or `grond <subcommand> --help`.
Once dataset and configuration are ready, the command `grond go <configfile>
<eventname>` starts the optimization algorithm for a selected event. During the
optimization, results are aggregated in a directory, referred to in the
configuration as `<rundir>`. To visualize the results run `grond plot
<plotnames> <rundir>`. The results can be exported in various way by running
the subcommand `grond export <what> <rundir>`.
## Example configuration file
......@@ -9,7 +36,7 @@
--- !grond.Config
# Path, where to store output (run-directories)
rundir_template: 'gruns/%(problem_name)s.run'
rundir_template: 'gruns/${problem_name}.run'
# -----------------------------------------------------------------------------
......@@ -19,20 +46,23 @@ rundir_template: 'gruns/%(problem_name)s.run'
dataset_config: !grond.DatasetConfig
# List of files with station coordinates
stations_stationxml_paths: [meta/gfz2015sfdd/responses.stationxml]
stations_stationxml_paths:
- 'events/${event_name}/responses.stationxml'
# File with hypocenter information and possibly reference solution
events_path: catalogs/gfz2015sfdd.txt
events_path: 'events/${event_name}/event.txt'
# List of directories with raw waveform data
waveform_paths: [data/gfz2015sfdd/raw]
waveform_paths:
- 'data/${event_name}/raw'
# List of files with instrument response information
responses_stationxml_paths: [meta/gfz2015sfdd/responses.stationxml]
responses_stationxml_paths:
- 'meta/${event_name}/responses.stationxml'
# List with station/channel codes to exclude
blacklist: [OTAV, RCBR, PTGA, AXAS2, SNAA, PAYG, RAR, SDV, VAL, XMAS, ODZ,
MSVF, SHEL, SUR, ROSA, 'IU.PTCN.00.T', 'C1.VA02..T', RPN]
Z51A, MSVF, SHEL, SUR, ROSA, 'IU.PTCN.00.T', 'C1.VA02..T', RPN]
# -----------------------------------------------------------------------------
......@@ -46,7 +76,8 @@ engine_config: !grond.EngineConfig
gf_stores_from_pyrocko_config: false
# List of directories with GF stores
gf_store_superdirs: ['gf_stores']
gf_store_superdirs:
- 'gf_stores'
# -----------------------------------------------------------------------------
......@@ -61,10 +92,10 @@ target_configs:
- !grond.TargetConfig
# Name of the super-group to which this contribution belongs
super_group: time_domain
super_group: 'time_domain'
# Name of the group to which this contribution belongs
group: rayleigh
group: 'rayleigh'
# Minimum distance of stations to be considered
distance_min: 1000e3
......@@ -73,7 +104,7 @@ target_configs:
distance_max: 10000e3
# List with names of channels to be considered
channels: [Z]
channels: ['Z']
# How to weight stations from this contribution in the global misfit
weight: 1.0
......@@ -82,49 +113,49 @@ target_configs:
inner_misfit_config: !grond.InnerMisfitConfig
# Frequency band [Hz] of acausal filter (flat part of frequency taper)
fmin: 0.001
fmax: 0.005
fmin: 0.002
fmax: 0.008
# Factor defining fall-off of frequency taper
# (zero at fmin/ffactor, fmax*ffactor)
ffactor: 1.5
# Time window to include in the data fitting. Times can be defined offset
# to given phase arrivals. E.g. 'begin-600' would mean 600 s before arrival
# to given phase arrivals. E.g. 'begin-100' would mean 100 s before arrival
# of the phase named 'begin', which must be defined in the travel time
# tables in the GF store.
tmin: 'begin-600'
tmax: 'end+600'
tmin: '{stored:begin}-100'
tmax: '{stored:end}+100'
# How to fit the data (available choices: 'time_domain',
# 'frequency_domain', 'absolute', 'envelope', 'cc_max_norm')
domain: time_domain
domain: 'time_domain'
# How to interpolate the Green's functions (available choices:
# 'nearest_neighbor', 'multilinear')
interpolation: nearest_neighbor
interpolation: 'nearest_neighbor'
# Name of GF store to use
store_id: global_20s_shallow
store_id: 'global_20s_shallow'
# A second contribution to the misfit function (for descriptions, see above)
- !grond.TargetConfig
super_group: time_domain
group: love
super_group: 'time_domain'
group: 'love'
distance_min: 1000e3
distance_max: 10000e3
channels: [T]
channels: ['T']
weight: 1.0
inner_misfit_config: !grond.InnerMisfitConfig
fmin: 0.001
fmax: 0.005
fmin: 0.002
fmax: 0.008
ffactor: 1.5
tmin: 'begin-600'
tmax: 'end+600'
domain: time_domain
interpolation: nearest_neighbor
store_id: global_20s_shallow
tmin: '{stored:begin}-100'
tmax: '{stored:end}+100'
domain: 'time_domain'
interpolation: 'nearest_neighbor'
store_id: 'global_20s_shallow'
# -----------------------------------------------------------------------------
......@@ -135,7 +166,7 @@ target_configs:
problem_config: !grond.CMTProblemConfig
# Name used when creating output directory
name_template: cmt_surface_wave_%(event_name)s
name_template: 'cmt_surface_wave_${event_name}'
# Definition of model parameter space to be searched in the optimization
ranges:
......@@ -170,7 +201,7 @@ problem_config: !grond.CMTProblemConfig
nbootstrap: 100
# Type of moment tensor to restrict to (choices: 'full', 'deviatoric')
mt_type: deviatoric
mt_type: 'deviatoric'
# Whether to apply automatic weighting to balance the effects of geometric
# spreading etc.
......@@ -184,9 +215,9 @@ problem_config: !grond.CMTProblemConfig
solver_config: !grond.SolverConfig
# Distribution used when drawing new candidate models (choices: 'normal',
# 'multivariate_normal'). Used in 'transition', 'explorative', and
# 'non_explorative' phase
sampler_distribution: normal
# 'multivariate_normal') (used in 'transition', 'explorative', and
# 'non_explorative' phase)
sampler_distribution: 'normal'
# Number of iterations to operate in 'uniform' mode
niter_uniform: 1000
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment