Skip to content

DIG-Kaust/RefrTomo

Repository files navigation

HTracker

This library contains all the required building blocks to peform 2D turning ray tomography and associated examples codes.

Project structure

This repository is organized as follows:

  • 📂 refrtomo: python library containing routines for 2D turning ray tomography;
  • 📂 data: folder containing data
  • 📂 notebooks: set of jupyter notebooks reproducing the experiments in the paper (see below for more details);

Notebooks

The following notebooks are provided:

  • 📙 Rayshooting_straight.ipynb: notebook testing raytracer and tomographic matrix engine with straight rays;
  • 📙 Rayshooting.ipynb: notebook testing raytracer and tomographic matrix engine with turning rays;
  • 📙 Rayshooting_Stryde.ipynb: notebook testing raytracer and tomographic matrix engine with small refraction dataset acquired with Stryde sensors in KAUST;
  • 📙 RefrTomo.ipynb: notebook performing refraction tomographic of a portion of synthetic Marmousi model;
  • 📙 RefrTomo_minimal.ipynb: notebook performing refraction tomographic of a portion of synthetic Marmousi model (minimal number of steps);
  • 📙 FirstArrivalPicking_Stryde.ipynb: notebook performing automated first arrival picking of a small refraction dataset acquired with Stryde sensors in KAUST;
  • 📙 RefrTomo_Stryde.ipynb: notebook performing refraction tomographic of a small refraction dataset acquired with Stryde sensors in KAUST.
  • 📙 RefrTomo_Strydeminimal.ipynb: notebook performing refraction tomographic of a small refraction dataset acquired with Stryde sensors in KAUST (minimal number of steps).

Getting started 👾 🤖

To ensure reproducibility of the results, we suggest using the environment.yml file when creating an environment.

Simply run:

./install_env.sh

It will take some time, if at the end you see the word Done! on your terminal you are ready to go. After that you can simply install your package:

pip install .

or in developer mode:

pip install -e .

Remember to always activate the environment by typing:

conda activate refrtomo

Improvements ☝️

  • Create routine that takes two rays reaching the surface and recursively interpolates a ray in the middle until a given distance from a surface point of interest (to be used to take the two closest rays on either side of a receiver, which are however above the allowed threshold, and find one in the middle below this threshold);

  • Finalize inversion routines using scipy.optimize.least_squares (currently the Levenberg-Marquardt cannot be used with non-dense Jacobians and the trust-region methods do not seem to converge as nicely as our Gauss-Newton);

  • Add directional smoothing constraints.

About

2D Turning Ray Tomography

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages