Experimental multiple remove

<< Click to Display Table of Contents >>

Navigation:  Multiples >

Experimental multiple remove

 

Description

Experimental multiple remove is a research-grade module for suppressing water-bottom and interbed multiples from pre-stack seismic gathers. It implements a model-based linear inversion that assumes multiples are formed by summing delayed, scaled copies of the primary wavefield. Two complementary workflows are offered: a coefficient optimisation mode for determining the best amplitude decay factor for the multiple model, and a full inversion (Solve) mode that removes multiples from real data using a tau-p domain least-squares operator.

In Find optimum mode the module generates a synthetic spike reflectivity sequence (or uses a connected real gather trace), convolves it with a Ricker wavelet, adds a user-specified number of multiple events, and then sweeps a grid of amplitude coefficients to find which value minimises the least-squares residual between the recovered primaries and the known ground truth. This helps calibrate the Amplitude coefficient parameter before applying the module to field data.

In Solve mode the module applies an FK-domain multiple removal operator to the full input gather using a least-squares conjugate-gradient solver (LSQR). The operator models the multiple wavefield from the primary model using the specified water velocity, amplitude decay, and multiple order, then inverts to recover primaries. The module accepts common-shot or common-midpoint gathers and determines the acquisition geometry automatically from trace headers. Because this module is experimental, results should be reviewed carefully before use in production workflows.

Input data

Input DataItem

Standard data routing container inherited from the sequence processing framework. Carries the SEG-Y data handle, trace headers, and sorted gather index used to feed the input gather into this module. This item is hidden in the module interface; connect data through the Input gather connector instead.

Input SEG-Y data handle

Hidden connector. Provides read/write access to the underlying SEG-Y file. Managed automatically by the sequence processing framework.

Input trace headers

Hidden connector. Carries trace header values (source and receiver coordinates, offsets, etc.) used by the Solve mode to determine gather geometry and sea-floor depth. Managed automatically by the sequence processing framework.

Input gather

The primary input gather containing the seismic data with multiples to be removed. In Solve mode this gather is required and must contain source and receiver coordinate headers so that the module can identify whether the input is a common-shot or CMP gather. In Find optimum mode this connector is optional when Generate synthetic is enabled; if synthetic generation is disabled, the first trace of the connected gather is used as the contaminated input trace.

Input stack line

Hidden connector. Not used by this module. Reserved for sequence framework routing.

Input crooked line

Hidden connector. Not used by this module. Reserved for sequence framework routing.

Input bin grid

Hidden connector. Not used by this module. Reserved for sequence framework routing.

Input sorted headers

Hidden connector. Carries the gather sort index (e.g., CMP, shot). Managed automatically by the sequence processing framework.

Parameters

Work mode { Find optimum, Solve }

Selects the operating mode of the module. Default: Find optimum.

Find optimum — sweeps a grid of amplitude coefficients to determine the value that best separates primaries from multiples. Use this mode first, on synthetic data or a representative single-trace test, to calibrate the Amplitude coefficient before processing a full dataset. In this mode the parameters under Synthetic params and Coefficient grid are active.

Solve — applies the full multiple removal inversion to every gather connected to the input. In this mode the parameters under Radon params, Solver params, and Water velocity are active.

Synthetic params

Parameter group that controls the synthetic test trace generated in Find optimum mode. Visible only when Work mode is set to Find optimum.

Generate synthetic

When enabled (default: on), the module creates a random spike reflectivity series, convolves it with a Ricker wavelet, and adds synthetic multiple events to produce a fully controlled test trace. The true primary is known exactly, so the error at each coefficient grid step is measured rigorously.

When disabled, the first trace from the connected Input gather is used as the input contaminated trace. In this case there is no known ground truth, so the convergence chart shows relative rather than absolute error. Connect a real gather and disable this flag to test the coefficient grid on field data.

Number of samples

Length of the synthetic trace in samples. Default: 1000 samples, minimum 1. The synthetic trace is generated at a fixed sample interval of 2 ms, so 1000 samples corresponds to a 2-second record. Increase this value to test the coefficient grid on longer records, or reduce it to speed up the grid search. Active only when Generate synthetic is enabled.

Wavelet main frequency

Dominant (peak) frequency of the Ricker wavelet used to generate the synthetic primary trace. Units: Hz. Default: 40 Hz, minimum 1 Hz. Set this value to match the typical bandwidth of your field data so that the synthetic test is representative of the real problem. Higher frequencies produce a shorter, sharper wavelet, which makes it easier to resolve closely-spaced multiples.

