Kirchhoff PreSTM - file in/out - migration (2)

<< Click to Display Table of Contents >>

Navigation:  Migration >

Kirchhoff PreSTM - file in/out - migration (2)

 

Description

This module performs Kirchhoff Pre-Stack Time Migration (PreSTM) using a file-based data flow: input seismic traces are read from disk, migrated, and written back to disk bin-by-bin. This approach is designed for large datasets that exceed available memory, making it suitable for 2D and 3D surveys of any size. The algorithm uses a traveltime summation along diffraction hyperbolas defined by the input RMS velocity model, focusing energy to produce a migrated image with accurate spatial positioning of reflectors.

The module supports three storage modes: simple single-run migration (Simple), 2D velocity analysis with multiple test velocities (Velocity selector 2D), and 3D velocity analysis using a dedicated storage database (Velocity selector 3D). Output can be organized as offset classes (Common Image Gathers), variable offset classes, or offset-vector tile (OVT) classes for azimuthal analysis. The module supports GPU acceleration and distributed processing across multiple compute nodes.

Resumable processing is supported: the module tracks which bins have already been migrated, so interrupted jobs can be restarted without reprocessing completed bins.

Input data

Storage type { Simple, Velocity selector 2D, Velocity selector 3D }

Selects the migration storage and output format. Simple produces a standard migrated output file (GSD format) using a single velocity field. Velocity selector 2D stores the migration result in a 2D velocity selector database (KDB file) for interactive velocity picking — use this for 2D lines or when performing velocity analysis in 2D. Velocity selector 3D stores results in a 3D velocity selector database for full 3D velocity analysis. The mode determines which output file fields and geometry inputs become active. Default: Simple.

SEG-Y data handle

The SEG-Y file handle providing access to the input pre-stack seismic data. Connect the output of an Open SEG-Y or Read SEG-Y module. The module uses this handle to read trace amplitude data for each migration bin during processing.

Trace headers

The in-memory trace header collection containing source, receiver, offset, and bin coordinates for all input traces. This item is visible when Use trace vector on disk is disabled. Connect the output of a geometry application module.

Input traces data handle

A disk-based trace header handle used when Use trace vector on disk is enabled. This allows processing of datasets too large to fit in RAM by keeping trace geometry information on disk rather than in memory.

Vrms model

The RMS (root mean square) velocity model used to compute migration traveltimes. This is the primary velocity input that defines the shape of diffraction hyperbolas for the summation. Connect a velocity model built from stacking velocity analysis or interpolated from well data. Accurate Vrms directly controls the quality of event focusing and the correctness of reflector positioning.

Output geometry

The list of output bin positions (bin point vector) that defines which CMP locations will be migrated and written to the output file. Active in Simple and Velocity selector 2D modes. This defines the spatial extent and sampling of the migrated output.

Output geometry bin grid

The 3D bin grid defining the inline/crossline layout of the output volume. Active in Velocity selector 3D mode. The grid defines the inline and crossline ranges and steps for the 3D migrated output.

Use trace vector on disk

When enabled, trace geometry (header) data is read from a disk-based storage rather than held in memory. Enable this option for very large surveys where the full trace header set does not fit in available RAM. When disabled, the in-memory Trace headers item is used. Default: disabled.

Output file name

Path to the output migrated data file in GSD format. Active in Simple mode. The GSD file stores the migrated gathers organised by bin, with the offset (CIG) structure determined by the output type settings.

Storage file

Path to the 2D velocity selector storage file (KDB format). Active in Velocity selector 2D mode. This file stores the migration results for multiple test velocities, enabling interactive velocity picking in the Velocity Selector module after migration.

Storage file 3D

Path to the 3D velocity selector storage file (KDB format). Active in Velocity selector 3D mode. This file stores the full 3D migration output across all test velocity panels for 3D interactive velocity analysis.

Parameters

Aperture params

This group controls the spatial extent of the migration operator — how far from a given output bin the module searches for contributing input traces. Correctly setting the aperture is critical: too small an aperture causes poor dip imaging and loss of steep events; too large an aperture increases computation time and may include noise or out-of-plane energy.

Migrate by pickets

When enabled, the aperture is measured in picket (chainage) coordinates rather than Cartesian X/Y coordinates. Use this for crooked-line 2D surveys where the picket numbering better represents the along-line distance between traces. Default: disabled.

Aperture type { Constant, Time variant }

Controls whether the migration aperture is fixed at all times or varies with two-way time. Constant uses a single aperture value for the entire record. Time variant uses the Time-aperture factors table, which allows the aperture to increase with depth (time) to accommodate wider diffraction hyperbolas at greater depths. Default: Constant.

