https://github.com/aaspip/pyekfmm
A python package for 3D fast-marching-based traveltime calculation and its applications in seismology
https://github.com/aaspip/pyekfmm
Last synced: 22 days ago
JSON representation
A python package for 3D fast-marching-based traveltime calculation and its applications in seismology
- Host: GitHub
- URL: https://github.com/aaspip/pyekfmm
- Owner: aaspip
- License: gpl-3.0
- Created: 2023-02-14T21:20:22.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-23T02:51:10.000Z (12 months ago)
- Last Synced: 2024-10-07T02:46:19.873Z (7 months ago)
- Language: C
- Size: 130 KB
- Stars: 48
- Watchers: 1
- Forks: 11
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-geophysics - `pyekfmm` - marching-based traveltime calculation and its applications in seismology. | [](https://github.com/aaspip/pyekfmm/stargazers) | (Software and Tools)
README
**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 versiongit 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
-----------
## Verified runnable OS
Mac OS, Linux, Windows (need Microsoft C++ Build Tools)-----------
## 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 athttps://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
[email protected]-----------
## 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](https://github.com/aaspip/pyekfmm/blob/main/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](https://github.com/aaspip/pyekfmm/blob/main/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](https://github.com/aaspip/pyekfmm/blob/main/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](https://github.com/aaspip/pyekfmm/blob/main/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](https://github.com/aaspip/pyekfmm/blob/main/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.# 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](https://github.com/aaspip/pyekfmm/blob/main/demos/test_pyekfmm_fig2.py)DEM11
The following figure shows an example of traveltime calculation comparison between Pyekfmm and skfmm (scikit-fmm)
Generated by [demos/test_pyekfmm_fig1.py](https://github.com/aaspip/pyekfmm/blob/main/demos/test_pyekfmm_fig1.py)DEM12
The following figure shows an example of computing traveltime, takeoff angle (dip and azimuth)
Generated by [demos/test_pyekfmm_takeoff_dip_and_azim.py](https://github.com/aaspip/pyekfmm/blob/main/demos/test_pyekfmm_takeoff_dip_and_azim.py)DEM13
The following figure shows an example of computing rays in models with different sizes
Generated by [demos/test_pyekfmm_raytracing3d.py](https://github.com/aaspip/pyekfmm/blob/main/demos/test_pyekfmm_raytracing3d.py)DEM14
The following figure shows an example of computing reciprocal rays
Generated by [demos/test_pyekfmm_raytracing3d_reciprocal.py](https://github.com/aaspip/pyekfmm/blob/main/demos/test_pyekfmm_raytracing3d_reciprocal.py)DEM15
The following figure shows an example of benchmarking Pyekfmm with bh_tomo package
Generated by [demos/test_pyekfmm_raytracing2d_benchmarkWITHbhtomo.py](https://github.com/aaspip/pyekfmm/blob/main/demos/test_pyekfmm_raytracing2d_benchmarkWITHbhtomo.py)