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.
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 configurationexample/example.csv: example pick fileexample/example_stations.csv: station fileexample/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:
networkstationphasetypeTimeProbabilityAmplitude
Station CSV
Required columns:
networkstationlatitudelongitudeelevation
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:
toleranceoutput
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 fileConfig.yaml: normalized effective configuration used for the runexample.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, andERR_TIMEare 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
Metadata
Release files for doublef 0.2.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| doublef-0.2.5.tar.gz | 42.0 kB | Without provenance | Details for doublef-0.2.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| doublef-0.2.5-py3-none-any.whl | Python 3 | none | any | Details for doublef-0.2.5-py3-none-any.whl |
Total release size: 85.4 kB
Release files / doublef-0.2.5.tar.gz
| Download URL | doublef-0.2.5.tar.gz |
|---|---|
| Size | 42.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0494729dec765f283019e5dd1fb80049e87dda2f8e28f8268c97eed215516fba
|
|
BLAKE2b-256 checksum How to use checksums |
eb0266598d3020767e43dc0795e448c66bf63af54eedb4c98885839937e09cf1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.0
|
Release files / doublef-0.2.5-py3-none-any.whl
| Download URL | doublef-0.2.5-py3-none-any.whl |
|---|---|
| Size | 43.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1dee8c53f042c1e247cdf2ec97f86d4a658d174f9a9561df0c1afd0f679c38f8
|
|
BLAKE2b-256 checksum How to use checksums |
a6632ce9841bb9db435aa3d1f7dd8ec8a47ce3290bf769341425188f910c0414
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.0
|
Security for doublef 0.2.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.