Aperture

The maximum lateral distance (m) from an output bin within which input traces are summed for migration. This is the half-aperture in the inline and crossline directions. A value of 3000 m is a common starting point. Use a larger aperture to image steep dips; use a smaller aperture to reduce smearing or computation time in structurally simple areas. Default: 3000 m.

Time-aperture factors

A table of time (ms) and aperture (m) pairs that defines how the migration aperture changes with two-way time. Active when Aperture type is set to Time variant. Add rows to increase the aperture at greater times (deeper reflectors), for example: 0 ms / 1500 m, 2000 ms / 4000 m, 4000 ms / 6000 m.

Side aperture

The taper distance (m) applied at the edges of the migration aperture when border tapering is active. Traces within this distance of the survey boundary are weighted down smoothly to suppress edge effects and migration swing artefacts at survey boundaries. Requires Border type to be set to By bins or By offset-class bins. Default: 0 m (no taper).

Aperture traces decimation factor

Controls input trace decimation within the aperture. A value of 1 uses all available input traces (no decimation). A value of 2 uses every second trace, reducing computation time by approximately half at the cost of some fold reduction. Use decimation for rapid QC runs or when full fold is not required. Default: 1.

Max angle aperture

The maximum reflection angle (degrees) used as an additional aperture constraint. Traces whose reflection angle exceeds this limit are excluded from the summation, regardless of the distance-based aperture. This is an effective way to suppress wide-angle noise and improve signal-to-noise ratio of the migrated gather. A typical value is 50–70 degrees. Default: 60 degrees.

Output geometry container

This group defines how the output migrated traces are organized into offset-sorted gathers (CIGs). The output type and the CIG or offset-tile parameters within this group determine the structure of the migrated output volume.

Output type { Offset classes, Variable offset classes, Offset tile classes, Offset tile classes 2 }

Selects how output traces are sorted into offset panels. Offset classes produces standard CIGs sorted by absolute offset using a uniform offset increment. Variable offset classes allows user-defined offset ranges with varying step sizes for non-uniform offset binning. Offset tile classes (OVT) sorts traces into azimuthal offset-vector tiles defined by inline and crossline offset ranges — this is the preferred output for azimuthal anisotropy analysis. Offset tile classes 2 adds a second (near-offset) OVT group for simultaneous near and far offset tile analysis. Default: Offset classes.

CIG params

This subgroup defines the offset range and sampling for Offset classes output. The three parameters below specify the minimum offset, maximum offset, and offset increment of the output Common Image Gathers.

Minimum offset CIG

The starting (minimum) offset (m) for the output Common Image Gathers. Traces with offsets below this value are not included in any output offset class. Set to 0 to include all near-offset traces. Default: 0 m.

Maximum offset CIG

The ending (maximum) offset (m) for the output CIGs. Traces with offsets beyond this value are excluded. Set this to match the maximum useful offset in your dataset. Must be greater than or equal to Minimum offset CIG. Default: 3000 m.

Offset increment of CIG

The offset step (m) between successive output offset classes. A smaller step gives finer offset sampling but increases the number of output traces and file size. A typical value is 50–150 m depending on the receiver group interval. Must be greater than 0. Default: 50 m.

Offset classes

A table defining custom offset ranges for Variable offset classes output. Each row specifies a From offset, To offset, and Step within that range. Use this to define narrow steps at near offsets (for AVO analysis) and coarser steps at far offsets to control output volume size.

Offset tile class

This subgroup defines the Offset-Vector Tile (OVT) configuration. An OVT gather sorts traces by their inline and crossline offset vector components, enabling azimuthal velocity and anisotropy analysis. The parameters below set the range and step of the inline and crossline offset components.

Inline offset from

The minimum inline component of the source-receiver offset vector (m) for OVT classification. Negative values cover the opposite azimuth direction. Default: -2100 m.

Inline offset to

The maximum inline component of the offset vector (m) for OVT classification. Default: 2100 m.

Inline offset step

The step size (m) along the inline offset axis for OVT tile definition. A smaller step creates more tiles with finer azimuthal resolution. Default: 300 m.

Xline offset from

The minimum crossline component of the source-receiver offset vector (m) for OVT classification. Default: -2100 m.

Xline offset to

The maximum crossline component of the offset vector (m) for OVT classification. Default: 2100 m.

Xline offset step

The step size (m) along the crossline offset axis for OVT tile definition. Default: 300 m.

Use absolute tile

When enabled, OVT tiles are defined using absolute (unsigned) offset vector components. When disabled, signed offset components are used, distinguishing the two azimuths (positive and negative directions). Enable for symmetric azimuths; disable when directional asymmetry must be preserved. Default: enabled.

