Skip to main content

DoubleF: A fast and flexible phase association and earthquake location method

Project description

DoubleF

DoubleF is a phase association and earthquake location program based on adaptive Sobol sampling. It searches event latitude, longitude, depth, and origin time in a unified framework and progressively refines the search region around the best-scoring candidates.

Iterative search process

Highlights

  • Adaptive Sobol sampling: efficient search in a 4-D source parameter space without an exhaustive grid.
  • Unified association and location: phase association and hypocenter estimation are solved together.
  • Flexible scoring: phase count, residual, probability, and distance weighting can be combined in different ways.
  • GPU acceleration: the main tensor computations can run on CUDA when available.
  • Stable output: final phase reports are aligned automatically and written in a compact format.

Installation

conda create -n doublef python=3.9
conda activate doublef
pip install .

If you want GPU execution, install a PyTorch build that matches your CUDA runtime before installing DoubleF.

Command Line

Run DoubleF with a YAML config file:

doublef example/example.yaml

Show program information:

doublef

Example

The repository includes a runnable example in example/:

  • example/example.yaml: example configuration
  • example/example.csv: example pick file
  • example/example_stations.csv: station file
  • example/tt/example.nd: velocity model

The public example uses recompute-travel-time: true, so the first run will build travel-time tables in example/tt/. After the tables are built, set it to false to avoid repeated travel-time computation.

Input Files

Pick CSV

Required columns:

  • network
  • station
  • phasetype
  • Time
  • Probability
  • Amplitude

Station CSV

Required columns:

  • network
  • station
  • latitude
  • longitude
  • elevation

Velocity Model

DoubleF uses a 1-D velocity model file for travel-time calculation.

Configuration

DoubleF is controlled by a YAML file. A complete example is provided in example/example.yaml.

In normal use, most parameters do not strongly change the final result. You usually do not need to tune everything.

The two sections that deserve the most attention are:

  • tolerance
  • output

These are strongly related to real data quality, station coverage, pick uncertainty, noise level, and the practical goal of the analysis.

For larger search regions, broader study areas, or larger initial uncertainty, increasing number-of-samples is often beneficial. In many smaller and denser problems, the default sampling is already adequate.

For more detailed parameter descriptions, refer to the comments in the YAML file.

Output Files

Each run creates an experiment directory under output.output-directory, for example:

results/000-example/

Typical files:

  • example.log: full log file
  • Config.yaml: normalized effective configuration used for the run
  • example.phase: final association and location report

Phase Report Format

The phase report does not contain explanatory header lines.

Each event consists of:

  • one event line
  • multiple associated pick lines

Event Line

# YYYY MM DD HH MM SS LAT LON DEP MAG ERR_LAT ERR_LON ERR_DEP ERR_TIME RMS P S BOTH SUM ID

Important note:

  • ERR_LAT, ERR_LON, ERR_DEP, and ERR_TIME are not formal location errors.
  • They describe the spread of the final iteration search result around the selected solution.
  • Large values may indicate that the result is less stable, the sample count is insufficient, the quantile is too broad, or the solution space remains diffuse.
  • They should be interpreted as indicators of solution concentration, not as strict uncertainty estimates.

Pick Line

NET STATION DIST PICK_TIME PROB PHASE RESIDUAL MAG AMP

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

doublef-0.2.1.tar.gz (36.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

doublef-0.2.1-py3-none-any.whl (38.2 kB view details)

Uploaded Python 3

File details

Details for the file doublef-0.2.1.tar.gz.

File metadata

  • Download URL: doublef-0.2.1.tar.gz
  • Upload date:
  • Size: 36.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for doublef-0.2.1.tar.gz
Algorithm Hash digest
SHA256 35fbe1ba4e794d28d1cbdb07e3a31583daeff2c20d4a38059bae9033820fa466
MD5 e7bcab13e3028abe76f031b0a458a3f5
BLAKE2b-256 f8e9b954570d196fe86c36fb901458907f93de7e3c923d89f09d692e38331a01

See more details on using hashes here.

File details

Details for the file doublef-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: doublef-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 38.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for doublef-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2c9a7061250f3c90023ac0cbc69c21cd1e9bc9a36bb7c8755892ec2745e5bd36
MD5 f02be915a02b93a9900640589270fbe0
BLAKE2b-256 4dcbe7a7e51a855f6e1a196c3b1aed9971e988d0952c8a029364242c04688e45

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page