-
Notifications
You must be signed in to change notification settings - Fork 12
/
params_example.yaml
231 lines (204 loc) · 11.3 KB
/
params_example.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
#### Project wide parameters
# lowest level project directory
proj_dir : '/path/to/project/root/'
# Save the component combinations in separate hdf5 files
# This is faster for multi-core if True
# Set to False for compatibility with SeisMIC version < 0.5.0
save_comps_separately: True
# directory for logging information
log_subdir : 'log'
# levels:
# 'DEBUG', 'INFO', 'WARNING', 'ERROR', or 'CRITICAL'
log_level: 'WARNING'
# folder for figures
fig_subdir : 'figures'
#### parameters that are network specific
net:
# list of stations used in the project
# type: list of strings or string, wildcards allowed
network : 'D0'
station : ['BZG', 'ESO', 'KBG', 'KIR']
# For "component" only strings are allowed (no lists!)
component: 'Z' # Use * or ? or None to allow all components
#### parameters for correlation (emperical Green's function creation)
co:
# subdirectory of 'proj_dir' to store correlation
# type: string
subdir : 'corr'
# times sequences to read for cliping or muting on stream basis
# These should be long enough for the reference (e.g. the standard
# deviation) to be rather independent of the parts to remove
# type: string
read_start : '2015-08-1 00:00:01.0'
read_end : '2015-08-06 00:00:00.0'
# type: float [seconds]
# The longer the faster, but higher RAM usage.
# Note that this is also the length of the correlation batches
# that will be written (i.e., length that will be
# kept in memory before writing to disk)
# If you are unsure, keep defaults
read_len : 86398
read_inc : 86400
# New sampling rate in Hz. Note that it will try to decimate
# if possible (i.e., there is an integer factor from the
# native sampling_rate). Pay attention to Nyquist frequency for
# later steps
sampling_rate : 25
# Remove the instrument response, will take substantially more time
remove_response : False
# Method to combine different traces
# Options are: 'betweenStations', 'betweenComponents', 'autoComponents', 'allSimpleCombinations', or 'allCombinations'
combination_method : 'betweenStations'
# If you want only specific combinations to be computed enter them here
# In the form [Net0-Net1.Stat0-Stat1] or [Net0-Net1.Stat0-Stat1.Cha0-Cha1]
# This option will only be consider if combination_method == 'betweenStations'
# Comment or set == None if not in use
xcombinations : None
# preprocessing of the original length time series
# these function work on an obspy.Stream object given as first argument
# and return an obspy.Stream object.
# available preimplemented functions are in seismic.correlate.preprocessing_stream
preProcessing : [
# This is intended as a "technical" bandpass filter to remove unphysical signals, i.e., frequencies you would not expect in the data
{'function':'seismic.correlate.preprocessing_stream.stream_filter',
'args':{'ftype':'bandpass',
'filter_option':{'freqmin':0.01, #0.01
'freqmax':12}}}
# Mute data, when the amplitude is above a certain threshold
#{'function':'seismic.correlate.preprocessing_stream.stream_mute',
# 'args':{'taper_len':100,
# 'mute_method':'std_factor',
# 'mute_value':3}}
]
# subdivision of the read sequences for correlation
# if this is set the stream processing will happen on the hourly subdivision. This has the
# advantage that data that already exists will not need to be preprocessed again
# On the other hand, computing a whole new database might be slower
# Recommended to be set to True if:
# a) You update your database and a lot of the data is already available (up to a magnitude faster)
# b) corr_len is close to read_len
# Is automatically set to False if no existing correlations are found
preprocess_subdiv: True
# type: presence of this key
subdivision:
# type: float [seconds]
corr_inc : 3600
corr_len : 3600
# recombine these subdivisions
# unused at the time
# type: boolean
recombine_subdivision : True
# delete
# type: booblean
delete_subdivision : False
# parameters for correlation preprocessing
# Standard functions reside in seismic.correlate.preprocessing_td and preprocessing_fd, respectively
corr_args : {'TDpreProcessing':[
{'function':'seismic.correlate.preprocessing_td.taper',
'args':{'type':'cosine_taper', 'p': 0.02}},
{'function':'seismic.correlate.preprocessing_td.detrend',
'args':{'type':'linear'}},
{'function':'seismic.correlate.preprocessing_td.TDfilter',
'args':{'type':'bandpass','freqmin':2,'freqmax':8}},
#{'function':'seismic.correlate.preprocessing_td.mute',
# 'args':{'taper_len':100.,
# 'threshold':1000, absolute threshold
# 'std_factor':3,
# 'filter':{'type':'bandpass','freqmin':2,'freqmax':4},
# 'extend_gaps':True}},
{'function':'seismic.correlate.preprocessing_td.clip',
'args':{'std_factor':2.5}},
{'function':'seismic.correlate.preprocessing_td.signBitNormalization',
'args': {}}
],
# Standard functions reside in seismic.correlate.preprocessing_fd
'FDpreProcessing':[
{'function':'seismic.correlate.preprocessing_fd.spectralWhitening',
'args':{'joint_norm':False}},
{'function':'seismic.correlate.preprocessing_fd.FDfilter',
'args':{'flimit':[0.01,0.02,9,10]}}
# {'function':seismic.correlate.preprocessing_fd.FDsignBitNormalization,
# 'args':{}}
],
'lengthToSave':100,
'center_correlation':True, # make sure zero correlation time is in the center
'normalize_correlation':True,
'combinations':[]
}
#### parameters for the estimation of time differences
dv:
# subfolder for storage of time difference results
subdir : 'vel_change'
# Plotting
plot_vel_change : True
### Definition of calender time windows for the time difference measurements
start_date : '2015-05-01 00:00:00.0' # %Y-%m-%dT%H:%M:%S.%fZ'
end_date : '2016-01-01 00:00:00.0'
win_len : 86400 # length of window in which EGFs are stacked
date_inc : 86400 # increment of measurements
### Frequencies
freq_min : 4
freq_max : 8
### Definition of lapse time window, i.e. time window in the coda that is used for the dv/v estimate
tw_start : 20 # lapse time of first sample [s]
tw_len : 60 # length of window [s] Can be None if the whole (rest) of the coda should be used
sides : 'both' # options are left (for acausal), right (causal), both, or single (for active source experiments where the first sample is the trigger time)
compute_tt : True # Computes the travel time and adds it to tw_start (tt is 0 if not xstations). If true a rayleigh wave velocity has to be provided
rayleigh_wave_velocity : 1 # rayleigh wave velocity in km/s, will be ignored if compute_tt=False
### Range to try stretching
# maximum stretch factor
stretch_range : 0.03
# number of stretching increments
stretch_steps : 1001
# Return the similarity matrix for each dv/v estimate
# required for post processing. If False, saves some RAM and disk space
return_sim_mat : True
#### Reference trace extraction
# win_inc : Length in days of each reference time window to be used for trace extraction
# If == 0, only one trace will be extracted
# If > 0, mutliple reference traces will be used for the dv calculation
# Can also be a list if the length of the windows should vary
# See seismic.correlate.stream.CorrBulk.extract_multi_trace for details on arguments
dt_ref : {'win_inc' : 0, 'method': 'mean', 'percentile': 50}
# preprocessing on the correlation bulk or corr_stream before stretch estimation
preprocessing: [
#{'function': 'pop_at_utcs', 'args': {'utcs': np.array([UTCDateTime()])}, # Used to remove correlations from certain times
#{'function': 'select_time', 'args': {'start': (0, 0, 0), 'end': (23, 0, 0), exclude=False}, # include only certain time of day (h, minute, second)
{'function': 'smooth', 'args': {'wsize': 48, 'wtype': 'hanning', 'axis': 1}}
]
# postprocessing of dv objects before saving and plotting
postprocessing: [
{'function': 'smooth_sim_mat', 'args': {'win_len': 7, exclude_corr_below: 0}}
]
#### parameters to compute the waveform coherence
wfc:
# subfolder for storage of time difference results
subdir : 'wfc'
### Definition of calender time windows for the time difference measurements
start_date : '2015-05-01 00:00:00.0' # %Y-%m-%dT%H:%M:%S.%fZ'
end_date : '2016-01-01 00:00:00.0'
win_len : 86400 # length of window in which EGFs are stacked
date_inc : 86400 # increment of measurements
### Frequencies
# can be lists of same length
freq_min : [0.0625, 0.09, 0.125, 0.25, 0.375, 0.5, 0.75, 1, 1.5, 2, 3, 4, 5]
freq_max : [0.125, 0.18, 0.25, 0.5, 0.75, 1, 1.5, 2, 3, 4, 6, 8, 10]
### Definition of lapse time window
# can be lists of same length or tw_start: List and tw_len: single value (will be applied to all)
tw_start : [0, 1.25, 2.5, 3.75, 5, 6.25, 7.5, 8.75, 10, 11.25, 12.5, 13.75, 15, 16.25, 17.5, 17.75, 20] # lapse time of first sample [s]
tw_len : 5 # length of window [s]
#### Reference trace extraction
# win_inc : Length in days of each reference time window to be used for trace extraction
# If == 0, only one trace will be extracted
# If > 0, mutliple reference traces will be used for the dv calculation
# Can also be a list if the length of the windows should vary
# See seismic.correlate.stream.CorrBulk.extract_multi_trace for details on arguments
dt_ref : {'win_inc' : 0, 'method': 'mean', 'percentile': 50}
# preprocessing on the correlation bulk before stretch estimation
preprocessing: [
#{'function': 'select_time', 'args': {'start': (0, 0, 0), 'end': (23, 0, 0), exclude=False}, # include only certain time of day (h, minute, second)
{'function': 'smooth', 'args': {'wsize': 4, 'wtype': 'hanning', 'axis': 1}}
]
### SAVING
# save components separately or only their average?
save_comps: False