Number of spikes

Number of unit-amplitude reflection spikes placed at random positions in the synthetic primary trace before wavelet convolution. Default: 30, minimum 1. A sparse reflectivity (fewer spikes relative to trace length) represents a geologically simple section and makes the inversion easier to converge. Use a higher number to test robustness when the section is complex.

Number of multiples

Number of multiple reverberations to add to the synthetic primary when generating the contaminated test trace. Default: 1, minimum 0. Each multiple is a time-shifted, amplitude-scaled copy of the primary, with the delay given by Multiple lag and the amplitude decay by Amplitude coefficient. Set to 0 to test the module on a multiple-free trace (should recover the original with no change).

Random seed (-1 for time seed)

Seed value for the random number generator used to place spikes in the synthetic trace. Default: -1 (use the current clock time, producing a different trace on every run). Set to any non-negative integer to obtain a reproducible synthetic trace, which is useful when comparing parameter settings across multiple test runs.

Coefficient grid

Parameter group defining the search grid of amplitude coefficient values tested in Find optimum mode. The module solves the inversion at each grid step and records the residual error. The step with the lowest error indicates the best amplitude coefficient to use in the Solve mode. Visible only when Work mode is set to Find optimum.

Min amplitude

Starting value of the amplitude coefficient search grid. Default: 0, valid range 0–1. A value of 0 means no amplitude decay between successive multiples (all multiples have equal amplitude to the primary), while a value of 1 corresponds to the maximum physically meaningful decay.

Max amplitude

Ending value of the amplitude coefficient search grid. Default: 1, valid range 0–1. The grid runs from Min amplitude to Max amplitude in steps of Step amplitude. Set Min and Max to a narrow range around a known good value to perform a fine-resolution search.

Step amplitude

Increment between successive amplitude coefficient values in the search grid. Default: 0.05, minimum greater than 0. With the default Min/Max/Step settings (0 to 1 in steps of 0.05) the grid contains 21 steps. Smaller steps give finer resolution but increase computation time proportionally.

Multiple lag

Time delay between successive multiple arrivals, expressed in samples. Default: 100 samples, minimum 1. At the standard 2-ms sample interval, 100 samples corresponds to a 200-ms water-bottom two-way time. Set this value to the two-way travel time through the water column (in samples at the trace sample rate) to model water-bottom multiples accurately. Used in both Find optimum and Solve modes.

Assumed number of multiples

The number of multiple orders that the inversion model attempts to remove. Default: 1, minimum 0. Setting this to 1 removes only the first-order multiple (one round trip through the water column); setting it to 2 removes both first- and second-order multiples, and so on. Higher values increase model complexity and may require more solver iterations to converge. Used in both Find optimum and Solve modes.

Amplitude coefficient

Multiplicative amplitude decay factor applied to each successive multiple order. Default: 0.5, valid range 0.001–0.999. The n-th order multiple is scaled by this coefficient raised to the power n. A coefficient of 0.5 means the first multiple has half the amplitude of the primary, the second has one quarter, and so on. Use the Find optimum mode to determine the best value for your dataset before running Solve. Used in both Find optimum and Solve modes.

Water velocity

Propagation velocity of seismic waves in the water column. Units: m/s. Default: 1500 m/s, minimum 300 m/s. Used in Solve mode to define the maximum rayparameter extent of the tau-p transform and to estimate sea-floor depth from trace geometry. Typical values are 1480–1520 m/s for marine surveys; use a value appropriate for the water temperature and salinity of your acquisition area. Visible only when Work mode is set to Solve.

Radon params

Parameter group controlling the tau-p (linear Radon) transform used inside the Solve mode inversion operator. The tau-p domain is used to separate primaries (low slowness) from multiples (higher slowness). Visible only when Work mode is set to Solve.

Minimum frequency

Lower frequency limit of the tau-p transform. Units: Hz. Default: 0 Hz, minimum 0. Frequencies below this value are excluded from the transform and left unchanged in the output. Set this to a value just above the low-end noise floor of your data (e.g., 3–5 Hz) to avoid distorting very low-frequency content.

Maximum frequency

Upper frequency limit of the tau-p transform. Units: Hz. Default: 120 Hz, minimum 0. Frequencies above this value are excluded from the operator. Set this to just above the highest signal frequency present in your data to avoid processing noise. Values beyond the Nyquist frequency of the data are ignored.