Near offset tile class

A second OVT tile configuration for near-offset traces, used only in Offset tile classes 2 output mode. This allows separate tile geometries for near and far offset ranges, providing denser sampling of near offsets where higher fold is typically available.

Near inline offset from

The minimum inline offset component (m) for the near-offset OVT tile group. Default: -2100 m.

Near inline offset to

The maximum inline offset component (m) for the near-offset OVT tile group. Default: 2100 m.

Near inline offset step

The inline offset step (m) for the near-offset OVT tile group. Default: 300 m.

Near xline offset from

The minimum crossline offset component (m) for the near-offset OVT tile group. Default: -2100 m.

Near xline offset to

The maximum crossline offset component (m) for the near-offset OVT tile group. Default: 2100 m.

Near xline offset step

The crossline offset step (m) for the near-offset OVT tile group. Default: 300 m.

Near use absolute tile

Controls whether the near-offset OVT tiles use absolute or signed offset vector components. See Use absolute tile for description. Default: enabled.

Velocity params

This group contains all velocity-related migration parameters, including replacement velocity, velocity scaling factors, stretching correction, and optional VTI (vertical transverse isotropy) anisotropy inputs.

Replacement velocity

The near-surface velocity (m/s) used to replace the actual velocity from the surface to a reference datum. Set this to the velocity of the weathering layer or the redatum velocity if a static correction has already been applied. An incorrect value will cause timing errors at shallow depths. Default: 1500 m/s.

Velocity factor

A global scale factor applied to the Vrms velocity model before migration. A value of 1.0 uses the velocity model without modification. Values greater than 1.0 increase the effective velocity (shifting energy deeper); values less than 1.0 decrease it. Use this for rapid sensitivity tests without modifying the velocity model. Active in Simple mode. Default: 1.0.

VelFactor

This subgroup defines a range of velocity scale factors for velocity selector modes. The migration is run for each factor in the range, generating a panel of images at different velocities. Active in Velocity selector 2D and Velocity selector 3D modes.

Min velocity factor

The minimum velocity scale factor in the velocity selector sweep. A value of 0.8 migrates the data using 80% of the input velocity model. Default: 0.8.

Max velocity factor

The maximum velocity scale factor in the velocity selector sweep. A value of 1.2 migrates the data at 120% of the input velocity. Default: 1.2.

Velocity factor step

The increment between successive velocity scale factors in the sweep. For example, with min=0.8, max=1.2, and step=0.1, the module migrates at factors 0.8, 0.9, 1.0, 1.1, and 1.2, producing five velocity panels. A finer step (e.g., 0.05) improves velocity resolution but increases run time. Default: 0.1.

Use stretching factor

When enabled, a stretching mute is applied to suppress the NMO stretch artefact at far offsets. NMO stretch causes wavelet frequency lowering at large incidence angles; the stretching factor defines the threshold beyond which traces are tapered or zeroed. Default: disabled.

Stretching factor

The maximum allowable NMO stretch as a percentage (%). Portions of a trace where the stretch exceeds this threshold are muted. For example, a value of 30 means that a 30% wavelet stretch is tolerated; beyond that, the contribution is suppressed. Active when Use stretching factor is enabled. Default: 0%.

Use Vrms map

When enabled, the module uses a spatially variable near-surface velocity map (V0 Map) to correct traveltime calculations in the shallow section. This is useful when the near-surface velocity varies significantly across the survey. Default: disabled.

V0 Map

A 2D matrix (map) of near-surface velocity values to use for traveltime correction when Use Vrms map is enabled. Each cell in the matrix corresponds to a spatial location and contains the local near-surface velocity at that location.

VTI

Enables Vertical Transverse Isotropy (VTI) anisotropy correction. When enabled, the migration traveltime computation accounts for anisotropic velocity behaviour (where vertical and horizontal velocities differ), which is common in shale-rich or compacted sedimentary sections. Requires an Input VTI model to be connected. Default: disabled.

Input VTI model

The VTI anisotropy model used when VTI is enabled. This model provides the Thomsen anisotropy parameters (eta, epsilon, delta) as a function of position and time/depth, enabling accurate anisotropic PreSTM imaging.

Normalization params

This group controls amplitude normalization, anti-aliasing filtering, and frequency limiting applied during the migration summation. Proper normalization compensates for uneven fold and varying aperture to produce amplitude-balanced output.

Normalization dimension type { 2D, 3D }

