Download
The input files used in the code below can be downloaded here. The DATA
folder contains two sub-folders:
DAT
folder containing files with.dat
extensionsMAT
folder containing files with.mat
extensions
The code below uses files from the MAT
folder. The files in the DAT
folder are the original data provided by the authors.
Note: Users of the Python code below do not need to run the data_preparation()
function unless they want to work with .npy
files. data_preparation()
function load the .dat
files in DAT
, reshape appropriately, and save to .mat
and .npy
format.
Abstract
MarchenCode contains Python code to compute the Green’s functions from single-sided surface reflectivity data. Learners will also find code to perform Marchenko-based imaging using decomposed Green’s functions (upgoing). I embarked on this project in an effort to understand the Marchenko method. For learners proficient in MATLAB, you can download the original version of the code in MATLAB here by Angus Lomas and Andrew Curtis
Figure 1: Input Shot Gather
Figure 2: Focusing Functions (Initial and After 5 Iterations)
Figure 3: Estimated Green’s Function
Figure 4: Marchenko Imaging
A look at the output from the tqdm (taqaddum, which mean progress in arabic) progress bar 132/132 [36:28:28<00:00, 994.76s/it]
indicates:
There are 132 iterations..
Total Runtime: 36 hours, 28 minutes, and 28 seconds (extremely slow).
Per-Iteration Time: ~994.76 seconds (16.6 min) per point, indicating inefficiency.
The progress bar reveals the computation is super slow
. It should be noted that the imaging grid does not include all the full coordinates. The imaging grid ranges from 400m - 2500m (x position) and 200m - 1600m (z position) at 16m spacing. So, interested learners should consider improving the performance of the code significantly.
Key Reference
Lomas, Angus, and Andrew Curtis
. “An introduction to Marchenko methods for imaging.” Geophysics 84, no. 2 (2019): F35-F45.