fteikpy

Accurate Eikonal solver for Python

https://github.com/keurfonluu/fteikpy

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.4%) to scientific vocabulary

Keywords

eikonal-solver seismology traveltime
Last synced: 6 months ago · JSON representation ·

Repository

Accurate Eikonal solver for Python

Basic Info
Statistics
  • Stars: 66
  • Watchers: 8
  • Forks: 18
  • Open Issues: 1
  • Releases: 13
Topics
eikonal-solver seismology traveltime
Created almost 9 years ago · Last pushed over 3 years ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.rst

fteikpy
=======

|License| |Stars| |Pyversions| |Version| |Downloads| |Code style: black| |Codacy Badge| |Codecov| |Build| |Docs| |DOI|

**fteikpy** is a Python library that computes accurate first arrival traveltimes in 2D and 3D heterogeneous isotropic velocity models. The algorithm handles properly the curvature of wavefronts close to the source which can be placed without any problem between grid points.

The code is based on `FTeik `__ implemented in Python and compiled `just-in-time `__ with `numba `__.

.. figure:: https://raw.githubusercontent.com/keurfonluu/fteikpy/master/.github/sample.gif
   :alt: sample-marmousi
   :width: 100%
   :align: center

   Computation of traveltimes and ray-tracing on smoothed Marmousi velocity model.

Features
--------

Forward modeling:

-  Compute traveltimes in 2D and 3D Cartesian grids with the possibility to use a different grid spacing in Z, X and Y directions,
-  Compute traveltime gradients at runtime or a posteriori,
-  A posteriori 2D and 3D ray-tracing.

Parallel:

-  Traveltime grids are seemlessly computed in parallel for different sources,
-  Raypaths from a given source to different locations are also evaluated in parallel.

Installation
------------

The recommended way to install **fteikpy** and all its dependencies is through the Python Package Index:

.. code:: bash

   pip install fteikpy --user

Otherwise, clone and extract the package, then run from the package location:

.. code:: bash

   pip install . --user

To test the integrity of the installed package, check out this repository and run:

.. code:: bash

   pytest

Documentation
-------------

Refer to the online `documentation `__ for detailed description of the API and examples.

Alternatively, the documentation can be built using `Sphinx `__:

.. code:: bash

   pip install -r doc/requirements.txt
   sphinx-build -b html doc/source doc/build

Usage
-----

The following example computes the traveltime grid in a 3D homogeneous velocity model:

.. code-block:: python

   import numpy as np
   from fteikpy import Eikonal3D

   # Velocity model
   velocity_model = np.ones((8, 8, 8))
   dz, dx, dy = 1.0, 1.0, 1.0

   # Solve Eikonal at source
   eik = Eikonal3D(velocity_model, gridsize=(dz, dx, dy))
   tt = eik.solve((0.0, 0.0, 0.0))

   # Get traveltime at specific grid point
   t1 = tt[0, 1, 2]

   # Or get traveltime at any point in the grid
   t2 = tt(np.random.rand(3) * 7.0)

Contributing
------------

Please refer to the `Contributing
Guidelines `__ to see how you can help. This project is released with a `Code of Conduct `__ which you agree to abide by when contributing.

.. |License| image:: https://img.shields.io/github/license/keurfonluu/fteikpy
   :target: https://github.com/keurfonluu/fteikpy/blob/master/LICENSE

.. |Stars| image:: https://img.shields.io/github/stars/keurfonluu/fteikpy?logo=github
   :target: https://github.com/keurfonluu/fteikpy

.. |Pyversions| image:: https://img.shields.io/pypi/pyversions/fteikpy.svg?style=flat
   :target: https://pypi.org/pypi/fteikpy/

.. |Version| image:: https://img.shields.io/pypi/v/fteikpy.svg?style=flat
   :target: https://pypi.org/project/fteikpy

.. |Downloads| image:: https://pepy.tech/badge/fteikpy
   :target: https://pepy.tech/project/fteikpy

.. |Code style: black| image:: https://img.shields.io/badge/code%20style-black-000000.svg?style=flat
   :target: https://github.com/psf/black

.. |Codacy Badge| image:: https://img.shields.io/codacy/grade/bec3d2ad6b8c45cf9bb0da110fe04838.svg?style=flat
   :target: https://www.codacy.com/gh/keurfonluu/fteikpy/dashboard?utm_source=github.com&utm_medium=referral&utm_content=keurfonluu/fteikpy&utm_campaign=Badge_Grade

.. |Codecov| image:: https://img.shields.io/codecov/c/github/keurfonluu/fteikpy.svg?style=flat
   :target: https://codecov.io/gh/keurfonluu/fteikpy

.. |DOI| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.4269352.svg?style=flat
   :target: https://doi.org/10.5281/zenodo.4269352

.. |Build| image:: https://img.shields.io/github/workflow/status/keurfonluu/fteikpy/Python%20package
   :target: https://github.com/keurfonluu/fteikpy

.. |Docs| image:: https://img.shields.io/github/workflow/status/keurfonluu/fteikpy/Build%20documentation?label=docs
   :target: https://keurfonluu.github.io/fteikpy/

Owner

  • Name: Keurfon Luu
  • Login: keurfonluu
  • Kind: user
  • Location: Wettingen, Switzerland
  • Company: INTERA Incorporated

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Luu"
  given-names: "Keurfon"
  orcid: "https://orcid.org/0000-0001-7927-0019"
title: "fteikpy: Accurate Eikonal solver for Python"
doi: 10.5281/zenodo.4269352
url: https://github.com/keurfonluu/fteikpy
license: BSD-3-Clause

GitHub Events

Total
  • Watch event: 5
Last Year
  • Watch event: 5

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 218
  • Total Committers: 1
  • Avg Commits per committer: 218.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Keurfon Luu k****u@o****m 218

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 10
  • Total pull requests: 16
  • Average time to close issues: 3 months
  • Average time to close pull requests: 17 minutes
  • Total issue authors: 6
  • Total pull request authors: 1
  • Average comments per issue: 5.0
  • Average comments per pull request: 0.38
  • Merged pull requests: 16
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • xichaoqiang (4)
  • David-zw (2)
  • yhu5945 (1)
  • maple-xc (1)
  • mathias-palm (1)
  • martijnende (1)
Pull Request Authors
  • keurfonluu (16)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 2,173 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 33
  • Total maintainers: 1
pypi.org: fteikpy

Accurate Eikonal solver for Python

  • Versions: 33
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 2,173 Last month
Rankings
Forks count: 8.9%
Stargazers count: 9.7%
Dependent packages count: 10.0%
Average: 12.7%
Downloads: 13.2%
Dependent repos count: 21.7%
Maintainers (1)
Last synced: 7 months ago

Dependencies

doc/requirements.txt pypi
  • matplotlib *
  • pybtex-apa-style *
  • pydata-sphinx-theme *
  • sphinx *
  • sphinx-argparse *
  • sphinx-gallery *
  • sphinxcontrib-bibtex *
requirements-dev.txt pypi
  • black * development
  • docformatter * development
  • invoke * development
  • isort * development
  • pytest * development
  • pytest-cov * development
.github/workflows/ci.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
.github/workflows/doc.yml actions
  • actions/setup-python v4 composite
  • nschloe/action-cached-lfs-checkout v1 composite
  • peaceiris/actions-gh-pages v3 composite
pyproject.toml pypi