Selects whether the migration amplitude normalization uses 2D or 3D geometrical spreading correction. Set to 2D for 2D line migrations and to 3D for full 3D surveys. Using the wrong dimensionality will produce incorrect amplitude scaling of the migrated output. Default: 2D.

Use Regularization Weights { No, By Source Receiver Distribution, By Trace Distribution }

Applies spatial regularization weights to the migration to compensate for irregular trace distribution. No applies no weighting. By Source Receiver Distribution weights traces by the density of source-receiver pairs in the aperture, balancing contribution from densely and sparsely sampled azimuth-offset areas. By Trace Distribution weights by the local trace density. Use regularization when the survey has significant acquisition irregularities. Default: No.

Anti aliasing step x

The inline CMP interval (m) used in the anti-aliasing frequency calculation. Set this to the actual inline CMP spacing of the input data. The anti-aliasing filter cutoff frequency is computed from this value and the velocity model to prevent spatial aliasing artefacts in the migrated output. Default: 12.5 m.

Anti aliasing step y

The crossline CMP interval (m) used for anti-aliasing. For 2D data or when anti-aliasing in only one direction is needed, set this to match the crossline spacing or to a large value to effectively disable crossline anti-aliasing. Default: 25.0 m.

Normalization by VRMS

When enabled, the anti-aliasing filter frequency is computed using the local Vrms velocity at each output bin, resulting in a spatially adaptive anti-aliasing operator. Disable this option only if a constant anti-aliasing cutoff is preferred. Default: enabled.

Anti-aliasing coefficient

A dimensionless coefficient that scales the computed anti-aliasing filter frequency. A value of 0 disables the anti-aliasing filter. Values between 0 and 1 apply progressively stronger high-frequency suppression. Use non-zero values when aliasing noise is visible in the migrated output. Default: 0 (no anti-aliasing filter).

Max frequency

The absolute maximum frequency (Hz) passed by the anti-aliasing filter. Frequencies above this value are suppressed regardless of the adaptive cutoff. Set this to match the highest signal frequency in the data (typically the dominant frequency plus 20–30 Hz). Default: 120 Hz.

Calculation area

This group restricts migration to a subset of the output grid by specifying inline and crossline limits. Use it to run test migrations on a small portion of the 3D volume before committing to a full-survey run. Leave all values at -1 to process the entire output geometry.

First inline number(-1 no limit)

The first inline number to include in the migration. Set to -1 to start from the first inline in the output geometry (no limit). Default: -1.

Last inline number(-1 no limit)

The last inline number to include in the migration. Set to -1 to process through the last inline in the output geometry. Default: -1.

First crossline number(-1 no limit)

The first crossline number to include in the migration. Set to -1 to start from the first crossline. Default: -1.

Last crossline number(-1 no limit)

The last crossline number to include in the migration. Set to -1 to process through the last crossline. Default: -1.

Calculation rule { Logical AND, Logical OR }

Defines how the inline and crossline limits are combined to select output bins. Logical AND processes only bins that fall within both the inline AND crossline limits (a rectangular sub-area). Logical OR processes bins within the inline range OR the crossline range (a cross-shaped region). Default: Logical AND.

Step along inline number

The inline decimation step for the calculation area. A value of 1 migrates every inline; a value of 2 migrates every second inline, halving the output volume size for quick QC tests. Default: 1.

Step along crossline number

The crossline decimation step for the calculation area. A value of 1 migrates every crossline; a value of 2 migrates every second crossline. Default: 1.

Kill empty traces

When enabled, output offset-class traces that contain no migrated energy (all-zero traces) are removed from the output gather. This reduces output file size for areas with sparse acquisition coverage. Default: enabled.

CIG/CAG { CIG, CAG }

Selects whether the output gathers are Common Image Gathers (CIG, sorted by offset) or Common Angle Gathers (CAG, sorted by reflection angle). CAG output requires specifying the angle range below. This parameter is currently set to hidden; CIG is the standard output mode. Default: CIG.

Minimum angle CAG

The minimum reflection angle (degrees) for Common Angle Gather output. Active when CIG/CAG is set to CAG. Default: 0 degrees.

Maximum angle CAG

The maximum reflection angle (degrees) for CAG output. Default: 90 degrees.

Angle increment of CAG

The angle step (degrees) between successive output angle classes in CAG mode. Default: 5 degrees.

CPU boost factor

Controls the level of CPU-side optimizations that trade accuracy for speed. A value of 1 applies no optimization (highest accuracy). Higher values enable progressively more aggressive approximations in the traveltime computation, which can increase speed at the cost of a small decrease in image quality. Use values greater than 1 only for rapid tests. Valid range: 1–50. Default: 1.

