.. _catalyst-sec-analysis-rules: Analyst rules and Smart-locate ============================== This document describes how an analyst decides to refine an origin from the distribution of picks around the theoretical travel-time curves and their tolerance bands on the **Travel-time** plot, and how **Smart-locate** implements those decisions. P and S are weighted equally throughout. Part 1 is the analyst's procedure. Part 2 describes what Smart-locate does, including the steps it adds before and after the rules. Part 1 — Analyst rules ---------------------- What the analyst reads off the plot ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - **In-band count:** how many picks fall inside the P and S tolerance bands (curve ± association tolerance). - **Associated fraction:** how many of the in-band picks are already arrivals of the origin, and how many are still unassociated (blue). - **Residual symmetry:** whether the picks scatter evenly above and below the curve (mean residual near zero), sit on one side of it as an offset block, or show no trend at all. Rules ~~~~~ Rule 1 — many associated, symmetric around the curve ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - **Condition:** many picks are already associated and are balanced above and below the P and S curves. - **Action:** Relocate, then the usual workflow (deassociate, associate, relocate). Rule 2 — few associated, but many in the band and symmetric ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - **Condition:** only a few picks are associated, but many unassociated (blue) picks lie inside the bands and scatter evenly around the curve. - **Action:** Associate, Relocate, then the usual workflow. Rule 3 — parallel block with a time offset ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - **Condition:** a coherent block of picks runs parallel to the model curve (same slope and shape) but is shifted by a roughly constant time across distance. This points to an origin-time error, not to a bad pick set. - **Action:** Box-select the block on the Travel-time plot, which associates it, and Relocate. The relocation corrects the origin time so the block falls onto the curve. Then the usual workflow. Do not associate the whole field first; isolate the shifted block. Rule 4 — too few picks in the bands ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - **Condition:** not enough picks near the curves to work with. - **Action:** Associate again with a wider tolerance, but never more than 3 s. If enough picks come in, continue with Rule 1 or 2. Rule 5 — scattered, no coherent trend ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - **Condition:** the picks near the curves form no line: no symmetric spread and no offset block. - **Action:** Leave the origin as it is. Do not force a solution. Summary ~~~~~~~ If there is a coherent pattern, symmetric around the curve or a parallel offset block, work it: associate or box-select, then relocate. Widen the association tolerance only when there are too few picks, and only up to 3 s. Leave noisy origins alone. Part 2 — Smart-locate --------------------- **Smart-locate** carries out these rules automatically. With origins selected, the button reads "Smart-locate N" and processes those. With nothing selected, it reads "Smart-locate all (M)" and processes all visible origins. Batches run in parallel. - **One origin:** the result is shown as a candidate. Review it and press **Accept origin** to keep it. - **Several origins (batch):** each origin that is located successfully is accepted automatically and stamped in the *Updated* column. Origins that are incoherent or cannot be located are left unchanged. Smart-locate never rejects an origin. Rejecting is left to the analyst and the QC rules. For each origin, Smart-locate runs these steps in order. Step 0 — origins that cannot be solved ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ An origin with too few observations to solve for latitude, longitude, depth and time (for example a single array pick) is left exactly as it is. Step 1 — clean-up ~~~~~~~~~~~~~~~~~ 1. **Moveout filter.** Arrivals that are off the coherent P/S moveout trend are removed, so the following steps work on one event and not a mixture. The tolerance is the association tolerance, at least 1 s. 2. **Distance-outlier trim.** An arrival can sit on the curve and still be wrong, for example a misassociated pick from a distant station. Each arrival is left out in turn, and one is removed only if that brings the mismatch score right down. A real far-field event, with many distant stations, is not affected. 3. **Mismatch check.** If the mismatch is above the **mismatch >** value of the QC panel, Smart-locate checks whether the P and S trends are parallel. If they are, the origin is treated as a far-field event. A high mismatch is never a reason to reject: a far-field event has a high mismatch by nature, because the nearby stations cannot see it. Step 2 — measuring the band ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Smart-locate looks at every pick, associated or not, that - is within **400 km** of the origin, and - has a residual (observed − predicted travel time) within **±10 s**. The window is much wider than the association tolerance so that an offset block, for example 4 s off the curve, can still be seen. A pick without a phase hint is treated as P. From these picks it computes: +------------------+----------------------------------------------------------+ | Value | Meaning | +==================+==========================================================+ | ``n`` | number of picks in the ±10 s window | +------------------+----------------------------------------------------------+ | ``mean`` | mean signed residual: the offset from the curve | +------------------+----------------------------------------------------------+ | ``scatter`` | standard deviation of the residuals about the mean: the | | | coherence | +------------------+----------------------------------------------------------+ | ``nInBand`` | picks with \|residual\| ≤ association tolerance | +------------------+----------------------------------------------------------+ | ``nInBandAssoc`` | of those, picks that are already arrivals of the origin | +------------------+----------------------------------------------------------+ Step 3 — choosing the rule ~~~~~~~~~~~~~~~~~~~~~~~~~~ The rules are checked in this order, and the first one that matches is used. The thresholds below are for an association tolerance of up to 2 s. For a larger tolerance, every time value (the ±10 s window and the 1.5 s, 0.5 s, 4 s and 3 s thresholds) is multiplied by tolerance / 2, so the rules mean the same for infrasound at 60 s as for seismic picks at 2 s. With infrasound picks in the data, the band also uses the infrasound celerity for its time window, and its distance limit follows **Max distance** (1500 km if that is 0) instead of 400 km. +-------+---------------------+---------------------+---------------------+ | Order | Rule | Condition | Action | +=======+=====================+=====================+=====================+ | 1 | **R4 sparse** | ``n`` < 6 | Associate with the | | | | | tolerance set to 3 | | | | | s, then relocate | +-------+---------------------+---------------------+---------------------+ | 2 | **R3 parallel | \|mean\| > 1.5 s | Associate the | | | offset** | and scatter < 1.2 × | block, then | | | | \|mean\| | relocate | +-------+---------------------+---------------------+---------------------+ | 3 | **R2 symmetric, | \|mean\| ≤ 0.5 s | Associate, then | | | under-associated** | and fewer than half | relocate | | | | of the in-band | | | | | picks are | | | | | associated | | +-------+---------------------+---------------------+---------------------+ | 4 | **R1 symmetric, | \|mean\| ≤ 0.5 s, | Relocate | | | well-associated** | otherwise | | +-------+---------------------+---------------------+---------------------+ | 5 | **R5 incoherent** | scatter > 4 s and | Relocate with the | | | | \|mean\| < 0.75 × | full recovery | | | | scatter | ladder | +-------+---------------------+---------------------+---------------------+ | 6 | **Default** | none of the above | Relocate | +-------+---------------------+---------------------+---------------------+ Details: - **R4** counts all picks in the band window, not only those in the band. It sets the tolerance to the larger of the current tolerance and the (scaled) 3 s for this one association, then restores the original value. It never narrows the tolerance. - **R3** associates the picks whose residual is within max(0.75 s, 2 × scatter) of the mean offset. That is the block itself, not the picks near the curve. Picks without a phase hint are added as P. - **R2 versus R1:** the origin counts as under-associated when fewer than half of the in-band picks (rounded up) are already arrivals. - **R5 differs from the analyst rule.** An analyst leaves an incoherent origin alone. Smart-locate still relocates it with the full recovery ladder, including the Monte Carlo rescue, because a clean subset can hide inside a noisy set. It only skips the association step. The rule chosen for each origin appears in the status line and the log, for example ``R3 parallel offset block``. Step 4 — relocation with recovery ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If the first relocation fails, Smart-locate tries the following steps in order. Each one gives up more than the one before, and the first that gives a valid solution is used: 1. Relocate directly. 2. Deassociate (remove arrivals outside the tolerance), then relocate. 3. Associate, then relocate. 4. **S activation:** add S arrivals on the stations between the 50th and 95th percentile of the origin's station distances, with a tolerance of twice the association tolerance (at least 2 s), then relocate. S−P constrains the distance directly, which pins down one-sided or offshore solutions. 5. **Monte Carlo reseed:** relocate random subsets of the picks (**MC draws** subsets of at least **min set** picks), take the consensus hypocentre as the new start, then relocate. 6. **P only:** remove all non-P arrivals, then relocate. This is skipped for origins without P, such as S-only or infrasound origins. 7. **P only with a fixed depth:** the same with the depth fixed at the **Fix depth** value. 8. **Far-field fallback:** if a solution converged earlier but was held back because of its high mismatch, keep it. Before every relocation, a station with two picks of the same phase keeps only one, so the locator never sees both. A solution counts as valid only if it converges with a good RMS and is consistent with the network (low mismatch). Once the Monte Carlo reseed has been tried, any converged solution is accepted. Step 5 — refine loop ~~~~~~~~~~~~~~~~~~~~ After the opening move, Smart-locate repeats deassociate, associate and relocate, up to 8 rounds. It stops early when the set of picks no longer changes, the hypocentre moves less than 0.1 km and the origin time moves less than 0.05 s. Step 6 — minimum number of phases ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The result needs at least 4 phases when the depth is free, or 3 when the depth is fixed. If ``minPhases`` in ``catalyst.cfg`` is higher, that value applies. A result with fewer phases is reported as `` (rejected: | REFINE → QC | far-field check in step 1 | +--------------------+----------------------+---------------------------------+ | ``minPhases`` | ``catalyst.cfg`` | step 6 | +--------------------+----------------------+---------------------------------+ Two options in the Relocate group change how Smart-locate works: - **Fast smart-locate (accept first fit):** accept the first converged solution with a good RMS instead of climbing the recovery ladder to lower the mismatch. Much faster on catalogues with many one-sided or offshore events, where the ladder usually ends with the same first solution anyway. Turn it off for the most thorough refinement. - **Consider virtual picks:** each virtual pick from :ref:`aggregation ` is expanded when locating: its source picks are added as arrivals with weight 0, so they are visible but do not pull the fit. The base values of the band window (±10 s), the distance limit (400 km) and the rule thresholds are set in the code (``BandConfig`` and ``RuleThresholds`` in ``apps/catalyst/core/analysis.h``).