.. highlight:: rst

.. _scrtdd:

######
scrtdd
######

**Double-Difference location module for real-time and event catalogs.**


Configuration
=============

| :file:`etc/defaults/global.cfg`
| :file:`etc/defaults/scrtdd.cfg`
| :file:`etc/global.cfg`
| :file:`etc/scrtdd.cfg`
| :file:`~/.seiscomp/global.cfg`
| :file:`~/.seiscomp/scrtdd.cfg`

scrtdd inherits `global options <https://docs.gempa.de/seiscomp/current/apps/global.html>`_.



.. confval:: onlyPreferredOrigins

   Type: *boolean*

   Relocate only preferred origins. When disabled scrtdd listens to LOCATION group and tries to relocate any origin. When enabled scrtdd listens to EVENT group and tries to relocate the preferred origin of an event.
   Default is ``true``.

.. confval:: automaticOrigins

   Type: *boolean*

   Allow relocation of automatic origins
   Default is ``true``.

.. confval:: manualOrigins

   Type: *boolean*

   Allow relocation of manual origins
   Default is ``true``.

.. confval:: workingDirectory

   Type: *path*

   Defines the directory used for storing processing files \(waveforms cache and debugging files\).
   Default is ``@ROOTDIR@/var/lib/rtdd``.

.. confval:: saveProcessingFiles

   Type: *boolean*

   Store logs and processing files in the working directory \(useful for debugging\/troubleshooting or further analysis\).
   Default is ``false``.

.. confval:: activeProfiles

   Type: *list:string*

   Defines a list of active profiles for real\-time\/single\-event processing.


.. confval:: performance.profileTimeAlive

   Type: *int*

   Unit: *sec*

   Defines how long the real\-time profile data should be kept in memory \(in seconds\). This is useful to release memory \(catalog waveform data\) after a period of inactivity, at the cost of having to reload the catalog \(load and process waveforms\) when a new origin arrives. A negative value force the profiles to stay always in memory.
   Default is ``3600``.

.. confval:: performance.cacheWaveforms

   Type: *boolean*

   Save catalog waveforms to local disk after they have been loaded the first time. This avoids re\-reading them from the configured recordStream in the future since this operation is dramatically slow \(unless the recordStream points to a local disk source, in which case there is no advantage over caching the waveforms\). Note: It is safe to delete the cache folder, in which case the waveforms will be loaded and saved again on disk the next time the profile is loaded \(they will be read again from the configured recordStream\).
   Default is ``true``.

.. confval:: performance.cachedWaveformLength

   Type: *double*

   Unit: *sec*

   The waveform length to store in the disk cache \(centered around pick time\). Although the minimum required waveform length is inferred from the cross\-correlation settings \(the max between cross\-correlation and SNR windows\), this option allows to cache to disk a longer window, which become useful to skip the data re\-downloading if the cross\-correlation settings are changed in the future.
   Default is ``10``.

.. confval:: cron.delayTimes

   Type: *list:int*

   Unit: *sec*

   Specifies a delay time in seconds, relative to origin time, to trigger the processing. This can be a single value or a list of delay times. The list case can be useful when a quick solution is wanted but more waveforms data becomes available at a later time. In this scenario multiple times are configured, so that a first solution is attempted early and a more refined one is computed later. Example: \"60, 120, 300, 3600\"
   Default is ``10``.

.. confval:: cron.logging

   Type: *boolean*

   Enables\/disables updating of a cron log file. This file will be created at \~\/.seiscomp3\/log\/[appname].sched and contains information about the scheduled events and the processing queue.
   Default is ``true``.

.. note::
   **profile.\***
   *Each profile is a configuration set for a specific region. To enable a profile for real-time processing the profile name must be added to 'activeProfile' option. Origins within a profile region are relocated using that profile configuration. If an origin falls in multiple profile regions, the profile defined first in activeProfile option will be used. This allows for hierarchical regions, where special regions are defined first and a broader region is defined last.*



.. note::

   **profile.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`rtdd.activeProfiles` to become active.

   .. code-block:: sh

      rtdd.activeProfiles = a,b
      profile.a.value1 = ...
      profile.b.value1 = ...
      # c is not active because it has not been added
      # to the list of rtdd.activeProfiles
      profile.c.value1 = ...


