ImageGather.jl documentation
ImageGather.jl provides computational QC tools for wave-equation based inversion. Namely we provides two main widely used workflows:
- Surface offset gathers (also called surface common image gather). Surface gather compute images of (RTMs) for different offset to verify the accuracy of the background velocity. The method we implement here is based on the double-rtm method (Giboli et al., 2012) that allows the computation of the gather with two RTMs only instead of one per offset (or offset bin).
- Subsurface offset gathers (also called subsurface common image gather) (Dafni and Symes, 2018).
Surface offset gathers
ImageGather.surface_gather
— Functionsurface_gather(model, q, data; offsets=nothing, options=Options())
Compute the surface offset gathers volume (nx (X ny) X nz X no) for via the double rtm method whith no
offsets.
Parameters
model
: JUDI Model structure.q
: Source, judiVector.data
: Obeserved data, judiVector.offsets
: List of offsets to compute the gather at. Optional (defaults to 0:10*model.d:model.extent)options
: JUDI Options structure.
ImageGather.double_rtm_cig
— Functiondouble_rtm_cig(model, q, data, offsets, options)
Compute the single shot contribution to the surface offset gather via double rtm. This single source contribution consists of the following steps:
- Mute direct arrival in the data.
- Compute standard RTM $R$.
- Compute the offset RTM $R_o$ for the the weighted data where each trace is weighted by its offset
(rec_x - src_x)
. - Compute the envelope $R_e = \mathcal{E}(R)$ and $R_{oe} = \mathcal{E}(R_o)$.
- Compute the offset map $\frac{R_e \odot R_{oe}}{R_e \odot R_e + \epsilon}$.
- Apply illumination correction and laplace filter $R_l = \mathcal{D} \Delta R$.
- Compute each offset contribution $\mathcal{I}[:, h] = R_l \odot \delta[ha - h]_{tol}$
delta_h
. - Return $\mathcal{I}$.
Subsurface offset gathers
ImageGather.judiExtendedJacobian
— TypeJ = judiExtendedJacobian(F, q, offsets; options::JUDIOptions, omni=false, dims=nothing)
Extended jacobian (extended Born modeling operator) for subsurface horsizontal offsets offsets
. Its adjoint comput the subsurface common offset volume. In succint way, the extened born modeling Operator can summarized in a linear algebra frmaework as:
Options structure for seismic modeling.
omni
: If true
, the extended jacobian will be computed for all dimensions. dims
: If omni
is false
, the extended jacobian will be computed for the dimension(s) specified in dims
.
Utility functions
ImageGather.delta_h
— Methoddelta_h(ha, h, tol)
Compute the binary mask where ha
is within tol
of h
.
ImageGather.envelope
— Methodenvelope(x)
Envelope of a vector or a 1D vector (see DSP hilbert
)
ImageGather.envelope
— Methodenvelope(x)
Envelope of a vector or a 2D matrix. The envelope over the first dimension is taken for a 2D matrix (see DSP hilbert
)
ImageGather.laplacian
— Methodlaplacian(image; hx=1, hy=1)
2D laplacian of an image with grid spacings (hx, hy)
ImageGather.mute!
— Methodmute!(shot, offsets;vp=1500, t0=1/10, dt=0.004)
In place direct wave muting of a shot record with water sound speed vp
, time sampling dt
and firing time t0
.
ImageGather.mute
— Methodmute(shot, offsets;vp=1500, t0=1/10, dt=0.004)
Direct wave muting of a shot record with water sound speed vp
, time sampling dt
and firing time t0
.
ImageGather.mv_avg_2d
— Methodmv_avg_2d(x; k=5)
2D moving average with a square window of width k
ImageGather.offset_map
— Methodoffset_map(rtm, rtmo; scale=0)
Return the regularized least-square division of rtm and rtmo. The regularization consists of the envelope and moving average followed by the least-square division surface_gather
References
- Dafni, R. and Symes, W. W. (2018). Generalized reflection tomography formulation based on subsurface offset extended imaging. Geophysical Journal International 216, 1025–1042.
- Giboli, M.; Baina, R.; Nicoletis, L. and Duquet, B. (2012). Reverse Time Migration surface offset gathers part 1: a new method to produce ‘classical’ common image gathers. SEG Technical Program Expanded Abstracts 2012, 1–5, arXiv:https://library.seg.org/doi/pdf/10.1190/segam2012-1007.1.