Normalization by fold { none, trace, sample, offset-plane }

Controls how migrated amplitudes are normalized by the number of contributing traces (fold). none applies no fold normalization (raw summation). trace divides each output trace by the total number of contributing input traces. sample normalizes each time sample by the local fold at that time. offset-plane normalizes per offset class, which provides the most balanced amplitude response across offset panels and is the recommended setting for AVO-preserving migration. Default: offset-plane.

RnD

This group contains advanced research and development options. These settings are intended for specialist testing and should not be modified during routine processing.

Clear file name

Path to an optional text file listing inline/crossline pairs to force-recalculate, overriding the cached "already calculated" status. Use this when you need to recompute specific bins without rerunning the entire migration. The file should list one inline and crossline number per row.

Settings

Bulk data size

The maximum amount of RAM (GB) to use for reading input trace data per processing chunk. A larger value reads more traces per pass, reducing the number of disk reads and improving performance on systems with abundant memory. Set this to a value well below the total available system RAM to avoid memory exhaustion. Default: 4 GB.

Dynamic memory GPU

When enabled, the module dynamically adjusts the GPU memory allocation to fit the available VRAM on the selected GPU. Disable this only if you need to fix the GPU memory usage at a specific level. Default: enabled.

SegyReadParams

SEG-Y reading configuration parameters, including trace byte locations and scaling options. These settings must match the byte map of the input SEG-Y file. Connect the SegyReadParams output from the corresponding Open SEG-Y module.

Write mode { Direct, Append }

Controls how output data is written to the output file. Direct writes each bin directly to its assigned position in the output file as it is computed. Append sequentially appends completed bins to the output file. Use Direct for resumable jobs where specific bin positions must be preserved. Default: Direct.

Execute on { CPU, GPU }

Selects whether the Kirchhoff summation is performed on the CPU or GPU. GPU execution provides a substantial speedup (typically 10–50x) for 3D migrations with large apertures and many offset classes. CPU mode is used when no compatible GPU is available or for debugging. Default: CPU.

Distributed execution

Options for running the migration across multiple compute nodes in a distributed cluster environment. When configured, the master node distributes output bins among worker nodes, which perform the Kirchhoff summation in parallel and return results for writing to the output file.

Bulk size

The minimum number of bins processed per distributed task chunk. Larger chunks reduce task scheduling overhead but may cause uneven load distribution among nodes. In distributed mode, the total number of chunks must not exceed 50,000.

Limit number of threads on nodes

Limits the number of CPU threads used on each worker node in distributed mode. Set this to reserve some cores for other system tasks on shared compute nodes.

Job suffix

An optional text suffix appended to the distributed job name. Use this to distinguish multiple migration jobs running concurrently on the same cluster.

Set custom affinity

When enabled, thread-to-CPU-core affinity is manually assigned using the Affinity setting. This can improve performance on NUMA architectures by keeping threads close to their data in memory.

Affinity

Specifies the CPU core affinity mask for processing threads when Set custom affinity is enabled. Leave at default unless specifically tuning for a NUMA system.

Number of threads

The number of CPU threads used for parallel processing within a single node. Set to the number of physical cores available for migration. Higher values improve throughput up to the point of memory bandwidth saturation. Default: typically set automatically based on available cores.

Run scripts

Options for running external scripts before or after the migration executes, enabling automated pre- and post-processing steps.

Script before run

Path to a script that is executed before the migration starts. Use this to perform setup tasks such as creating output directories, staging input data, or checking disk space.

Script after run

Path to a script that is executed after the migration completes. Use this to trigger post-processing steps, send notifications, or archive results.

Skip

When enabled, the module is bypassed and does not execute. Use this to temporarily disable the migration step in a workflow without removing the module from the processing sequence.

Output data

The primary output is a file-based migrated dataset in GSD format (Simple mode) or a velocity selector database (KDB format in Velocity selector 2D/3D modes). The output contains pre-stack time migrated gathers organized by the selected offset or OVT class structure. In Velocity selector modes, the output can be loaded into the Velocity Selector module for interactive velocity picking on migrated CIGs.

Information

Graphics

Custom actions

Create expectable velocity model

Generates and saves a synthetic velocity model SEG-Y file based on the connected Vrms model and the output geometry. This allows you to preview the velocity field that will be used for migration before running the full job, and to export it for QC or use in other applications.

Create offset classes fold maps

Computes and displays fold maps for each defined offset class, showing the number of contributing traces per bin for each offset panel. Use this before migration to verify that all offset classes have adequate and balanced fold across the survey area, and to identify any gaps or acquisition irregularities that could affect the migrated output quality.