.. confval:: profile.$name.regionType

   Type: *string*

   Type of region: RECTANGULAR or CIRCULAR
   Default is ``CIRCULAR``.

.. confval:: profile.$name.region

   Type: *list:double*

   If regionType is RECTANGULAR then 4 comma separated values are expected: min_lat, min_lon, max_lat, max_lon. If regionType is CIRCULAR then 3 comma separated values are expected: lat, lon, radius in km. If left empty it represents a limitless region.


.. confval:: profile.$name.earthModelID

   Type: *string*

   This is the earthModelID label that is stored in the created origin e.g. the velocity model name of the profile


.. confval:: profile.$name.methodID

   Type: *string*

   This is the methodID label that is stored in the created origin.
   Default is ``RTDD``.

.. note::
   **profile.$name.catalog.\***
   *Define a catalog for this profile. This is used in real-time (single-event mode) as the reference catalog to relocate new origins. There are two ways to define a catalog file: one is providing a single eventFile containing origin ids; the second way consists in providing three csv files eventFile, phaFile and stationFile.*



.. confval:: profile.$name.catalog.eventFile

   Type: *path*

   Path to event file to be used for this profile. If this file contains just one column called \"origin\", then each line must be an existing origin id. In this case neither phase.csv nor station.csv files are required. Alternatively the event file must be in the format generated by \-\-dump\-catalog and phase.csv and station.csv files should be configured too


.. confval:: profile.$name.catalog.phaFile

   Type: *path*

   Path to catalog picks file to be used for this profile


.. confval:: profile.$name.catalog.stationFile

   Type: *path*

   Path to the stations file to be used for this profile


.. confval:: profile.$name.catalog.P-Phases

   Type: *list:string*

   Defines a priority list of accepted P phases. Phases not in the list will be discarded. If multiple phases exist for the same event\/station pair, the first one in the list will be used.
   Default is ``Pg,P``.

.. confval:: profile.$name.catalog.S-Phases

   Type: *list:string*

   Defines a priority list of accepted S phases. Phases not in this list will be discarded. If multiple phases exist for the same event\/station pair, the first one in the list will be used.
   Default is ``Sg,S``.

.. note::
   **profile.$name.doubleDifferenceSystem.\***
   *These options control the creation of the double-difference equation system, that is which events and phases are used in the system. Among the selected events all possible event pairs are considered and for each pair, when a phase exists for both paired events at a common station, an equation is added to the system.*



.. note::
   **profile.$name.doubleDifferenceSystem.eventFiltering.\***
   *Exclude poorly connected events from the DD system: not enough phases and/or neighbours*



.. confval:: profile.$name.doubleDifferenceSystem.eventFiltering.minNumPhases

   Type: *int*

   Minimum number of phases at common stations required by event pairs. Event pairs not satisfying this condition will not be used.
   Default is ``4``.

.. confval:: profile.$name.doubleDifferenceSystem.eventFiltering.minNumNeighbours

   Type: *int*

   Minimum number of neighbours required by an event. Events not satisfying this condition will not be used.
   Default is ``4``.

.. note::
   **profile.$name.doubleDifferenceSystem.phaseFiltering.\***
   *Exclude not optimal phases from the DD system.*



.. confval:: profile.$name.doubleDifferenceSystem.phaseFiltering.minStationToEventPairDistRatio

   Type: *double*

   Minimum ratio between event\-station to inter\-event distance allowed. Phases belonging to stations not satisfying this condition will not be used.
   Default is ``5``.

.. confval:: profile.$name.doubleDifferenceSystem.phaseFiltering.minStationDistance

   Type: *double*

   Unit: *km*

   Minimum distance \(km\) between event and station required for a phase to be used. Phases belonging to stations not satisfying this condition will not be used.


.. confval:: profile.$name.doubleDifferenceSystem.phaseFiltering.maxStationDistance

   Type: *double*

   Unit: *km*

   Max distance \(km\) between event and station allowed for a phase to be used. Phases belonging to stations not satisfying this condition will not be used. A value of 0 or less disables this limit.


.. confval:: profile.$name.doubleDifferenceSystem.phaseFiltering.maxNumPhases

   Type: *int*

   Maximum number of phases per event pair. If this value is set, closer stations will have higher precedence over further ones. A value of 0 disables this limit.