Delta P

Slowness (rayparameter) sampling interval of the tau-p transform. Units: s/m. Default: 0.004 s/m, minimum 0.0001 s/m. Smaller values produce a finer p-axis sampling, which improves the separation of events with similar moveout but increases memory use and computation time. The p-axis range is set automatically from the gather offset range and the Water velocity.

Radon prewhitening

Prewhitening (regularisation) factor added to the diagonal of the Radon transform operator to stabilise the inversion against noise. Units: fraction (0–1). Default: 0.05 (5%), minimum 0. Higher values dampen the solution more aggressively, reducing artefacts in low-fold areas but also reducing the amplitude of weak events. A value of 0.05 is a reasonable starting point for most marine datasets.

Solver params

Parameter group controlling the iterative least-squares solver used in Solve mode. The solver minimises the difference between the forward-modelled multiple wavefield and the observed data to recover the primary wavefield. Visible only when Work mode is set to Solve.

Trace aperture

Half-width of the local trace window (in traces) around each output trace used by the tau-p operator in Solve mode. Default: 5 traces, minimum 0. A window of 5 means the operator uses up to 11 adjacent traces (5 on each side of the target trace plus the trace itself) to construct the tau-p model. Larger values improve the quality of the Radon decomposition but increase computation time quadratically. Use 0 to apply the inversion trace by trace without using neighbouring offsets.

Number of iterations

Maximum number of iterations for the iterative least-squares solver. Default: 10, minimum 1. The solver stops early if the Tolerance criterion is met. Increase this value if the convergence chart shows that the solution has not stabilised by the last iteration. Note that each additional iteration proportionally increases processing time.

Damping coefficient

Tikhonov regularisation (damping) coefficient added to the least-squares normal equations to control solution stability. Default: 0 (no additional damping), minimum 0. A value of 0 relies solely on the Radon prewhitening for regularisation. Increase this value (e.g., to 0.01–0.1) if the output contains high-frequency numerical artefacts or if the solver diverges.

Tolerance

Convergence tolerance for the iterative solver. Default: 1e-4, minimum 1e-8. When the relative change in the residual norm between successive iterations falls below this threshold, the solver terminates early. Smaller values require tighter convergence and may increase the number of iterations actually performed. The default value is suitable for most field datasets.

Use FFT shift

When enabled (default: on), the module uses FFT-based time shifting to apply the multiple delay in the tau-p operator, which is more accurate and computationally efficient than direct time-domain shifting for long traces. Disable this option only for diagnostic purposes or if you observe phase errors in the output that may be related to FFT wrap-around effects.

Trace taper

Number of traces at each edge of the gather aperture over which the operator is gradually tapered to zero. Units: traces. Default: 10 traces, minimum 0. The taper reduces Gibbs-type edge artefacts that can arise when the operator is applied near the first or last offset in the gather. Set to 0 to disable tapering, which may be appropriate for very short gathers where a taper would consume too large a fraction of the available aperture.

Trace pad

Number of zero traces added to each end of the gather before applying the multiple removal operator. Units: traces. Default: 10 traces, minimum 0. Zero padding in the trace direction reduces wrap-around effects in the Radon domain, analogous to zero-padding in the time direction before FFT. Increase this value if you observe systematic amplitude anomalies at the near- or far-offset edges of the output gather.

Mute velocity min

Lower velocity bound of the hyperbolic mute applied in the FK domain to define the region where multiples are expected. Units: m/s. Default: 1500 m/s, minimum 1 m/s. Events with apparent velocity lower than this value are treated as multiples and suppressed. Set this to approximately the water velocity so that events slower than the direct water wave are classified as multiples.

Mute velocity max

Upper velocity bound of the hyperbolic mute that defines the transition zone between the multiple and primary regions in the FK domain. Units: m/s. Default: 1800 m/s, minimum 1 m/s. The mute is applied as a taper between Mute velocity min and Mute velocity max, so events in this velocity range receive a gradual rather than abrupt transition. Set Max velocity higher than Min velocity. A narrow transition (small difference between the two values) produces a sharper mute boundary.

Settings

Auto-connection

Controls whether this module automatically connects to adjacent modules in the processing flow when placed in a workflow. Enable to allow g-Platform to wire inputs and outputs automatically based on compatible data types.

Bad data values option { Fix, Notify, Continue }

