pylops.waveeqprocessing.Deghosting¶

pylops.waveeqprocessing.
Deghosting
(p, nt, nr, dt, dr, vel, zrec, pd=None, win=None, npad=(11, 11), ntaper=(11, 11), restriction=None, sptransf=None, solver=<function lsqr>, dottest=False, dtype='complex128', **kwargs_solver)[source]¶ Wavefield deghosting.
Apply seismic wavefield decomposition from singlecomponent (pressure) data. This process is also generally referred to as modelbased deghosting.
Parameters:  p :
np.ndarray
Pressure data of of size \(\lbrack n_{r_x} (\times n_{r_y}) \times n_t \rbrack\) (or \(\lbrack n_{r_{x,sub}} (\times n_{r_{y,sub}}) \times n_t \rbrack\) in case a
restriction
operator is provided. Note that \(n_{r_{x,sub}}\) (and \(n_{r_{y,sub}}\)) must agree with the size of the output of this operator) nt :
int
Number of samples along the time axis
 nr :
int
ortuple
Number of samples along the receiver axis (or axes)
 dt :
float
Sampling along the time axis
 dr :
float
ortuple
Sampling along the receiver array of the separated pressure consituents
 vel :
float
Velocity along the receiver array (must be constant)
 zrec :
float
Depth of receiver array
 pd :
np.ndarray
, optional Direct arrival to be subtracted from
p
 win :
np.ndarray
, optional Time window to be applied to
p
to remove the direct arrival (ifpd=None
) ntaper :
float
ortuple
, optional Number of samples of taper applied to propagator to avoid edge effects
 npad :
float
ortuple
, optional Number of samples of padding applied to propagator to avoid edge effects angle
 restriction :
pylops.LinearOperator
, optional Restriction operator
 sptransf :
pylops.LinearOperator
, optional Sparsifying operator
 solver :
float
, optional Function handle of solver to be used if
kind='inverse'
 dottest :
bool
, optional Apply dottest
 dtype :
str
, optional Type of elements in input array. If
None
, directly inferred fromp
 **kwargs_solver
Arbitrary keyword arguments for chosen
solver
Returns:  pup :
np.ndarray
Upgoing wavefield
 pdown :
np.ndarray
Downgoing wavefield
Notes
Up and downgoing components of seismic data (\(p^(x, t)\) and \(p^+(x, t)\)) can be estimated from singlecomponent data (\(p(x, t)\)) using a ghost model.
The basic idea is that of using a oneway propagator in the fk domain (also referred to as ghost model) to predict the downgoing field from the upgoing one (excluded the direct arrival and its source ghost referred here to as \(p_d(x, t)\)):
\[p^+  p_d = e^{j k_z 2 z_{rec}} p^\]where \(k_z\) is the vertical wavenumber and \(z_{rec}\) is the depth of the array of receivers
In a matrix form we can thus write the total wavefield as:
\[\mathbf{p}  \mathbf{p_d} = (\mathbf{I} + \Phi) \mathbf{p}^\]where \(\Phi\) is oneway propagator implemented via the
pylops.waveeqprocessing.PhaseShift
operator. p :