.. note::
   **profile.$name.doubleDifferenceSystem.eventPairSelection.\***
   *This option controls how neighbouring events are selected. In the simpliest form 'numEllipsoids' is set to 0 and the neighbours are selected on the nearest neighbour basis within a search distance of 'maxEllipsoidSize'. This is the preferred choice for multi-event mode. When 'numEllipsoids' is not 0, the ellipsoid selection algorithm is used. From Waldhauser 2009: "to assure a spatially homogeneous subsampling, reference events are selected within each of five concentric, vertically elongated ellipsoidal layers of increasing thickness. The dimension of the ellipsoid is based on the assumed error in the routine locations and the maximum interevent distance over which model errors can still be effectively minimized (see Waldhauser, 2001). The layers are twice as thick at the poles than they are at the equator to accommodate the generally larger error in the depth of the routine location of a new event. Each layer is split up into its eight quadrants (or cells), and the neighboring events are selected from each of the 40 cells." Neighbours are selected for each ellipsoid/quadrant combination in a round robin fashion until 'maxNumNeigh' is reached.*



.. note::
   **profile.$name.doubleDifferenceSystem.eventPairSelection.singleEvent.\***
   *Configuration for single-event relocation*



.. confval:: profile.$name.doubleDifferenceSystem.eventPairSelection.singleEvent.maxNumNeighbours

   Type: *int*

   Maximum number of neighbors per event. Useful to reduce computation time when relocating a large number events. A value of 0 disables this limit
   Default is ``80``.

.. confval:: profile.$name.doubleDifferenceSystem.eventPairSelection.singleEvent.numEllipsoids

   Type: *int*

   Number of concentric ellipsoidal layers to use in neighboring events selection. If 'maxNumNeigh' is not set this parameter does not have effects. If 'maxNumNeigh' is set and 'numEllipsoids' is not 0, the optimal 'maxNumNeigh' value is 'numEllipsoids' \* 8.
   Default is ``5``.

.. confval:: profile.$name.doubleDifferenceSystem.eventPairSelection.singleEvent.maxEllipsoidSize

   Type: *double*

   Unit: *km*

   Horizontal axis length \(km\) of the outermost boundary. Each inner concentric layer axis will be of size\/2 of the previous one. Please, note that the horizontal axis size is half of the vertical one.
   Default is ``5``.

.. note::
   **profile.$name.doubleDifferenceSystem.eventPairSelection.multiEvent.\***
   *Configuration for multi-event relocation*



.. confval:: profile.$name.doubleDifferenceSystem.eventPairSelection.multiEvent.maxNumNeighbours

   Type: *int*

   Maximum number of neighbors per event. Useful to reduce computation time when relocating a large number events. A value of 0 or less disables this limit
   Default is ``30``.

.. confval:: profile.$name.doubleDifferenceSystem.eventPairSelection.multiEvent.numEllipsoids

   Type: *int*

   Number of concentric ellipsoidal layers to use in neighboring events selection. If 'maxNumNeigh' is not set this parameter does not have effects. If 'maxNumNeigh' is set and 'numEllipsoids' is not 0, the optimal 'maxNumNeigh' value is 'numEllipsoids' \* 8.
   Default is ``0``.

.. confval:: profile.$name.doubleDifferenceSystem.eventPairSelection.multiEvent.maxEllipsoidSize

   Type: *double*

   Unit: *km*

   Horizontal axis length \(km\) of the outermost boundary. Each inner concentric layer axis will be of size\/2 of the previous one. Please, note that the horizontal axis size is half of the vertical one.
   Default is ``5``.

.. note::
   **profile.$name.crossCorrelation.\***
   *cross-correlation is used to improve the differential travel times used in the double-difference system. The differential travel times are computed as difference between the phase absolute travel time of two events' phases and consequently rely on the accuracy and consistency across pick times. The cross-correlation is used to improve those differential times by cross-correlating the phases waveforms and using the detected lag as differential time for every phase pair whose correlation coefficient exceeds the configured threshold. This lag then replaces the absolute travel time difference value in the double-difference system. The phase pairs with low correlation coefficient maintain the differential time derived from the absolute travel time difference. The cross-correlation step is not mandatory and can be disabled using either 'maxStationDistance' or 'maxInterEventDistance'*



