Engine - Diffraction imaging 2D/3D

<< Click to Display Table of Contents >>

Navigation:  Diffraction >

Engine - Diffraction imaging 2D/3D

 

Description

Engine - Diffraction imaging 2D/3D is the core computation module for Multi-Focusing edge diffraction imaging. It separates the diffraction wavefield from the reflection wavefield in the pre-stack domain and then applies Kirchhoff pre-stack time migration to the diffraction component. The search is performed independently for each azimuth sector you define, allowing the module to detect and image diffractors from all directions. Results for every output bin and azimuth are stored in a binary database file (.kdb) that is subsequently used by the Imaging - Diffraction imaging 2D/3D module to produce the final migrated diffraction image.

The module supports both 2D line and 3D volume geometries and can run on CPU (multi-threaded) or GPU, as well as in a distributed computing environment. Computation is restartable: bins that were fully calculated in a previous run are automatically skipped, so you can resume a stopped job without reprocessing completed areas.

Input data

Storage file

The output diffraction database file (.kdb). This binary file stores the multi-azimuth Kirchhoff migration results for each output bin. Connect or create a new .kdb file here. If a database with the same name already exists but was created with different parameters, the module will prompt you whether to overwrite it. This same file is later used as input to the Imaging - Diffraction imaging 2D/3D module.

SEG-Y data handle

The pre-stack seismic data to be processed. Connect the SEG-Y handle of your input CMP-sorted seismic dataset. The module reads traces from this dataset according to each output bin's aperture during processing.

Input sorted headers(of seismic data)

The sorted trace header index corresponding to the input seismic data. This index must be sorted in CMP order (2D or 3D). It is used to spatially locate and retrieve input traces within the migration aperture around each output bin. Connect the same sorted headers index that was generated during geometry preparation.

Vrms model

The RMS (root-mean-square) velocity model used to compute travel-time operators for the Kirchhoff migration. The velocity model must have the same number of time samples and the same sample interval as the input seismic data. The model is sampled spatially for each output bin location during processing.

Output geometry

The trace header set that defines the output bin grid for the diffraction search. Each trace in this collection defines one output bin at which the migration is performed. In 2D mode this input is mandatory; in 3D mode it defines the target image positions. This geometry is typically prepared by the Edge Diffraction Geometry Input Data By Azimuth module.

Dimension

Specifies the dimensionality of the migration operator applied during the diffraction search. Available options are 2D, 3D, and 2.5D. The default is 3D. The 2D option applies a 2D Kirchhoff operator (appropriate for single 2D lines), 3D applies the full 3D operator with the correct geometrical spreading correction (appropriate for 3D surveys), and 2.5D applies a 2.5D approximation. The choice also determines whether the sorted header index must be CMP-2D or CMP-3D sorted.

Parameters

Storage type

Selects whether the output database (.kdb) uses a 2D or 3D storage layout. Default is 2D. Set this to match your survey geometry: use 2D for single-line processing and 3D for volumetric surveys. This determines how the output bin addresses are indexed within the database and must be consistent with the geometry of your output trace header set.

FirstAzimuth

The starting azimuth angle (in degrees) of the azimuth search range. Default is 10°. Together with Last Azimuth and Half Step Azimuth, this defines the set of azimuth sectors in which the diffraction search is performed. Azimuths are measured from north (0°) clockwise. Set this to the minimum azimuth direction from which you want to detect diffractors. For isotropic coverage of all directions, a range of 10° to 170° with a 10° half-step is typical.

LastAzimuth

The ending azimuth angle (in degrees) of the azimuth search range. Default is 170°. The module iterates over azimuth sectors from First Azimuth to Last Azimuth in steps of twice the Half Step Azimuth value. The total number of azimuths processed equals (LastAzimuth - FirstAzimuth) / (2 × HalfStepAzimuth) + 1. Increasing the azimuth range or reducing the step gives more azimuth directions and a more complete diffraction image, at the cost of longer computation time.

HalfStepAzimuth

