pylops.waveeqprocessing.marchenko.directwave(wav, trav, nt, dt, nfft=None, dist=None, kind='2d', derivative=True)[source]#

Analytical direct wave in acoustic media

Compute the analytical acoustic 2d or 3d Green’s function in frequency domain given a wavelet wav, traveltime curve trav and distance dist (for 3d case only).


Wavelet in time domain to apply to direct arrival when created using trav. Phase will be discarded resulting in a zero-phase wavelet with same amplitude spectrum as provided by wav


Traveltime of first arrival from subsurface point to surface receivers of size \(\lbrack n_r \times 1 \rbrack\)

ntfloat, optional

Number of samples in time

dtfloat, optional

Sampling in time

nfftint, optional

Number of samples in fft time (if None, nfft=nt)

dist: :obj:`numpy.ndarray`

Distance between subsurface point to surface receivers of size \(\lbrack n_r \times 1 \rbrack\)

kindstr, optional

2-dimensional (2d) or 3-dimensional (3d)

derivativebool, optional

Apply time derivative (True) or not (False)


Direct arrival in time domain of size \(\lbrack n_t \times n_r \rbrack\)


The analytical Green’s function in 2D [1] is :

\[G^{2D}(\mathbf{r}) = -\frac{i}{4}H_0^{(1)}(k|\mathbf{r}|)\]

and in 3D [1] is:

\[G^{3D}(\mathbf{r}) = \frac{e^{-jk\mathbf{r}}}{4 \pi \mathbf{r}}\]

Note that these Green’s functions represent the acoustic response to a point source of volume injection. In case the response to a point source of volume injection rate is desired, a \(j\omega\) scaling (which is equivalent to applying a first derivative in time domain) must be applied. Here this is accomplished by setting derivative=True.


Snieder, R. “A Guided Tour of Mathematical Methods for the Physical Sciences”, Cambridge University Press, pp. 302, 2004.