.. confval:: profile.$name.crossCorrelation.maxStationDistance

   Type: *double*

   Unit: *km*

   By default all phase pairs in the double\-difference system are cross\-correlated. However this parameter allows to set the maximum allowed distance \(km\) between event and station for a cross\-correlation to happen. Phases belonging to further stations will not be used in cross\-correlation. Setting it to \-1 removes the limits. Settings it to 0 disables the cross\-correlations.
   Default is ``0``.

.. confval:: profile.$name.crossCorrelation.maxInterEventDistance

   Type: *double*

   Unit: *km*

   By default all phase pairs in the double\-difference system are cross\-correlated. However this parameter allows to set the maximum allowed distance \(km\) between events for a cross\-correlation to happen. Phases of event pairs whose inter\-event distance if further than this value will not be used in cross\-correlation. Setting it to \-1 removes the limits. Settings it to 0 disables the cross\-correlations.
   Default is ``-1``.

.. confval:: profile.$name.crossCorrelation.detectMissingPhasesAutoOrigin

   Type: *boolean*

   Whether cross\-correlation is used to detect phases at stations with no associated picks. This option applies to automatic origins. If the background catalog contains events with high quality picks, those can serve as template for detecting picks on real\-time events. In multi\-event mode this option is not used.
   Default is ``true``.

.. confval:: profile.$name.crossCorrelation.detectMissingPhasesManualOrigin

   Type: *boolean*

   Whether cross\-correlation is used to detect phases at stations with no associated picks. This option applies to manual origins. If the background catalog contains events with high quality picks, those can serve as template for detecting picks on real\-time events. This option also affects the multi\-event mode.
   Default is ``false``.

.. confval:: profile.$name.crossCorrelation.compatibleChannels

   Type: *string*

   Cross\-correlation is computed on phases with the same channel code \(e.g. HH. EH, HG, etc\), however here it is possible to force the cross\-correlation between different channel codes. The value is a list separated by ';' and each element is a list \(again\) of compatible channels separated by ',' for example: \"HH,EH;HG,HN\"


.. confval:: profile.$name.crossCorrelation.p-phase.minCCCoef

   Type: *double*

   Min cross\-correlation coefficient accepted to use a differential travel time.
   Default is ``0.50``.

.. confval:: profile.$name.crossCorrelation.p-phase.start

   Type: *double*

   Unit: *sec*

   Start of data window to cross\-correlate with respect to pick time \(+\/\- secs\).
   Default is ``-0.50``.

.. confval:: profile.$name.crossCorrelation.p-phase.end

   Type: *double*

   Unit: *sec*

   End of data window to cross\-correlate with respect to pick time \(+\/\- secs\).
   Default is ``0.50``.

.. confval:: profile.$name.crossCorrelation.p-phase.maxDelay

   Type: *double*

   Unit: *sec*

   Maximum data windows lag accepted \(secs\)..
   Default is ``0.50``.

.. confval:: profile.$name.crossCorrelation.p-phase.components

   Type: *list:string*

   Priority list of components to be used in cross\-correlation \(e.g. Z, N, E, 1, 2, 3\). If the component exists for a pair of phases it is used for the cross\-correlation, otherwise the next component in the list is tried. Special values are 'H', which computes the L2 norm of the 2 horizontal components and 'T' \(and 'R'\), which computes the transversal \(and radial\) component with respect with the event location to which the phase belongs to. If empty the component where the phase was picked is used.
   Default is ``Z``.

.. confval:: profile.$name.crossCorrelation.s-phase.minCCCoef

   Type: *double*

   Min cross\-correlation coefficient accepted to use a differential travel time.
   Default is ``0.50``.

.. confval:: profile.$name.crossCorrelation.s-phase.start

   Type: *double*

   Unit: *sec*

   Start of data window to cross\-correlate with respect to pick time \(+\/\- secs\).
   Default is ``-0.50``.

.. confval:: profile.$name.crossCorrelation.s-phase.end

   Type: *double*

   Unit: *sec*

   End of data window to cross\-correlate with respect to pick time \(+\/\- secs\).
   Default is ``0.75``.