The half-width (in degrees) of each azimuth sector and the half-step between sector centers. Default is 10°. For each azimuth center angle, traces are accepted into the migration aperture only if their source-receiver azimuth falls within ±HalfStepAzimuth of that center. Smaller values produce narrower, better-focused azimuth sectors (useful in 3D azimuthal anisotropy studies) but may reduce fold per sector. Larger values increase fold per sector but reduce azimuth resolution.

ZeroOffsetFactor

Defines the angular tolerance (in degrees) used to identify near-zero-offset traces during azimuth selection. Default is . Very short-offset traces have poorly defined azimuths; this parameter controls how wide an angular cone around zero offset is treated as azimuth-independent. Increase this value if you observe azimuth artifacts near zero offset; decrease it if near-offset data is reliable and you want strict azimuth filtering.

Output file name

Full path and filename for an optional SEG-Y output file (.sgy). This field is not required for the core diffraction search workflow, which writes results to the Storage file (.kdb). If specified, the module can also write a SEG-Y version of the migrated output for quick QC in a standard seismic viewer.

Minimum offset CIG

The minimum source-receiver offset (in meters) for traces included in the common image gather (CIG) output. Default is 0 m. Traces with absolute offset below this value are excluded from the migration. Use this to suppress very short-offset traces that may contain direct wave energy or surface-related noise.

Maximum offset CIG

The maximum source-receiver offset (in meters) for traces included in the common image gather. Default is 0 m (no upper limit applied). Setting this to a positive value restricts migration to near- and mid-offset data, which can improve image quality when far-offset data has poor signal-to-noise ratio. The output CIG is binned from Minimum offset CIG to Maximum offset CIG in steps of Offset increment of CIG.

Offset increment of CIG

The offset class width (in meters) used to bin input traces into CIG offset classes. Default is 999999 m (effectively a single offset class containing all offsets). When the Offset increment of CIG is larger than the Maximum offset CIG, only one offset class is produced and all traces within the offset range contribute to a single stacked image. When the Offset increment is smaller than the Maximum offset CIG, the output contains multiple offset classes that can be used to inspect offset-dependent diffraction behaviour or to perform offset-selective stacking. In cases where the Offset step of CIG is larger than the Max offset CIG, this will produce only one offset class with the input data range equal to the Offset step of CIG. In cases where the Offset step of CIG is smaller than the Max offset CIG, the offset of the input data will be equal to the Max offset CIG plus the Offset step of CIG.

Aperture

The inline migration aperture radius (in meters). Default is 3000 m. This controls how far from each output bin the module searches for contributing input traces. A larger aperture improves imaging of steeply dipping diffractors and those at greater depth, but increases computation time and may introduce migration noise if noise levels are high. Set the aperture to at least the lateral extent of the deepest diffractor you want to image.

CrossAperture

The crossline migration aperture radius (in meters). This parameter controls the aperture in the direction perpendicular to the inline direction for 3D surveys. When set, it allows the use of an elliptical aperture (different inline and crossline radii), which is useful when the survey geometry is anisotropic or when the inline and crossline trace spacings differ significantly. If left at the default, the inline Aperture value is also used in the crossline direction.

Use full cmp aperture

When enabled, the migration aperture is applied symmetrically around the CMP position of each output bin (full pre-stack aperture mode). Default is off. When disabled, the aperture is applied to the source and receiver positions separately. Enable this option for surveys where the CMP distribution within the aperture is well-sampled and symmetric; it can reduce operator artifacts in that case.

Aperture side

Distance in meters from the survey edge over which the migration aperture is tapered linearly from zero to its full value. When set to a non-zero value, the module detects the survey boundary and ramps the aperture up from 0 to its maximum within this distance from the edge. This reduces migration artifacts (bow-tie effects and truncation noise) along the edges of the survey. Set this to approximately the expected lateral migration distance for the shallowest reflectors of interest.

Use Stretching Factor

Enables the stretch mute applied to the migration operator. Default is off. When enabled, the Stretching Factor parameter becomes active. The stretch mute suppresses operators at far offsets where NMO stretch would cause excessive frequency distortion. Enable this when you see low-frequency smearing artifacts at far offsets in the migrated image.

Stretching Factor

