Fast Marching Method for Traveltime Calculation


Keywords
seismology, exploration, array, traveltime, ray, tracing, earthquake, location, relocation, surface, wave, tomography, body
License
GPL-3.0
Install
pip install pyekfmm==0.0.8.7

Documentation

Pyekfmm

Description

Pyekfmm is python package for 3D fast-marching-based traveltime calculation and its applications in seismology. The initial version of this package was held at https://github.com/chenyk1990/pyekfmm, which is no longer maintained.

Reference

Chen Y., Chen, Y.F., Fomel, S., Savvaidis, A., Saad, O.M., Oboue, Y.A.S.I. (2023). A python package for 3D fast-marching-based traveltime calculation and its applications in seismology, Seismological Research Letters, 94, 2050-2059.

BibTeX:

@article{pyekfmm,
  title={Pyekfmm: a python package for 3D fast-marching-based traveltime calculation and its applications in seismology},
  author={Yangkang Chen and Yunfeng Chen and Sergey Fomel and Alexandros Savvaidis and Omar M. Saad and Yapo Abol\'{e} Serge Innocent Obou\'{e}},
  journal={Seismological Research Letters},
  volume={94},
  number={1},
  issue={1},
  pages={2050-2059},
  year={2023}
}

Copyright

pyekfmm developing team, 2021-present

License

GNU General Public License, Version 3
(http://www.gnu.org/copyleft/gpl.html)   

Install

Using the latest version

git clone https://github.com/aaspip/pyekfmm
cd pyekfmm
pip install -v -e .

or using Pypi

pip install pyekfmm

Examples

The "demo" directory contains all runable scripts to demonstrate different applications of pyekfmm. 

Notebook tutorials

Some notebook tutorials are stored separately to ensure the minimal size of the pyekfmm package. They can be found at

https://github.com/aaspip/notebook/blob/main/pyekfmm

Dependence Packages

  • scipy
  • numpy
  • matplotlib

Development

The development team welcomes voluntary contributions from any open-source enthusiast. 
If you want to make contribution to this project, feel free to contact the development team. 

Contact

Regarding any questions, bugs, developments, collaborations, please contact  
Yangkang Chen
chenyk2016@gmail.com

Gallery

The gallery figures of the pyekfmm package can be found at https://github.com/aaspip/gallery/tree/main/pyekfmm Each figure in the gallery directory corresponds to a DEMO script in the "demo" directory with the exactly the same file name. These gallery figures are also presented below.

DEMO1 The following figure shows an example of traveltime calculation for 2D isotropic media (a) and anisotropic media (b). Generated by demos/test_pyekfmm_fig1.py DEMO1

DEMO2 The following figure shows an example of traveltime calculation for 3D isotropic media (a) and anisotropic media (b). Generated by demos/test_pyekfmm_fig2.py DEMO2

DEMO3 The following figure shows an example of traveltime calculation for 2D heterogeneous isotropic and anisotropic media. (a) Vertical velocity model. (b) Horizontal velocity model. (c) Anisotropic parameter η model. (d) Traveltime table in isotropic media. (e) Traveltime table in anisotropic media. Generated by demos/test_pyekfmm_fig3.py DEMO3

DEMO4 The following figure shows an ray tracing example in 2D (a) and 3D (b) media with vertically increasing velocities. Generated by demos/test_pyekfmm_fig4.py DEMO4

DEMO5 The following figure shows an example of traveltime calculation for the global earth. Generated by demos/test_pyekfmm_fig5.py DEMO5

DEMO6 The following figure shows a location example and comparison with the NonLinLoc (NLL) result. DEMO6

DEMO7 The following figure shows a relocation example of the Spanish Springs, Nevada earthquake sequence. DEMO7

DEMO8 The following figure shows a surface-wave tomography test. (a) Ray path between a pair of virtual source (red star) and station (blue triangle). The background is the 5 sec group velocities of the Australian continent from ambient noise imaging. (b) Travel time field. (c) Ray paths of all 25,899 pairs. (d)-(f) The same as (a)-(c) but for the initial model with a constant velocity. DEMO8

DEMO9 The following figure shows the traveltime misfit in the surface-wave tomography test. (a) Group velocities inverted from the travel time residuals using the kernel constructed from the initial model. (b) Travel time misfits estimated from the initial and final models. DEMO9

Below are new examples in addition to the results in the original paper

DEM10 The following figure shows an example of traveltime calculation of two shots for 3D isotropic media Generated by demos/test_pyekfmm_fig2-multishots.py DEMO2