Specifies how the module handles NaN (not-a-number) or infinite sample values in the input. Fix replaces bad values with zero before processing. Notify issues a warning and stops. Continue ignores bad values and processes as-is. Use Fix if your data contains occasional bad-value traces to prevent propagation of NaN through the inversion.

Calculate difference

When enabled, the module also computes and stores the difference between the input and output gathers (i.e., the estimated multiple wavefield). This difference gather is available via the Gather of difference output connector, and can be used for quality control to inspect what has been removed.

Execute on { CPU, GPU }

Selects whether the module runs on the CPU or an available GPU. GPU execution can significantly accelerate the least-squares solver for large gathers. Select GPU only if a compatible GPU is available on the processing node.

Distributed execution

Options for running this module across a distributed computing cluster. When enabled, processing is split across remote nodes to reduce wall-clock time for large datasets.

Bulk size

Number of gathers sent to each distributed processing node in a single work package. Larger values reduce scheduling overhead but increase memory requirements on each node.

Limit number of threads on nodes

When enabled, restricts the number of CPU threads used per remote node to the value specified in Number of threads. Useful when sharing cluster resources with other jobs.

Job suffix

A text label appended to the distributed job name for identification in the cluster job queue. Use a unique suffix when running multiple instances of this module simultaneously to distinguish them in the scheduler.

Set custom affinity

When enabled, exposes the Affinity field allowing you to pin processing threads to specific CPU cores. Useful for reproducible benchmarking or avoiding NUMA memory latency on multi-socket servers.

Affinity

CPU core affinity mask specifying which processor cores this module may use. Active only when Set custom affinity is enabled.

Number of threads

Number of parallel CPU threads used to process multiple gathers simultaneously. Increasing this value reduces total processing time on multi-core workstations. The optimal value is typically equal to the number of physical cores available, minus one (to leave a core free for the operating system).

Skip

When enabled, this module is bypassed and the input gather is passed directly to the output without modification. Use this option to temporarily disable multiple removal in a workflow without disconnecting the module, for example when comparing results with and without the multiple attenuation applied.

Output data

Output DataItem

Standard output routing container inherited from the sequence processing framework. Carries the processed SEG-Y handle, trace headers, and sorted index to the next module in the workflow. Hidden in the module interface; connect downstream modules through the Output gather connector.

Output SEG-Y data handle

Hidden connector. Provides write access to the output SEG-Y file. Managed automatically by the sequence processing framework.

Output trace headers

Hidden connector. Carries the unchanged trace headers from input to output. Geometry and trace identification are preserved exactly as received from the input data.

Output gather

The primary output gather containing the multiple-attenuated seismic data. In Solve mode this is the recovered primary wavefield after the iterative inversion. In Find optimum mode this gather contains one output trace per amplitude coefficient grid step, with each trace showing the recovered primary at the corresponding coefficient value. The trace picket header is set to the amplitude coefficient value for easy identification in the vista display.

Output stack line

Hidden connector. Not used by this module. Reserved for sequence framework routing.

Output crooked line

Hidden connector. Not used by this module. Reserved for sequence framework routing.

Output bin grid

Hidden connector. Not used by this module. Reserved for sequence framework routing.

Output sorted headers

Hidden connector. Carries the gather sort index unchanged to the next module. Managed automatically by the sequence processing framework.

Gather of difference

The difference between the input gather and the output gather, representing the estimated multiple wavefield that was removed. Available only when Calculate difference is enabled in the Settings section. Inspect this gather to verify that the removed energy corresponds to multiples rather than primaries — it should show events with the expected multiple periodicity and velocity, without significant primary energy.

Information

Graphics

The module provides three vista display groups for interactive quality control.

Input data — shows the Multiplied trace (the contaminated input, either synthetic or from the connected gather) and the Initial trace (the true primary, available only when synthetic generation is active). Comparing these two displays lets you see how much multiple contamination is present before processing.

Output data — shows the Restored traces gather (one trace per grid step in Find optimum mode, or the full output gather in Solve mode) and the Restored difference (residual between each restored trace and the known primary, in Find optimum mode with synthetic generation active). Use this display to visually identify the coefficient grid step that produces the cleanest primary recovery.

Convergence chart for coefficients — a line chart showing the L2 residual error (Y axis) versus amplitude coefficient value (X axis) for each step in the coefficient grid search. The minimum of this curve identifies the optimal amplitude coefficient. This display is populated only in Find optimum mode after the module has completed its grid search.

Custom actions

This module has no custom action buttons. All processing is initiated by running the module through the standard workflow execution controls.