The stretch mute threshold as a percentage. Default is 0%, minimum is 0%. Active only when Use Stretching Factor is enabled. The migration operator is muted for each trace where the NMO stretch at any time sample exceeds this factor. For example, a value of 50 mutes traces stretched more than 50% relative to their zero-offset frequency content. Larger values allow more far-offset data to contribute; smaller values apply a stricter mute.

Replacement Velocity

The near-surface replacement velocity (in m/s) used to account for topographic elevation differences between sources and receivers. Default is 1500 m/s. This is a required parameter. Set it to the velocity appropriate for your near-surface (typically the velocity used in the floating datum static corrections). For marine data with a flat sea surface, the water velocity (approximately 1500 m/s) is appropriate. For land data with significant topography, use the near-surface or replacement layer velocity.

Anti-Alias Coefficient

Controls the strength of the anti-aliasing filter applied to the Kirchhoff migration operator. A higher coefficient produces a stronger low-pass filter at far offsets, which suppresses spatial aliasing artifacts but also reduces high-frequency content. Decrease this value if you observe excessive high-frequency loss in the migrated image; increase it if you see spatial aliasing noise (high-frequency striping) at far offsets or in areas with coarse trace spacing.

Max freq for RHO

The maximum frequency (in Hz) passed by the rho filter (a derivative filter applied as part of the Kirchhoff migration operator). Default is 120 Hz. Set this to the highest usable frequency in your data. Frequencies above this value are suppressed to prevent high-frequency noise amplification by the migration derivative. This also acts as a bandwidth limiter: setting it below the Nyquist frequency of your data focuses the migration energy on the signal band.

Max Angle Aperture

The maximum dip angle (in degrees) of the migration operator, measured from vertical. Default is 90°. Traces whose apparent dip exceeds this angle are excluded from the migration sum. Reducing this value below 90° rejects steeply dipping contributions, which can suppress migration noise from steeply dipping reflections. For diffraction imaging, keep this value large (60–90°) to ensure that all diffraction tails are captured within the operator.

Min Angle Aperture

The minimum dip angle (in degrees) of the migration operator, measured from vertical. Traces whose apparent dip is shallower than this angle are excluded from the migration sum. Setting a non-zero minimum angle suppresses near-vertical (near-zero-dip) contributions, which can help separate diffractions from strong flat or gently-dipping reflections. For standard diffraction imaging this is typically left at 0°.

Velocity factor

A dimensionless multiplier applied to the velocity model before computing the migration operator. Default is 1.0 (100% of the input velocity field). Use values other than 1.0 to perform a sensitivity analysis or to compensate for a known systematic velocity bias. For example, a value of 0.95 reduces all velocities by 5%.

Cmp Interval Along Inline

The bin size (in meters) along the inline direction. Default is 12.5 m. This value is used internally to convert the aperture from meters into an integer number of bins for trace selection. Set this to match the actual inline bin spacing of your survey geometry.

Cmp Interval Along Xline

The bin size (in meters) along the crossline direction. Default is 25.0 m. This value is used internally to convert the crossline aperture from meters into an integer number of bins for trace selection. Set this to match the actual crossline bin spacing of your survey geometry.

New Read data

Enables the optimized (new) trace reading mode. Default is on. Keep this enabled for best I/O performance. This flag selects the internal data-reading path used during the migration computation and is generally left at its default setting.

Read bulk size

The number of traces read from disk in a single I/O block. Default is 1000 traces. Larger values improve I/O throughput on fast storage systems but require more RAM. Reduce this value if you encounter memory errors or if the system has limited RAM; increase it for better performance on systems with fast SSDs or NVMe storage.

Decimation Factor

An integer factor by which the input trace density within each aperture is reduced. Default is 1 (no decimation; all traces within the aperture are used), minimum is 1. Setting this to 2 uses every second trace; setting it to 3 uses every third trace, and so on. This reduces computation time at the cost of reduced fold per output bin. Use values greater than 1 for quick-look tests before running the full dataset, or when the input data is densely sampled and full fold is not required.

Migration Mode

