Skip to content

Add alternative relocation backends: GrowClust / GrowClust3D.jl / SPIDER #2

Description

@seismoseo

Motivation

PocketQuake currently offers two relocation backends, both double-difference least-squares (HypoDD-family): Fortran ph2dt + hypoDD (default), and Python relocDD-py (--python).

A different relative-relocation philosophy adds cross-validation and robustness — especially on sparse / noisy / weakly-linked clusters where HypoDD-family inversions produce "air-quakes" or fail to converge (e.g. the Namwon test, where a poorly-located outlier collapsed the dt.ct inversion).

Candidates — links + references

  • GrowClust (Fortran90) — hierarchical clustering driven directly by cross-correlation, no damped matrix inversion; robust where least-squares DD struggles.

  • GrowClust3D.jl (Julia) — the maintained successor; adds 3-D velocity-model support.

  • SPIDER — Bayesian double-difference for whole catalogs via a physics-informed neural-network Eikonal solver + Stochastic Gradient Langevin Dynamics, parallelised over GPUs. Conceptually close to PocketQuake's HypoSVI locator (same Ross group), so it would pair naturally with the --python stack.

Scope (rough)

  • New --reloc-backend {growclust|...} selector (mirrors the hypodd / relocdd_py dispatch in hypodd.run_dtcc / pipeline.run_cluster).
  • Feed it the existing dt.cc (xcorr stage) + station/event tables; emit a hypoDD.reloc-compatible product so 03_results_<cluster>.ipynb renders it.
  • Decide how each method's uncertainties map onto the notebook's 95% error bars (GrowClust has its own bootstrap; SPIDER is natively Bayesian).

Out of scope

Not implementing now — tracking only.

— filed via Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions