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.
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}
}
pyekfmm developing team, 2021-present
GNU General Public License, Version 3
(http://www.gnu.org/copyleft/gpl.html)
Using the latest version
git clone https://github.com/aaspip/pyekfmm
cd pyekfmm
pip install -v -e .
or using Pypi
pip install pyekfmm
or (recommended, because we update very fast)
pip install git+https://github.com/aaspip/pyekfmm
Mac OS, Linux, Windows (need Microsoft C++ Build Tools)
The "demo" directory contains all runable scripts to demonstrate different applications of pyekfmm.
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
- scipy
- numpy
- matplotlib
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.
Regarding any questions, bugs, developments, collaborations, please contact
Yangkang Chen
[email protected]
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
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
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
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
DEMO5 The following figure shows an example of traveltime calculation for the global earth. Generated by demos/test_pyekfmm_fig5.py
DEMO6 The following figure shows a location example and comparison with the NonLinLoc (NLL) result.
DEMO7 The following figure shows a relocation example of the Spanish Springs, Nevada earthquake sequence.
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.
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.
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