When enabled, the module runs in standard Kirchhoff pre-stack time migration mode rather than diffraction-separation mode. Default is off (diffraction imaging mode). In diffraction imaging mode (off), the Hilbert transform is applied to the data before stacking so that the migration focuses the diffraction energy. In migration mode (on), only the rho filter is applied and the result resembles a conventional Kirchhoff PSTM image. Use migration mode for QC comparison of the diffraction image against a standard migration.

Phase rotation

Controls where in the processing sequence the 90° phase rotation (Hilbert transform) required by the Kirchhoff operator is applied. Available options are Prestack Rotation, Poststack Rotation, and No Rotation. Default is Prestack Rotation. Prestack Rotation applies the Hilbert transform to each individual trace before migration summation. Poststack Rotation applies it to the stacked result after summation. No Rotation skips the phase rotation entirely (suitable if the data has already been phase-rotated, or when running in standard Migration Mode).

Additional

A container group for optional 3D bin grid inputs. These parameters are required when the input seismic data and the velocity model use different bin grids, or when coordinate mapping between the input data and the output image grid is needed.

Input data BinGrid

The bin grid associated with the input seismic data. When provided, the module uses this grid to map the XY coordinates of output bins to inline/crossline indices in the input sorted headers, enabling correct spatial correlation between the output image positions and the input trace positions. Connect the bin grid that was used when the input seismic data was binned.

Velocity data BinGrid

The bin grid associated with the VRMS velocity model. When provided, it is used to locate velocity traces by bin address during processing. Connect the bin grid that corresponds to the velocity model connected in the Vrms model input. If the velocity model uses the same geometry as the seismic data, this can be the same bin grid as the Input data BinGrid.

Fold Limitation

A parameter group that controls optional fold balancing during the azimuthal migration. When fold limitation is active, the module selects a subset of input traces per azimuth sector to enforce minimum and maximum fold constraints, preventing azimuth sectors with very unequal trace counts from dominating the result.

Use Fold Limitation

Enables fold-based trace selection during azimuthal migration. Default is off. When enabled, the Max Fold and Min Fold parameters become active and the module selects traces within each azimuth sector to stay within the specified fold range. Enable this when your survey has highly non-uniform azimuth coverage and you want to balance the contribution of each azimuth sector to the output image.

Max Fold

The maximum number of traces per azimuth sector that are allowed to contribute to each output bin. Default is 1,000,000 (effectively unlimited), minimum is 1. Active only when Use Fold Limitation is enabled. Reduce this value to cap the fold in over-sampled azimuth sectors, which can improve azimuth balance in surveys with uneven acquisition geometry.

Min Fold

The minimum number of traces per azimuth sector required for a bin to be included in the output. Default is 5, minimum is 1. Active only when Use Fold Limitation is enabled. Output bins with fewer than Min Fold traces in a given azimuth sector are excluded from the result for that sector, preventing poorly sampled azimuths from contributing unreliable data to the diffraction image.

Output data

The primary output of this module is the Storage file (.kdb) that was specified in the Input data section. This binary database stores the multi-azimuth Kirchhoff migration results — including semblance gathers, amplitude (field) gathers, and fold gathers — for every output bin. No seismic data connector is produced by this module; all results are written directly to the .kdb file and are accessed by the subsequent Imaging - Diffraction imaging 2D/3D module.

Three map overlays are updated during processing to allow real-time monitoring of progress in the map view:

Calculated Points — bins that have been fully computed and written to the database.

Bins In Progress — bins currently being processed in the active computation chunk.

All Bin Points — the full set of output bins defined by the Output geometry, showing all bins that will be (or have been) processed.

Settings

This module supports multi-threaded CPU execution, GPU-accelerated execution, and distributed (remote) computation. GPU mode can significantly accelerate the Kirchhoff migration summation, especially for large apertures and many azimuth sectors. Select the execution hardware in the Settings tab. When using distributed execution, computation is split across nodes by output bin chunks; each node processes an independent set of output bins and writes its results to the shared .kdb file.

An optional Matrix processing sub-procedure chain can be attached to apply additional signal conditioning (for example, noise attenuation or filtering) to each bulk of input traces before the migration summation is performed. If no sub-procedures are connected, this step is skipped automatically.