pylops.waveeqprocessing.BlendingHalf¶
- pylops.waveeqprocessing.BlendingHalf(nt, nr, ns, dt, times, group_size, n_groups, nproc=1, dtype='float64', name='B', **kwargs_fft)[source]¶
Half blending operator
Blend seismic shot gathers in half blending mode based on pre-defined sequence of firing times. This type of blending assumes that there are multiple sources at different spatial locations firing at the same time. This means that the blended data only partially overlaps in space. The size of input model vector must be \(n_s \times n_r \times n_t\), whilst the size of the data vector is \(n_{groups} \times n_r \times n_{t,tot}\).
- Parameters:
- nt
int Number of time samples
- nr
int Number of receivers
- ns
int Number of sources. Equal to \(group_{size} \cdot n_{groups}\)
- dt
float Time sampling in seconds
- times
numpy.ndarray Absolute ignition times for each source. This should have dimensions \(group_{size} \times n_{groups}\), where each column contains the firing times for every group.
- group_size
int The number of sources per group
- n_groups
int The number of groups
- nproc
int, optional Number of processors used when applying operator
- dtype
str, optional Operator dtype
- name
str, optional Name of operator (to be used by
pylops.utils.describe.describe)- **kwargs_fft
Added in version 2.6.0.
Arbitrary keyword arguments to be passed to the Shift operator
- nt
- Returns:
- Bop
pylops.LinearOperator Blending operator
- Bop
Notes
Simultaneous shooting or blending is the process of acquiring seismic data firing consecutive sources at short time intervals (shorter than the time requires for all significant waves to come back from the Earth interior).
Half blending refers to an acquisition scenario where two or more vessels, each with a source are fired at short time differences. The same experiment is repeated \(n_{groups}\) times to create \(n_{groups}\) blended recordings. For the case of 2 sources and an overall number of \(N=2*n_{groups}\) shots
\[\begin{split}\Phi = \begin{bmatrix} \Phi_1 & \mathbf{0} & \mathbf{0} & ... & \Phi_{N/2} & \mathbf{0} & \mathbf{0} & \\ \mathbf{0} & \Phi_2 & \mathbf{0} & & \mathbf{0} & \Phi_{N/2+1} & \mathbf{0} \\ ... & ... & ... & ... & ... & ... & ... \\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \Phi_{N/2-1} & \mathbf{0} & \mathbf{0} & \Phi_{N} \\ \end{bmatrix}\end{split}\]where each \(\Phi_i\) operator applies a time-shift equal to the absolute ignition time provided in the variable
times.