Processing profiles¶
A processing profile stores the settings of the Pick processing and Origin processing panels,
the database bar, the QC rule sets and the aggregation rules, so the same setup
can be reused, for example one profile per network or region. Profiles are
declared in the SeisComP application configuration (catalyst.cfg). Each one
points to a .profile file that holds the actual key = value settings.
Declare profiles in catalyst.cfg¶
Put this in @SYSTEMCONFIGDIR@/catalyst.cfg
($SEISCOMP_ROOT/etc/catalyst.cfg) or in the user configuration
@CONFIGDIR@/catalyst.cfg (~/.seiscomp/catalyst.cfg):
# Available processing profiles.
profiles = iceland, ukraine
# Profile applied at start-up. Default: the first one in the list.
defaultProfile = iceland
# Each profile points to a settings file. @SYSTEMCONFIGDIR@, @CONFIGDIR@,
# @DATADIR@ and @ROOTDIR@ are resolved by SeisComP.
profile.iceland.configFile = @SYSTEMCONFIGDIR@/iceland.profile
profile.ukraine.configFile = @SYSTEMCONFIGDIR@/ukraine.profile
At start-up Catalyst reads the profiles list, resolves each configFile
path and fills the Profile dropdown in the toolbar. It then applies the
profile named by defaultProfile. If that name is not in the list, Catalyst
logs a warning and uses the first profile. The profile is applied at the end of
start-up, after the locator and travel-time lists have been filled, so the
dropdown never shows a profile whose settings are not in effect.
If no profiles are configured, the dropdown shows “(no profiles configured)” and the controls keep their built-in defaults.
Profiles shipped with Catalyst¶
Three profiles are installed with Catalyst and declared in the default
configuration (etc/defaults/catalyst.cfg):
Profile |
Content |
|---|---|
infra |
Infrasound arrays: Is picks from Lambda / autolambda (PMCC), back projection with EDT stacking, Azimuth locator, the iasp91_scanloc_icel026 Is table, the Infrasound tab and three QC rule sets on the array picks (Reject, Check, Confirm). Tested on Romanian, Dutch and German arrays at 60–800 km. |
alaska |
Regional earthquakes in Alaska and the Aleutians (AK/AT/AV): DBSCAN nucleation, LOCSAT iasp91, QC rules derived from analyst-reviewed events of the Alaska Earthquake Center, the spectra test within 200 km, QC zones Aleutians / mainland and a 0.5° grid for the grid search. It is the profile of the tutorial. |
newmexico |
Local and regional earthquakes in New Mexico and the Delaware Basin, tuned on 118 reviewed ComCat events: DBSCAN on P, LOCSAT with the iasp91_scanloc tables (installed with scanloc), QC rules that reject none of the reviewed events, the spectra test within 100 km and an adaptive 0.25° grid for the grid search. |
The files are in @DATADIR@/catalyst/profiles/ together with the files
they refer to (QC zones, grids). An update replaces them: to change a
shipped profile, copy it to @SYSTEMCONFIGDIR@ and point its
configFile there. A profiles list in etc/catalyst.cfg or
~/.seiscomp/catalyst.cfg replaces the default list; add infra,
alaska or newmexico to it to keep them.
File paths inside a profile (qc.zones, nucleator.gridsearch.gridFile,
nucleator.gridsearch.stationFile, nucleator.edtloc.stationFile,
infra.arraysConfig) may use ~
and the SeisComP variables @DATADIR@, @CONFIGDIR@,
@SYSTEMCONFIGDIR@ and @ROOTDIR@.
Other module settings¶
Settings that belong to the installation rather than to a profile, such as
the score plugin, the 3D-view files (gui.*) or the runaway guard
nucleator.maxOrigins, are set in catalyst.cfg only. See configuration.
The .profile files¶
A .profile file is a plain key = value list. Lines starting with #
are comments. The keys are grouped by namespace: the nucleator settings use
the parameter names of the nucleator plugins (nucleator.<plugin>.<name>,
the same names as in catalyst.cfg), the other settings are grouped by
panel (locator.*, association.*, merge.*, qc.*, picks.*,
spectra.*, infra.*, swarm.*, database.*, gui.*).
Save as… writes the keys sorted, so each namespace forms a block.
Shortened example:
# Catalyst processing profile - Iceland (IMO)
association.maxDistance = 100
association.tolerance = 2
association.tttInterface = LOCSAT
association.tttModel = sil
gui.cities = "Reykjavik, Grindavík, Húsavík, Akureyri, Selfoss"
locator.interface = LOCSAT
locator.profile = sil
merge.distance = 0.05
merge.minSharedPicks = 3
merge.pickMatch = 0.2
merge.time = 1
nucleator.dbscan.maxDistP = 12
nucleator.dbscan.maxDistS = 15
nucleator.dbscan.maxPickDelay = 90
nucleator.dbscan.minPts = 6
nucleator.dbscan.phaseType = P+S
nucleator.dbscan.velP = 7
nucleator.dbscan.velS = 4
nucleator.method = dbscan
picks.aggregation.window = 1
qc.zones = ~/SC_configs/IMO/zones.geojson
Rules for loading:
A key that is missing keeps the control’s current value.
Unknown keys are ignored. This includes the flat keys of versions before the namespaces (
nucMethod,dbscanMaxDistP,qcProfiles, …): convert such a profile withapps/catalyst/docs/profile_keys.pyfrom the source tree (see Converting old profiles).Combo values (
nucleator.dbscan.phaseType,locator.interface,locator.profile,association.tttInterface,association.tttModel) are applied only if the option exists in that dropdown on this installation. Otherwise the field is left unchanged, a warning is logged, and a dialog lists the settings that could not be applied.Booleans accept
trueor1. Everything else counts as false.A leading
~/inqc.zonesis expanded to the home folder.
Using profiles in the GUI¶
The Profile dropdown in the toolbar lists the configured profiles.
Load applies the selected profile. Nothing runs automatically, except that the QC zone file and the bearing catalogue are loaded if their paths are set and the files exist.
Save as… writes the current settings to a
.profilefile. The dialog starts with the selected profile’sconfigFile, so pressing Enter overwrites it. If you don’t have write access to@SYSTEMCONFIGDIR@, save under~/.seiscomp/instead. When the target file already exists, keys the GUI does not manage (for examplegui.cities) are kept. After creating a new file, addprofilesandprofile.<name>.configFileentries for it tocatalyst.cfgso it appears in the dropdown next time.
Settings keys¶
Nucleation¶
The names after nucleator.<plugin>. are the parameter names of the
nucleator plugins, as in catalyst.cfg. .velS stands for
nucleator.dbscan.velS, and so on.
Key |
Setting |
|---|---|
|
Nucleation tab: |
|
DBSCAN: Phase ( |
|
DBSCAN: Vel P / Vel S / Vel Is [km/s] |
|
DBSCAN: Max dist P / S / Is [s] |
|
DBSCAN: Min size (picks) |
|
DBSCAN: Min sta |
|
DBSCAN: Window [s] |
|
DBSCAN: Use 3D distances |
|
DBSCAN: Dist pctl [%] used by Auto dist. |
|
DBSCAN: Pg max [km] for the apparent-velocity fit of Auto vel. (0 = all picks) |
|
Back projection: Grid [km] |
|
Back projection: Depth [km] |
|
Back projection: Max range [km] |
|
Back projection: Min size |
|
Back projection: phases used (several = joint search) |
|
Back projection: t0 tol [s] |
|
Back projection: Az tol [deg] |
|
Back projection: Max az gap [deg] (360 = off) |
|
Back projection: EDT stacking |
|
Back projection: EDT σ [s] |
|
Back projection: Window [s] (currently has no effect) |
|
GaMMA-lite: Grid [km] |
|
GaMMA-lite: Coarse window [s] |
|
GaMMA-lite: OT tol [s] |
|
GaMMA-lite: Processing window [s] |
|
GaMMA-lite: Min size |
|
GaMMA-lite: Depth [km] |
|
GaMMA-lite: Max range [km] |
|
GaMMA-lite: Max OT spread [s] |
|
Grid search: Grid file ( |
|
Grid search: Station file ( |
|
Grid search: Min. stations |
|
Grid search: Max. distance [deg] |
|
Grid search: Agreement offset [s] |
|
Grid search: Projected window [s] |
|
Grid search: Max. radius factor |
|
Grid search: Processing window [s] |
|
EDT location: Window [s] |
|
EDT location: Min. picks |
|
EDT location: Pick sigma [s] |
|
EDT location: Miss prob. |
|
EDT location: Search radius [km] |
|
EDT location: Max. depth [km] |
|
EDT location: Max. residual [s] |
|
EDT location: Max. RMS [s] |
|
EDT location: Use stations that have not picked ( |
|
EDT location: Ignore the silence of over-detecting stations |
|
EDT location: Exempt stations ( |
|
EDT location: Station file ( |
Pick aggregation and filters¶
Key |
Setting |
|---|---|
|
Aggregation: Dup. win [s] |
|
Aggregation: Mode ( |
|
Aggregate picks of different phases together (no GUI control) |
|
Aggregation: preferred-pick priority list (format below) |
|
Isolated-pick filter: minimum stations (no GUI control) |
|
Isolated-pick filter: time window [s] (no GUI control) |
|
Isolated-pick filter: apply only to over-detecting stations (no GUI control) |
|
Pick filter: trace-velocity filter for Is picks on/off |
|
Pick filter: trace-velocity range [km/s] |
Relocation, association and merging¶
Key |
Setting |
|---|---|
|
Locator Interface |
|
Locator Profile |
|
Fix depth on/off |
|
Fix depth [km] |
|
Ignore initial location |
|
Drop duplicate stations |
|
Monte Carlo rescue: MC draws |
|
Monte Carlo rescue: min set (smallest number of picks in a subset) |
|
Smart-locate: min phases of a result (default 5, at least 4) |
|
Fast smart-locate ( |
|
Consider virtual picks: add the source picks of a virtual pick with weight 0 when locating ( |
|
Association: TTT interface |
|
Association: TTT model |
|
Association: Assoc. tol [s] |
|
Association: Max distance [km] (0 = no limit) |
|
Merge: Merge dist [km] |
|
Merge: Merge time [s] |
|
Merge: Pick match [s] |
|
Merge: Min shared picks |
|
Preferred-origin ranking used when merging (format below) |
QC, references and display¶
Key |
Setting |
|---|---|
|
Named QC rule sets (format below) |
|
GeoJSON file with the QC zones, loaded with the profile |
|
Slow/baz source catalogue (CSV), loaded with the profile |
|
Template match time tolerance [s]; 0 = association tol. |
|
Reference cities in the 3D view, comma-separated in quotes. Overrides |
|
Shown columns of the origin table, in display order |
|
Shown columns of the pick table, in display order |
|
Shown columns of the arrival table, in display order |
|
Phase family of the Move-out plot: |
Spectra tab¶
See Spectra. Only keys present in the profile change the settings.
Key |
Setting |
|---|---|
|
Show the Spectra tab ( |
|
Number of nearest stations (an array counts as one); the Stations box of the Spectra tab |
|
Stations farther away [km] are left out. 0 = no limit. The within box of the Spectra tab. |
|
Arch [dB] above which a station counts as event |
|
Shift P and S around the predicted times / by up to this many s |
|
Gap before the window after S, in units of S−P |
|
Centre frequency of the mirrored plot axis [Hz] |
|
Waveform request timeout [s] |
|
Origins analysed in parallel by Calculate spectra (1–8) |
|
Is window: start before the Is pick / length [s] (default 5 / 30) |
|
Band of the Is height [Hz], |
|
Longest P window when Is is the right half [s] (default 30) |
|
Array element suspect when this many dB below the others (default 6) |
Infrasound tab¶
See Infrasound. Only keys present in the profile change the settings.
Key |
Setting |
|---|---|
|
Show the Infrasound tab ( |
|
Array names, comma-separated, as in the Lambda configuration (for example |
|
Lambda configuration files that define the arrays ( |
|
Celerity band [km/s], |
|
Apparent-velocity band [km/s], |
|
Back-azimuth tolerance as a multiple of the pick’s uncertainty. The tolerance is the larger of this and the back projection Az tol. Default 3. |
|
Allowed difference [km/s] from the celerity of the other arrays. Default 0.015; 0 = band only. |
|
Arrays farther away [km] are left out. 0 = no limit. |
|
Apply the seasonal up/downwind rule ( |
Database bar¶
Key |
Setting |
|---|---|
|
picks / origins: load all picks / all origins in the window |
|
pref. origins / pref. picks: load only each event’s preferred origin / only the picks associated with it |
|
aggregate: aggregate the picks after every load |
|
keep picks / keep origins: add to what is loaded instead of replacing it |
|
Time window, ISO 8601 (for example |
Rule formats¶
qc.ruleSets¶
Rule sets are joined with |. Each one is name=chain, and a chain is a
;-separated list of conditions:
qc.ruleSets = Gap zones=0,2,2,180,0;0,14,4,1,0|Weak=0,1,0,6,0;1,3,2,1,0
Each condition is conn,field,op,threshold,indent:
conn: how the condition joins the one above.0= AND,1= OR. AND binds more tightly than OR. Ignored for the first condition.field:Code
Field
Code
Field
0
Depth [km]
9
S cov (0 = good)
1
Phase count
10
Fault Q (0 = good)
2
Azimuthal gap [deg]
11
Min sta dist [km]
3
RMS [s]
12
Mode (0 = automatic, 1 = manual, -1 = not set)
4
Mismatch
13
Status (0 = preliminary, 1 = confirmed, 2 = reviewed, 3 = final, 4 = rejected, 5 = reported, -1 = not set)
5
Move-out 0–1
14
Zone
6
DD ref ties
15
Clean Q (0 = good)
7
DD residual [s]
16
Score
8
DD qual (0 = good)
op:0<,1≤,2>,3≥,4=,5≠threshold: numberindent: grouping depth (0 = top level)
The custom (“(custom)”) query is scratch space and is not saved. It always
starts empty when a profile is loaded. Loading a profile that contains
qc.ruleSets replaces all named rule sets. The built-in defaults are added
back if they are missing.
merge.preferRules¶
Preferred-origin ranking, ;-separated, in priority order. Each rule is
field,value. For numeric fields (the QC field codes above), value is
1 to prefer higher values or 0 to prefer lower ones. For Author
(1000) and Method (1001), value is the author or method name to
prefer.
merge.preferRules = 12,1;3,0;1000,scautoloc
picks.aggregation.preferRules¶
Preferred-pick priority list for “Keep preferred pick”, in the same
field,value format:
Code |
Field |
|---|---|
2000 |
Manual (manual beats automatic) |
2001 |
Status (more vetted wins) |
2002 |
Time uncertainty [s] |
2003 |
Time (earliest / latest) |
2004 |
Author (value = author name) |
2005 |
Method (value = methodID) |
Not stored in profiles¶
These settings currently live only in the GUI session: the aggregation time
mode, cell size and carried measurements, the swarm, template and
fingerprint matching parameters (except the template match time tolerance,
swarm.templateTimeTol), the map clustering settings, and the pick and
origin filters except the trace-velocity filter.
Converting old profiles¶
Profiles written before the namespaced keys use flat names such as
nucMethod, dbscanMaxDistP or qcProfiles, which are no longer read.
Convert them with the script in the source tree:
# print the converted profile
python3 apps/catalyst/docs/profile_keys.py old.profile > new.profile
# convert in place; --sort groups the keys by namespace as Save as... does,
# --align lines up the values of hand-written files
python3 apps/catalyst/docs/profile_keys.py --in-place --sort my.profile
Comments are kept. Keys the script does not know are kept unchanged and
reported; obsolete keys (avgVelocity, maxDist, qcRules,
confidence) are dropped. The script also holds the complete table of old
and new names.