Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Sebastian Heimann
grond
Commits
a06f0c50
Commit
a06f0c50
authored
Mar 16, 2018
by
Sebastian Heimann
Browse files
updated readme
parent
ade8e28f
Changes
1
Hide whitespace changes
Inline
Side-by-side
README.md
View file @
a06f0c50
...
...
@@ -19,7 +19,7 @@ sudo python setup.py install
## Updating an existing installation
```
bash
cd
grond
# change to the directory where you cloned grond
to
initially
cd
grond
# change to the directory
to
where you cloned grond initially
git pull origin master
sudo
python setup.py
install
```
...
...
@@ -30,16 +30,17 @@ sudo python setup.py install
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. Before running the optimization, to debug problems with the
dataset and configuration, use
`grond check <configfile> <eventname>`
. To get
a list of event names available in a configured setup, run
`grond events <configfile>`
.
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>`
.
Once dataset and configuration are ready, the command
`grond go <configfile>
<eventname>`
starts the optimization algorithm for a selected event. Before
running the optimization, to debug problems with the dataset and configuration,
use
`grond check <configfile> <eventname>`
. To get a list of event names
available in a configured setup, run
`grond events <configfile>`
. 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 ways by running
the subcommand
`grond export <what> <rundir>`
. Finally, you may run
`grond
report <rundir>`
to aggregate results to a browsable summary, (by default)
under the directory
`reports`
.
## Example configuration file
...
...
@@ -51,7 +52,6 @@ by running the subcommand `grond export <what> <rundir>`.
# Path, where to store output (run-directories)
rundir_template
:
'
gruns/${problem_name}.run'
# -----------------------------------------------------------------------------
# Configuration section for dataset (input data)
# -----------------------------------------------------------------------------
...
...
@@ -60,22 +60,31 @@ dataset_config: !grond.DatasetConfig
# List of files with station coordinates
stations_stationxml_paths
:
-
'
events/${event_name}/responses.stationxml'
-
'
events/${event_name}/responses-geofon.stationxml'
-
'
events/${event_name}/responses-iris.stationxml'
# File with hypocenter information and possibly reference solution
events_path
:
'
events/${event_name}/event.txt'
events_path
:
'
events/${event_name}/
prepared/
event.txt'
# List of directories with raw waveform data
waveform_paths
:
-
'
data
/${event_name}/raw'
-
'
events
/${event_name}/raw'
# List of files with instrument response information
responses_stationxml_paths
:
-
'
meta/${event_name}/responses.stationxml'
-
'
events/${event_name}/responses-geofon.stationxml'
-
'
events/${event_name}/responses-iris.stationxml'
# List with station/channel codes to exclude
blacklist
:
[
OTAV
,
RCBR
,
PTGA
,
AXAS2
,
SNAA
,
PAYG
,
RAR
,
SDV
,
VAL
,
XMAS
,
ODZ
,
Z51A
,
MSVF
,
SHEL
,
SUR
,
ROSA
,
'
IU.PTCN.00.T'
,
'
C1.VA02..T'
,
RPN
]
#blacklist: ['STA','NET.STA', 'NET.STA.LOC', 'NET.STA.LOC.CHA']
# Same but using a file, one exclusion entry per line
blacklist_paths
:
-
'
events/${event_name}/blacklist.txt'
# Make available picks for forced trace alignment, file must be in Pyrocko's
# marker file format
#picks_paths: ['events/${event_name}/picks.markers']
# -----------------------------------------------------------------------------
...
...
@@ -100,21 +109,21 @@ engine_config: !grond.EngineConfig
# represented by a !grond.TargetConfig section.
# -----------------------------------------------------------------------------
target_
config
s
:
target_
group
s
:
-
!grond.
TargetConfig
-
!grond.
WaveformTargetGroup
#
Name of the super-group to which this contribution belongs
super_group
:
'
time_domain
'
#
misfits are normalized within each normalization_family separately
normalization_family
:
'
td
'
# Name of the group to which this contribution belongs
group
:
'
rayleigh'
path
:
'
td.
rayleigh'
# Minimum distance of stations to be considered
distance_min
:
100
0e3
distance_min
:
0e3
# Maximum distance of stations to be considered
distance_max
:
1000
0
e3
distance_max
:
1000e3
# List with names of channels to be considered
channels
:
[
'
Z'
]
...
...
@@ -123,52 +132,75 @@ target_configs:
weight
:
1.0
# Subsection on how to fit the traces
inner_
misfit_config
:
!grond.
Inner
MisfitConfig
misfit_config
:
!grond.
Waveform
MisfitConfig
# Frequency band [Hz] of acausal filter (flat part of frequency taper)
fmin
:
0.0
02
fmax
:
0.0
08
fmin
:
0.0
1
fmax
:
0.0
5
# 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-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
:
'
{stored:begin}-100'
tmax
:
'
{stored:end}+100'
# to given phase arrivals. E.g. '{stored: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
:
'
{stored:anyP_no_Pdiff}'
tmax
:
'
{vel_surface:2.5}'
# Align traces by picks (will lose some control on origin time and
# location). Define the synthetic phasename, for which a travel time table
# must be available in the GF store,
#pick_synthetic_traveltime: 'anyP_no_Pdiff'
# and the name of the picks to use in the picks file (defined in
# dataset_config)
#pick_phasename: 'P'
# How to fit the data (available choices: 'time_domain',
# 'frequency_domain', 'absolute', 'envelope', 'cc_max_norm')
domain
:
'
time_domain'
# allow for some time-shifting of individual traces, maximum shift [s]
tautoshift_max
:
4.0
# whether to penalise time-shifting (0.0 for no penalty)
autoshift_penalty_max
:
0.0
# exponent of the norm used when comparing traces, 1 or 2
norm_exponent
:
1
# How to interpolate the Green's functions (available choices:
# 'nearest_neighbor', 'multilinear')
# 'nearest_neighbor', 'multilinear'). Note that the GFs have to be densely
# sampled when using interpolation other than nearest_neighbor.
interpolation
:
'
nearest_neighbor'
# Name of GF store to use
store_id
:
'
global_2
0s_shallow
'
store_id
:
'
global_2
s
'
# A second contribution to the misfit function (for descriptions, see above)
-
!grond.
TargetConfig
super_group
:
'
time_domain
'
group
:
'
love'
distance_min
:
100
0e3
distance_max
:
1000
0
e3
channels
:
[
'
T'
]
-
!grond.
WaveformTargetGroup
normalisation_family
:
'
td
'
path
:
'
td.
love'
distance_min
:
0e3
distance_max
:
1000e3
channels
:
[
T
]
weight
:
1.0
inner_misfit_config
:
!grond.InnerMisfitConfig
fmin
:
0.002
fmax
:
0.008
#limit: 20
misfit_config
:
!grond.WaveformMisfitConfig
fmin
:
0.01
fmax
:
0.05
ffactor
:
1.5
tmin
:
'
{stored:begin}-100'
tmax
:
'
{stored:end}+100'
domain
:
'
time_domain'
interpolation
:
'
nearest_neighbor'
store_id
:
'
global_20s_shallow'
tmin
:
'
stored:anyP_no_Pdiff'
tmax
:
'
vel_surface:2.5'
domain
:
time_domain
tautoshift_max
:
4.0
autoshift_penalty_max
:
0.0
norm_exponent
:
1
interpolation
:
nearest_neighbor
store_id
:
'
global_2s'
# -----------------------------------------------------------------------------
...
...
@@ -179,20 +211,20 @@ target_configs:
problem_config
:
!grond.CMTProblemConfig
# Name used when creating output directory
name_template
:
'
cmt_surface_wave
_${event_name}'
name_template
:
'
timedomain
_${event_name}'
# Definition of model parameter space to be searched in the optimization
ranges
:
# Time relative to hypocenter origin time [s]
time
:
'
-10
0
..
10
0
|
add'
time
:
'
-10
..
10
|
add'
# Centroid location with respect to hypocenter origin [m]
north_shift
:
'
-
20
0e3
..
20
0e3'
east_shift
:
'
-
20
0e3
..
20
0e3'
north_shift
:
'
-
4
0e3
..
4
0e3'
east_shift
:
'
-
4
0e3
..
4
0e3'
depth
:
'
0
..
50e3'
# Range of magnitudes to allow
magnitude
:
'
7
.0
..
9
.0'
magnitude
:
'
4
.0
..
7
.0'
# Relative moment tensor component ranges (don't touch)
rmnn
:
'
-1.41421
..
1.41421'
...
...
@@ -203,16 +235,12 @@ problem_config: !grond.CMTProblemConfig
rmed
:
'
-1
..
1'
# Source duration range [s]
duration
:
'
3
0.
..
12
0.'
duration
:
'
0.
..
0.'
# Clearance distance around stations (no models with origin closer than this
# distance to any station are produced by the sampler)
distance_min
:
0.
# Number of bootstrap realizations to be tracked simultaneously in the
# optimization
nbootstrap
:
100
# Type of moment tensor to restrict to (choices: 'full', 'deviatoric')
mt_type
:
'
deviatoric'
...
...
@@ -220,38 +248,44 @@ problem_config: !grond.CMTProblemConfig
# spreading etc.
apply_balancing_weights
:
true
# Under what norm to combine targets into the global misfit
# (exponent of norm, 1 or 2)
norm_exponent
:
1
nbootstrap
:
100
# -----------------------------------------------------------------------------
# Configuration of the optimization procedure
# -----------------------------------------------------------------------------
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'
# This configuration will run the BABO (Bayesian Bootstrap) optimization
optimizer_config
:
!grond.HighScoreOptimizerConfig
# Number of bootstrap realizations to be tracked simultaneously in the
# optimization
nbootstrap
:
100
sampler_phases
:
# Number of iterations to operate in 'uniform' mode
niter_uniform
:
1000
-
!grond.UniformSamplerPhase
# Number of iterations to operate in '
transition' mod
e
niter
_transi
tion
:
2
000
# Number of iterations to operate in '
uniform' phas
e
niter
a
tion
s
:
1
000
# Number of iterations to operate in 'explorative' mode
niter_explorative
:
2000
-
!grond.DirectedSamplerPhase
# Number of iterations to operate in '
non_explorative' mod
e
niter
_non_explorative
:
0
# Number of iterations to operate in '
directed' phas
e
niter
ations
:
1000
0
# Multiplicator for width of sampler distribution in 'explorative' and
# 'non-explorative' phases
scatter_scale
:
0.25
# Multiplicator for width of sampler distribution at end of this phase
scatter_scale_begin
:
2.0
# Multiplicator for width of sampler distribution at start of 'transition'
# phase. (From there, it exponentially decreases to the value defined in
# 'scatter_scale' during the 'transition' phase).
scatter_scale_transition
:
2.
# Multiplicator for width of sampler distribution at end of this phase
scatter_scale_end
:
0.5
# -----------------------------------------------------------------------------
...
...
@@ -263,5 +297,5 @@ analyser_config: !grond.AnalyserConfig
# Number of iterations (number of models to forward model in the analysis,
# larger number -> better statistics)
niter
:
1000
niter
ations
:
1000
```
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment