All Projects → keurfonluu → fteikpy

keurfonluu / fteikpy

Licence: BSD-3-Clause license
Accurate Eikonal solver for Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to fteikpy

PH5
Library of PH5 clients, apis, and utilities
Stars: ✭ 14 (-58.82%)
Mutual labels:  seismology
nllgrid
Python class for reading and writing NLLoc grid files.
Stars: ✭ 23 (-32.35%)
Mutual labels:  seismology
seisman.info.posts
SeisMan博客的内容部分,引擎部分见 https://github.com/seisman/blog.seisman.info
Stars: ✭ 50 (+47.06%)
Mutual labels:  seismology
FastPCC
Compute interstation correlations of seismic ambient noise, including fast implementations of the standard, 1-bit and phase cross-correlations.
Stars: ✭ 24 (-29.41%)
Mutual labels:  seismology
SeisNoise.jl
Ambient Noise Cross-Correlation in Julia
Stars: ✭ 43 (+26.47%)
Mutual labels:  seismology
MTfit
MTfit code for Bayesian Moment Tensor Fitting
Stars: ✭ 61 (+79.41%)
Mutual labels:  seismology
etas
calibrate ETAS, simulate using ETAS, estimate completeness magnitude & magnitude frequency distribution
Stars: ✭ 37 (+8.82%)
Mutual labels:  seismology
mtuq
moment tensor uncertainty quantification
Stars: ✭ 40 (+17.65%)
Mutual labels:  seismology
sl2influxdb
Fetch seedlink data and store them into InfluxDB
Stars: ✭ 28 (-17.65%)
Mutual labels:  seismology
MuRAT
A multi-resolution seismic attenuation tomography code - currently in its 3.0 release
Stars: ✭ 24 (-29.41%)
Mutual labels:  seismology
OrientPy
Seismic station orientation tools
Stars: ✭ 29 (-14.71%)
Mutual labels:  seismology
Lazylyst
Lazylyst is a GUI created for time series review, using a flexible framework for new workflows
Stars: ✭ 16 (-52.94%)
Mutual labels:  seismology
zmap7
ZMAP Seismology Software. V 7.x has been updated to MATLAB R2018a.
Stars: ✭ 60 (+76.47%)
Mutual labels:  seismology
Gisola
Gisola: A High Performance Computing application for real-time Moment Tensor inversion
Stars: ✭ 35 (+2.94%)
Mutual labels:  seismology
Telewavesim
Teleseismic body wave modeling through stacks of (submarine/anisotropic) layers
Stars: ✭ 41 (+20.59%)
Mutual labels:  seismology
sonify
Sonification of seismic and infrasound signals
Stars: ✭ 26 (-23.53%)
Mutual labels:  seismology
bh tomo
A Matlab borehole radar/seismic tomography package
Stars: ✭ 17 (-50%)
Mutual labels:  traveltime
seispy
Python module of seismology and receiver functions
Stars: ✭ 50 (+47.06%)
Mutual labels:  seismology
AIPycker
Pycker provides user-friendly routines to visualize seismic traces and pick first break arrival times.
Stars: ✭ 23 (-32.35%)
Mutual labels:  traveltime
disba
Numba-accelerated computation of surface wave dispersion
Stars: ✭ 66 (+94.12%)
Mutual labels:  seismology

fteikpy

License Stars Pyversions Version Downloads Code style: black Codacy Badge Codecov Build Travis 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.

sample-marmousi

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:

pip install fteikpy --user

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

pip install . --user

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

pytest

Documentation

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

Alternatively, the documentation can be built using Sphinx:

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:

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].