.. confval:: profile.$name.crossCorrelation.s-phase.maxDelay

   Type: *double*

   Unit: *sec*

   Maximum data windows lag accepted \(secs\).
   Default is ``0.50``.

.. confval:: profile.$name.crossCorrelation.s-phase.components

   Type: *list:string*

   Priority list of components to be used in cross\-correlation \(e.g. Z, N, E, 1, 2, 3\). If the component exists for a pair of phases it is used for the cross\-correlation, otherwise the next component in the list is tried. Special values are 'H', which computes the L2 norm of the 2 horizontal components and 'T' \(and 'R'\), which computes the transversal \(and radial\) component with respect with the event location to which the phase belongs to. If empty the component where the phase was picked is used.
   Default is ``H``.

.. note::
   **profile.$name.crossCorrelation.waveformFiltering.\***
   *Filter waveforms before performing the cross-correlation*



.. confval:: profile.$name.crossCorrelation.waveformFiltering.filterString

   Type: *string*

   SeisComP string based filter definition. Set to \"\" to disable filtering.
   Default is ``"ITAPER(1)>>BW_HLP(2,1,20)"``.

.. confval:: profile.$name.crossCorrelation.waveformFiltering.margin

   Type: *double*

   Unit: *sec*

   Extra seconds to add to the waveform ends before applying the filter. Useful to initialize the filter and to discard potential filter artifacts at the beginning and end of trace
   Default is ``1``.

.. confval:: profile.$name.crossCorrelation.waveformFiltering.resampling

   Type: *double*

   Unit: *Hz*

   Resample all traces at this samplig interval \(hz\) Set it to 0 disable resampling. If the event phases are picked on different channels for the same station\(s\), this option has to be used to allow a common sampling rate.
   Default is ``0``.

.. note::
   **profile.$name.crossCorrelation.snr.\***
   *Exclude phases from cross-correlation when the Signal to Noise Ratio (SNR) is below a configured threshold. Useful to avoid that low quality phases (e.g. automatic) generate low quality cross-correlation differential travel times. Set 'minSnr' to 0 to disable this feature.*



.. confval:: profile.$name.crossCorrelation.snr.minSnr

   Type: *double*

   Minimum SNR value required for a P or S pick to be used in cross\-correlation.
   Default is ``2``.

.. confval:: profile.$name.crossCorrelation.snr.noiseStart

   Type: *double*

   Unit: *sec*

   Start of noise window with respect to pick time \(+\/\- secs\).
   Default is ``-3``.

.. confval:: profile.$name.crossCorrelation.snr.noiseEnd

   Type: *double*

   Unit: *sec*

   End of noise window with respect to pick time \(+\/\- secs\).
   Default is ``-0.350``.

.. confval:: profile.$name.crossCorrelation.snr.signalStart

   Type: *double*

   Unit: *sec*

   Start of signal window with respect to pick time \(+\/\- secs\).
   Default is ``-0.350``.

.. confval:: profile.$name.crossCorrelation.snr.signalEnd

   Type: *double*

   Unit: *sec*

   End of signal window with respect to pick time \(+\/\- secs\).
   Default is ``1``.

.. note::
   **profile.$name.solver.\***
   *These options control the double-difference system solver. The solution to the double-difference system is found through an iterative process: a double-difference system is built from the origin initial locations and solved. Then the hypocenters are updated based on these initial solutions and a new system is built and solved again multiple times until 'algoIterations' iterations is reached.*



.. confval:: profile.$name.solver.solverType

   Type: *string*

   Solver algorithm to use: either LSMR or LSQR
   Default is ``LSMR``.

.. confval:: profile.$name.solver.algoIterations

   Type: *int*

   This parameter control how many iterations the solver performs
   Default is ``20``.

.. note::
   **profile.$name.solver.downWeightingByResidual.\***
   *At each iteration the solver down-weighs the system equations accordingly to their residuals of the previous iteration, which scales differential time accordingly to their quality. This option value expresses the standard deviations of the double-difference residuals beyond which the observations are dropped. For residuals below this value, the weighing scheme follows the Waldhauser/Ellsworth paper. A value of 0 disables downweighting.*



.. confval:: profile.$name.solver.downWeightingByResidual.startingValue

   Type: *double*

   Value for the first iteration of the solver.
   Default is ``10``.

