pylops.waveeqprocessing.UpDownComposition3D(nt, nr, dt, dr, rho, vel, nffts=(None, None, None), critical=100.0, ntaper=10, scaling=1.0, backend='numpy', dtype='complex128')[source]

3D Up-down wavefield composition.

Apply multi-component seismic wavefield composition from its up- and down-going constituents. The input model required by the operator should be created by flattening the separated wavefields of size \(\lbrack n_{r_y} \times n_{r_x} \times n_t \rbrack\) concatenated along the first spatial axis.

Similarly, the data is also a flattened concatenation of pressure and vertical particle velocity wavefields.

nt : int

Number of samples along the time axis

nr : tuple

Number of samples along the receiver axes

dt : float

Sampling along the time axis

dr : tuple

Samplings along the receiver array

rho : float

Density \(\rho\) along the receiver array (must be constant)

vel : float

Velocity \(c\) along the receiver array (must be constant)

nffts : tuple, optional

Number of samples along the wavenumbers and frequency axes (for the wavenumbers axes the same order as nr and dr must be followed)

critical : float, optional

Percentage of angles to retain in obliquity factor. For example, if critical=100 only angles below the critical angle \(\sqrt{k_y^2 + k_x^2} < \frac{\omega}{c}\) will be retained

ntaper : float, optional

Number of samples of taper applied to obliquity factor around critical angle

scaling : float, optional

Scaling to apply to the operator (see Notes for more details)

backend : str, optional

Backend used for creation of obliquity factor operator (numpy or cupy)

dtype : str, optional

Type of elements in input array.

UDop : pylops.LinearOperator

Up-down wavefield composition operator

See also

2D Wavefield composition
Wavefield decomposition


Multi-component seismic data \(p(y, x, t)\) and \(v_z(y, x, t)\) can be synthesized in the frequency-wavenumber domain as the superposition of the up- and downgoing constituents of the pressure wavefield (\(p^-(y, x, t)\) and \(p^+(y, x, t)\)) as described pylops.waveeqprocessing.UpDownComposition2D.

Here the vertical wavenumber \(k_z\) is defined as \(k_z=\sqrt{\frac{\omega^2}{c^2} - k_y^2 - k_x^2}\).