autothor¶
Automated seismic event location by waveform coherence analysis.
Description¶
autothor is the automatic locator process which works by examining fixed time windows continuously.
Offline Testing¶
In order to test particular datasets, autothor can be run in offline mode which does not require a messaging connection and even the database connection is optional.
A requirement for fetching the correct metadata of the stations is to provide a
reference time (thor.inventoryReferenceTime) of the dataset. This
reference time is being used to read the station configuration at that date
from the inventory. This can be done either via configuration file or on the
command line:
$ autothor --thor.inventoryReferenceTime=2024-09-25
To output the results to an XML file which will contain all picks and origins,
add the --ep command line option:
$ autothor --thor.inventoryReferenceTime=2024-09-25 --ep > ep.xml
Instead of running against a database, provide all inventory and binding information via XML files:
$ autothor --thor.inventoryReferenceTime=2024-09-25 --ep --inventory-db inv.xml --config-db cfg.xml > ep.xml
Data pushed into autothor is recommended to be sorted by end time. See scmssort or scart to support you with that operation.
Example configuration file¶
thor {
# The list of stations to be considered.
stations = AB.1234, AB.5678
# The regions of the grid.
region = 10x10+10.1234-20.5678
# The depth range of the grid.
depths = 0:5
# The grid nodes
grid = 1000x1000x10
# The initial search grid
search = 100x100x2
# The filter to be applied before the characteristic function
# is being formed.
filter = "RMHP(0.1)>>DIFF"
# The common sample rate of all channels. Channels not matching this
# sample rate will be re-sampled.
sampleRate = 100
# The minimum overall correlation to accept an origin as solution.
minimumCorrelation = 0.3
# The signal length in seconds.
signal = 4
# The overlap ration of two subsequent processing windows.
overlap = 0.5
# Dump the grids as .png images.
dump = true
# The travel time table setup.
ttt {
interface = LOCSAT
model = iasp91
}
stacking {
default {
staP = 0.05
ltaP = 0.1
staS = 0.1
ltaS = 0.2
# The minimum STALTA ratio. If below, the characteristic function
# will be scaled down.
minimumSTALTA = 5
}
}
}
Example call¶
$ autothor --thor.inventoryReferenceTime=2024-09-25 --ep -I data.sorted.mseed --inventory-db inv.xml --config-db cfg.xml > ep.xml
Module Configuration¶
etc/defaults/global.cfgetc/defaults/autothor.cfgetc/global.cfgetc/autothor.cfg~/.seiscomp/global.cfg~/.seiscomp/autothor.cfgautothor inherits global options.
Note
Modules/plugins may require a license file. The default path to license
files is @DATADIR@/licenses/ which can be overridden by global
configuration of the parameter gempa.licensePath. Example:
gempa.licensePath = @CONFIGDIR@/licenses
- thor.region¶
Type: string
The processing region which is interpolated in the grid. The format is [lon_width_in_km]x[lat_width_in_km]+/-[lon_in_degrees]+/-[lat_in_degrees].
- thor.rotation¶
Default:
0Unit: deg
Type: double
The counter clockwise rotation angle of the region around the min_lat/min_lon coordinate.
- thor.depths¶
Unit: km:km
Type: string
The depth range to search. The format is [min_depth_in_km]:[max_depth_in_km].
- thor.grid¶
Default:
100x100x10Type: string
The processing grid in [nodes_x]x[nodes_y]x[nodes_z]. The grid does not include the corresponding maximum values of each dimension. The actual cell size in one dimension is length / nodes.
- thor.search¶
Default:
10x10x2Type: string
The initial search grid. This grid is a coarser grid than the final grid. It is used to speed up computation by not evaluation the full space. After finding the maximum in this inital search grid, the cell and its direct neighbors are evaluated with the final grid cellspacing.
- thor.stations¶
Type: list:string
A list of stations to be used. The location code and channel code is read from the bindings detecLocid and detecStream. If the stations list is empty, then bindings are evaluated and all stations are being used which are enabled for thor.
- thor.inventoryReferenceTime¶
Type: time
The metadata reference time for fetching station configurations from inventory.
- thor.filter¶
Default:
RMHP(1)>>DIFFType: string
A processing filter which is applied to each channel before stacking takes place.
- thor.filter2¶
Type: string
A secondary processing filter which is applied to each channel before stacking takes place. This secondary filter will be applied to the horizontal components if provided. Otherwise the primary filter will be used.
- thor.cloneHorizontalsFromVertical¶
Default:
falseType: boolean
If a single component station should be used, then this parameter decided whether the single vertical component will be cloned to the missing two horizontal components (true) or if the application will be terminated due to missing metadata (false).
- thor.sampleRate¶
Default:
100Unit: sps
Type: double
The common sample rate to be used. Data which is not sampled with another rate will be resampled to match this value.
- thor.signal¶
Default:
5Unit: s
Type: double
The length of the signal window.
- thor.maxWindow¶
Default:
0Unit: s
Type: double
The effective data window is computed as signal plus maximum expected time shift. In order to limit this effective data window this value can be used. If larger than zero, then it will be taken as the maximum length of the data window. For samples which are required during stacking but are not available in the data window, zeros will be used. Note that it can’t be less than signal.
- thor.overlap¶
Default:
0.5Type: double
The overlap of the signal window when forwarding to another time window. The effective stepping length is signal * (1-overlap).
- thor.dump¶
Default:
falseType: boolean
Dump each solution as graphical PNG image and Surfer grid files in local directory. The files are named are controlled by "thor.useOriginID".
- thor.useOriginID¶
Default:
falseType: boolean
Use the public ID of the related origin for creating the names of the dumped solution files.
True: "grid_[publicID].[png|grd]"
Default: "grid_[step].[png|grd]"
- thor.minimumCorrelation¶
Default:
0.25Type: double
The minimum correlation value to accept a solution. This value should be between 0 and 1.
- thor.minimumStations¶
Default:
0Type: integer
The minimum number of stations which must contribute to a solution.
- thor.stacking¶
Default:
defaultType: string
The stacking processor to be applied. If no additional plugin has been loaded, then only the "default" processor is available.
- thor.cacheDirectory¶
Default:
@CONFIGDIR@/cache/thorType: directory
The directory where the travel time grids of the stations are saved.
- thor.pickFromComponent¶
Default:
falseType: boolean
Whether to set the pick time from the maximum index of the stack function (false) or from the maximum of each contributing component (true).
- thor.removeZeroWeightArrivals¶
Default:
falseType: boolean
Remove arrivals having a weight of 0.
- thor.pickUncertainty¶
Default:
falseType: boolean
Whether to set the pick time uncertainty to the used time window or not.
Note
thor.ttt.* Configuration options for the travel time computation.
- thor.ttt.interface¶
Default:
LOCSATType: string
The travel time table interface used to compute travel times from each grid node to a station.
- thor.ttt.model¶
Default:
iasp91Type: string
The travel time table model used to compute travel times from each grid node to a station.
- thor.stacking.gpu.enable¶
Default:
falseType: boolean
Whether to run the stacking algorithm on GPU.
- thor.stacking.gpu.numWorkers¶
Default:
0Type: integer
The number of workers to use when computing the stacking grid. 0 means all available NVIDIA GPUs in the system. Falls back to CPU processing if set to 0 and no compatible GPUs are found.
- thor.stacking.gpu.precision¶
Default:
doubleType: string
Values:
single,doubleWhether to use single or double precision arithmetic in GPU processing.
Note
thor.stacking.default.* Configuration options for the default stacking algorithm.
- thor.stacking.default.staP¶
Default:
0Unit: s
Type: double
The length of the P short-term window in seconds for STALTA.
- thor.stacking.default.ltaP¶
Default:
0Unit: s
Type: double
The length of the P long-term window in seconds for STALTA.
- thor.stacking.default.staS¶
Default:
0Unit: s
Type: double
The length of the S short-term window in seconds for STALTA.
- thor.stacking.default.ltaS¶
Default:
0Unit: s
Type: double
The length of the S long-term window in seconds for STALTA.
- thor.stacking.default.minimumSTALTA¶
Default:
0Type: double
The minimum STALTA value for each phase.
- thor.stacking.default.scaleBySTALTA¶
Default:
trueType: boolean
Whether to scale traces by STALTA or discard them. If enabled, then each traces will be scaled down if its maximum STALTA value is below the minimum configured STALTA value. The scaling factor will be maxAmp / minimumSTALTA.
- thor.stacking.default.scaleByAmplitude¶
Default:
falseType: boolean
Whether to scale by the maximum amplitude of all components among the vertical or horizontal group. If enabled, then the maximum value of all vertical STALTA traces is used to scale each vertical STALTA function by maxSTALTA(trace) / globalMaxSTALTA. The same applies for the horizontal components. This will downweight traces in farther distances.
- thor.stacking.default.horizontalSTALTACorrection¶
Default:
trueType: boolean
If enabled, then the characteristic function formed by the horizontals will be corrected w.r.t to the characteristic function of the vertical component to suppress the strong P onsets on the horizontals and to bring out the characteristic function of the S phase.
- thor.stacking.default.threads¶
Default:
0Type: integer
The number of threads to use when computing the stacking grid. 0 means half the number of reported CPU cores. A value greater than 0 will use exactly this number of threads.
- thor.stacking.default.dump¶
Default:
falseType: boolean
Whether to dump the processed traces for each time step or not.
Bindings Parameters¶
- thorEnable¶
Default:
falseType: boolean
Enables/disables processing with THOR.
Command-Line Options¶
Generic¶
- -h, --help¶
Show help message.
- -V, --version¶
Show version information.
- --config-file file¶
The alternative module configuration file. When this option is used, the module configuration is only read from the given file and no other configuration stage is considered. Therefore, all configuration including the definition of plugins must be contained in that file or given along with other command-line options such as --plugins.
- --plugins arg¶
Load given plugins.
- -D, --daemon¶
Run as daemon. This means the application will fork itself and doesn’t need to be started with &.
- --auto-shutdown arg¶
Enable/disable self-shutdown because a master module shutdown. This only works when messaging is enabled and the master module sends a shutdown message (enabled with --start-stop-msg for the master module).
- --shutdown-master-module arg¶
Set the name of the master-module used for auto-shutdown. This is the application name of the module actually started. If symlinks are used, then it is the name of the symlinked application.
- --shutdown-master-username arg¶
Set the name of the master-username of the messaging used for auto-shutdown. If "shutdown-master-module" is given as well, this parameter is ignored.
Verbosity¶
- --verbosity arg¶
Verbosity level [0..4]. 0:quiet, 1:error, 2:warning, 3:info, 4:debug.
- -v, --v¶
Increase verbosity level (may be repeated, e.g., -vv).
- -q, --quiet¶
Quiet mode: no logging output.
- --component arg¶
Limit the logging to a certain component. This option can be given more than once.
- -s, --syslog¶
Use syslog logging backend. The output usually goes to /var/lib/messages.
- -l, --lockfile arg¶
Path to lock file.
- --console arg¶
Send log output to stdout.
- --debug¶
Execute in debug mode. Equivalent to --verbosity=4 --console=1 .
- --log-file arg¶
Use alternative log file.
Messaging¶
- -u, --user arg¶
Overrides configuration parameter
connection.username.
- -H, --host arg¶
Overrides configuration parameter
connection.server.
- -t, --timeout arg¶
Overrides configuration parameter
connection.timeout.
- -g, --primary-group arg¶
Overrides configuration parameter
connection.primaryGroup.
- -S, --subscribe-group arg¶
A group to subscribe to. This option can be given more than once.
- --content-type arg¶
Overrides configuration parameter
connection.contentType.Default:
binary
- --start-stop-msg arg¶
Default:
0Set sending of a start and a stop message.
Database¶
- --db-driver-list¶
List all supported database drivers.
- -d, --database arg¶
The database connection string, format: service://user:pwd@host/database. "service" is the name of the database driver which can be queried with "--db-driver-list".
- --config-module arg¶
The config module to use.
- --inventory-db arg¶
Load the inventory from the given database or file, format: [service://]location .
Records¶
- --record-driver-list¶
List all supported record stream drivers.
- -I, --record-url arg¶
The RecordStream source URL. Format: [service://]location[#type]. "service" is the name of the RecordStream driver which can be queried with "--record-driver-list". If "service" is not given, "file://" is used and simply the name of a miniSEED file can be given.
- --record-file arg¶
Specify a file as record source.
- --record-type arg¶
Specify a type for the records being read.
Mode¶
- --offline¶
Do not connect to messaging
- --ep arg¶
Implies offline and outputs all results as a single event parameters XML document to stdout
Offline¶
- -E, --eventID arg¶
Define an event ID to be relocated. If both an origin and event IDis given, then the origin ID has precedence.
- -O, --originID arg¶
Define an origin ID to be relocated. If both an origin and event IDis given, then the origin ID has precedence.