.. confval:: profile.$name.solver.downWeightingByResidual.finalValue

   Type: *double*

   Value for the last iteration of the solver.
   Default is ``3``.

.. note::
   **profile.$name.solver.dampingFactor.\***
   *Setting a value different than 0 enables the solver to use a damped (regularized) least squares system. A too high value prevents the solver from changing the events locations, while a too low value allows the event cluster(s) to shift away from their initial absolute location, which might result in a larger events RMS.*



.. confval:: profile.$name.solver.dampingFactor.startingValue

   Type: *double*

   Value for the first iteration of the solver.
   Default is ``0.3``.

.. confval:: profile.$name.solver.dampingFactor.finalValue

   Type: *double*

   Value for the last iteration of the solver.
   Default is ``0.3``.

.. note::
   **profile.$name.solver.absoluteLocationConstraint.\***
   *When a value greater than 0 is used, the double-difference system is modified to solve for both absolute and relative locations. Additional equations are added, which constrain the absolute travel time residuals. Here you can set the weight to be given to these equations. When using this feature the dampingFactor should be decreased. A good starting point for testing the optimal values, is absoluteLocationConstraint=0.3 and dampingFactor=0.01*



.. confval:: profile.$name.solver.absoluteLocationConstraint.startingValue

   Type: *double*

   Value for the first iteration of the solver.
   Default is ``0.0``.

.. confval:: profile.$name.solver.absoluteLocationConstraint.finalValue

   Type: *double*

   Value for the last iteration of the solver.
   Default is ``0.0``.

.. note::
   **profile.$name.solver.aPrioriWeights.\***
   *Those options allow the double-difference equations to have different starting weights. By default they are equally weighted and the residual itselfs drive the re-weighting (see downWeightingByResidual option). So these settings shouldn't be strictly necessary but it could be interesting to experiment with them*



.. confval:: profile.$name.solver.aPrioriWeights.usePickUncertainties

   Type: *boolean*

   Observation weights are scaled based on pick uncertainties. This should be enabled only if uncertainties are used for manual picks otherwise there is no way to properly access pick quality and consequently the observation weight.
   Default is ``false``.

.. confval:: profile.$name.solver.aPrioriWeights.absoluteTTObsWeight

   Type: *double*

   Starting weight for observations coming from difference in absolute travel times. Useful to give more weight to xcorr observations than absolute travel time ones.
   Default is ``1.0``.

.. confval:: profile.$name.solver.aPrioriWeights.xcorrObsWeight

   Type: *double*

   Starting weight for observations coming from lag measured via cross\-correlation. Useful to give more weight to cross\-correlation observations than absolute travel time ones.
   Default is ``1.0``.

.. note::
   **profile.$name.solver.travelTimeTable.\***
   *Travel time table used by the solver. 'tableType' specifies the format and it can be any format available in SeisComP (e.g. 'LOCSAT', 'libtau') or 'ConstVel' or 'NonLinLoc'. 'ConstVel' is a simple constant velocity model while 'NonLinLoc' allows to use NonLinLoc grid files. When 'ConstVel' is selected, then 'tableModel' specifies P;S velocity in Km/s e.g. "5.8;3.6" for P=5.8[Km/s] and S=3.6[Km/s]. When 'NonLinLoc' is selected, then 'tableModel' is the path to velocity, time and angle grid files. The path format is "path_to_velocity_grids;path_to_time_grids;path_to_angle_grids;" E.g. "/path/name.PHASE.mod;/path/name.PHASE.STATION.time;/path/name.PHASE.STATION.angle". PHASE and STATION are placeholders and they will be replaced with actual values when looking for the grid file of a specific phase and station. Valid placeholders are NETWORK,STATION,LOCATION,PHASE*



.. confval:: profile.$name.solver.travelTimeTable.tableType

   Type: *string*

   Travel time table format type \(e.g. LOCSAT, libtau, ConstVel, NonLinLoc\).
   Default is ``libtau``.

.. confval:: profile.$name.solver.travelTimeTable.tableModel

   Type: *string*

   The model to be used. The format depends on tableType.
   Default is ``iasp91``.

