How ai4eps/gamma works
GaMMA associates seismic phase picks with earthquake events, returning event locations and pick assignments. Its main runtime path normalizes picks and station metadata, optionally segments picks with DBSCAN, fits a seismic-aware Gaussian mixture, and filters candidate events before producing a catalog. The package also supports amplitude-based estimates and uniform or 1D eikonal travel-time models. The FastAPI adapter is sampled; several internal details and documented integrations are not, so uncertain wiring is omitted.
Main entry points: utils.py Association orchestrator · _gaussian_mixture.py Gaussian mixture · _bayesian_mixture.py Bayesian mixture · app.py FastAPI adapter
Components 15
Entry points
- FastAPI adapter
app.py - Package exports
gamma/__init__.py
Association workflow
- Association orchestrator
gamma/utils.py - DBSCAN segmentation
gamma/utils.py - Event filtering
gamma/utils.py
Mixture models
- Gaussian mixture
gamma/_gaussian_mixture.py - Bayesian mixture
gamma/_bayesian_mixture.py - EM base
gamma/_base.py
Seismic calculations
- Travel-time and location
gamma/seismic_ops.py
Other components
- API user
- Python caller
- Picks and stations
- Events and assignments
- scikit-learn
- NumPy and SciPy
Connections 20
- API user → FastAPI adapter: submits picks
- Picks and stations → FastAPI adapter: provides input
- FastAPI adapter → Association orchestrator: calls association
- FastAPI adapter → Events and assignments: returns results
- Python caller → Package exports: imports models
- Python caller → Association orchestrator: calls association
- Association orchestrator → DBSCAN segmentation: segments picks
- Association orchestrator → Gaussian mixture: fits model
- Association orchestrator → Bayesian mixture: fits model
- Association orchestrator → Event filtering: filters candidates
- Association orchestrator → Travel-time and location: initializes travel model
- Event filtering → Events and assignments: emits events and assignments
- Gaussian mixture → EM base: inherits
- Bayesian mixture → EM base: inherits
- Bayesian mixture → Gaussian mixture: uses Gaussian helpers
- Gaussian mixture → Travel-time and location: optimizes locations
- Gaussian mixture → scikit-learn: uses utilities
- Bayesian mixture → scikit-learn: uses utilities
- EM base → scikit-learn: uses estimator utilities
- Travel-time and location → NumPy and SciPy: computes travel times