.. note::
   **profile.$name.solver.airQuakes.\***
   *Air-quakes are origins whose depth shift above the range of the velocity model (typically 0) during the inversion. These options define how the air-quakes are handled. `elevationThreshold` defines the elevation above which an origin is considered an air-quake. `action` control how the air-quakes are handled; "NONE": no special action is performed. "RESET": reset air-quake location and time to the previous solver iteration, before it became an air-quake. "RESET_DEPTH" similar to RESET but only the depth is restored"*



.. confval:: profile.$name.solver.airQuakes.elevationThreshold

   Type: *double*

   Unit: *meter*

   Elevation above which origins are considered air\-quakes
   Default is ``0``.

.. confval:: profile.$name.solver.airQuakes.action

   Type: *string*

   Possible values are NONE, RESET, RESET_DEPTH.
   Default is ``NONE``.


Command Line
============


Generic
-------


Verbosity
---------


Messaging
---------


Database
--------


Records
-------


Mode
----

.. option:: --reloc-catalog profile

   Relocate the catalog passed as argument in multi\-event mode. The input can be a single file \(containing seiscomp origin ids\) or a file triplet \(station.csv,event.csv,phase.csv\). For events stored in a XML file add the \-\-ep option.

.. option:: -O, --origin-id origin-id

   Relocate the origin \(or multiple comma\-separated origins\) and send a message. Each origin will be processed according tothe matching profile region unless the \-\-profile option is used.

.. option:: --ep scxml-file

   Event parameters XML file for offline processing of contained origins \(implies \-\-test option\). Each contained origin will be processed in signle\-event mode unless \-\-reloc\-catalog is provided, which enable multi\-evet mode.

.. option:: --eval-xcorr profile

   Evaluate cross\-correlation settings for the given profile.

.. option:: --dump-clusters profile

   Find clusters in the catalog passed as argument and save them in the working directory. The catalog can be a single file \(containing seiscomp origin ids\) or a file triplet \(station.csv,event.csv,phase.csv\). Use in combination with \-\-profile.

.. option:: --dump-wf profile

   Dump processed waveforms of the catalog passed as argument in the current working directory. The catalog can be a single file \(containing seiscomp origin ids\) or a file triplet \(station.csv,event.csv,phase.csv\). Use in combination with \-\-profile.

.. option:: --load-profile-wf profile

   Load catalog waveforms from the configured recordstream and save them into the profile working directory.

.. option:: --send-reload-profile-msg

   Send a message to any running scrtdd module requesting to reload a specific profile passed as argument.


Catalog
-------

.. option:: --dump-catalog catalog-file

   Dump the seiscomp event\/origin id file passed as argument into a catalog file triplet \(station.csv,event.csv,phase.csv\).

.. option:: --dump-catalog-options type,evalmode,includeCreator,excludeCreator,region

   Allows the \-\-dump\-catalog option to accept event ids besides origin ids. For each event id an origin will be selected following the provided options whose format is: 'type,evalmode,include Creator,excludeCreator,region', where type\=preferred\|last\|first evalmode\=any\|onlyManual\|onlyAutomatic includeCreator\=any\|author\|methodID excludeCreator\=none\|author\|methodID region\=any\|profileName e.g. to select preferred origins of the input event ids that lie within the region defined for 'myProfile' use 'preferred,any,any,none ,myProfile'

.. option:: --merge-catalogs catalog-files

   Merge in a single catalog all the catalog file triplets \(station1.csv,event1.csv,phase1.csv,sta tion2.csv,event2.csv,phase2.csv,...\) passed as arguments.

.. option:: --merge-catalogs-keepid catalog-files

   Similar to the \-\-merge\-catalogs option but events keep their ids. If multiple events share the same id, subsequent events will be discarded.


ModeOptions
-----------

.. option:: --profile profile

   To be used in combination with other options: select the profile configuration to use.

.. option:: --xmlout

   Enable XML output when combined with \-\-reloc\-catalog or \-\-oring\-id options.

.. option:: --xcorr-cache

   Specify a file containing precomputed cross\-correlation values.

.. option:: --test

   Test mode, no messages are sent

.. option:: --cache-wf-all

   All waveforms will be saved to disk cache, even temporarily ones. Normally only catalog phase waveforms are cached to disk. This is useful to speed up debugging\/testing when the same origins are repeatedly processed.

.. option:: -x, --expiry hours

   Defines the time span in hours after which objects expire.

