Horizon-based inversion

<< Click to Display Table of Contents >>

Navigation:  Velocity >

Horizon-based inversion

 

Description

The Horizon-based inversion module builds a layer-by-layer interval velocity model (Vint) constrained by geological horizons. Rather than deriving velocity from a purely mathematical transformation of stacking velocities, this module uses horizon picks to define layer boundaries and then searches within each layer for the velocity gradient that best explains the observed semblance. The result is a geologically consistent, depth-domain velocity model that honours the reflector geometry interpreted by the processor.

The workflow proceeds layer by layer from shallow to deep. For each layer the module computes a semblance-based scan over a user-defined range of velocity gradients, selects the best-fitting gradient, and updates the model. Fast-marching is used to convert the updated Vint model to a travel-time table so that horizon positions can be expressed consistently in the depth domain. You can inspect the semblance panels for individual layers interactively before running the full inversion.

Use this module when you have interpreted horizon picks and want to build a smooth, layer-stripping velocity model suitable for depth conversion or pre-depth-migration velocity model building. It is especially useful in structurally complex areas where dix-inversion artefacts are problematic.

Input data

Input DataItem

The primary seismic data connection carrying the input traces. This item links the module into the processing sequence and provides geometry, sorting, and trace data to the inversion engine.

Input SEG-Y data handle

Handle to the SEG-Y file store associated with the input data item. Required for random-access reading of trace data during the semblance computation.

Input trace headers

Trace header database providing coordinates, offsets, bin assignments, and other acquisition attributes needed to locate each trace in the velocity scan.

Input gather

Sorted gather data (typically CMP gathers) used during the layer-by-layer semblance scan. These gathers must already be sorted and NMO-corrected or in a suitable domain for velocity analysis.

Input stack line

2D processing line definition associated with the input data. Used when operating in 2D mode to define the processing geometry.

Input crooked line

Crooked line geometry for 2D surveys that do not follow a straight acquisition line. Provides accurate inline coordinate references when horizon picks are expressed in XY space.

Input bin grid

3D bin grid definition used to map inline/crossline indices to surface coordinates. Required in 3D mode to associate horizon picks with the correct output velocity traces.

Input sorted headers

Pre-sorted header index enabling fast random access to gathers by CMP or bin number during the layer-by-layer iteration.

Input VRMS

Input root-mean-square (RMS) velocity gather, typically produced by a prior velocity picking step. The module uses this as a starting point to seed the initial velocity model before horizon-based refinement begins. Connect the output of a velocity picking or smoothing module here.

Input horizons

Horizon picking item carrying the interpreted time-domain reflector picks that define the layer boundaries used in the inversion. Horizons can be loaded via the Custom Actions (ASCII or binary import) or connected from an upstream horizon picking module. The number of loaded horizons determines the number of layers solved.

Initial Vint

Optional initial interval velocity model in the depth domain (m). When connected, the module uses this model as its starting Vint rather than deriving one from the input VRMS. Use the Init model from input Vint gather custom action to register this model before running the inversion.

Parameters

Replacement velocity

The constant propagation velocity (m/s) used for the near-surface layer above the first horizon, corresponding to the zone between the datum plane and the topographic surface. This value is applied when computing the travel-time shift from topography to datum. Default: 1500 m/s. Set this to an appropriate near-surface or water velocity for your survey area (e.g., 330 m/s for air gun at sea level, or 1800–2200 m/s for a typical weathering layer).

Datum

The reference elevation (m) to which the velocity model is referenced. Travel-time shifts between topography and datum are computed using the Replacement velocity above. Default: -1000 m. This value must match the datum used during static correction so that the model is internally consistent.

Number of samples of output velocity

The number of depth samples in the output interval velocity gather. Together with the Output velocity DZ parameter this controls the total depth extent and vertical resolution of the output model. Default: 1000 samples. Increase this value when working with deep targets or when fine depth sampling is needed downstream.

Output velocity DZ

Depth sample interval (m) of the output velocity gather. Default: 5 m. The product of this value and the number of samples above defines the maximum output model depth. For example, 1000 samples at 5 m gives a 5000 m depth model. Coarser sampling (10–20 m) is appropriate for reconnaissance work; finer sampling (1–2 m) may be needed for shallow high-resolution surveys.

Import horizons from ASCII params

This parameter group controls how horizon time values in ASCII files are interpreted when using the Import horizon from ASCII custom action.

Location { Datum, Topography }

Specifies whether the time values in the imported ASCII horizon file are referenced to the datum plane or to the actual topographic surface. Default: Datum. Choose Topography if the horizon times were picked relative to the recording surface rather than the processing datum.

Time measure { Milliseconds, Seconds }

Specifies the time unit used in the ASCII horizon file. Default: Milliseconds. Select Seconds if your ASCII export stores two-way travel time in seconds. An incorrect setting here will cause the horizons to be loaded at incorrect depths.

Add constant shift

A constant time offset (in the units selected by Time measure) added to all imported horizon time values. Default: 0. Use this to compensate for a bulk static difference between the horizon file's time reference and the current processing datum without manually editing the horizon file.

Map interpolation

This group controls the spatial grid used when interpolating sparse horizon picks into a continuous time map. The module uses kriging to fill the grid between control points.

Interpolation step X

Spatial grid spacing in the inline (X) direction (m) used for interpolating horizon time values between pick locations. Default: 50 m. Smaller values produce a finer horizon map at the cost of longer interpolation time. Set this to approximately the CMP spacing or the average pick density in the inline direction.

Interpolation step Y

Spatial grid spacing in the crossline (Y) direction (m) for horizon interpolation. Default: 50 m. In 2D surveys set this equal to the inline step. In 3D surveys this should reflect the crossline bin spacing of your pick grid.

Solver params

This group contains the core parameters controlling the semblance-based velocity inversion solver. These settings directly affect the accuracy and performance of the layer-by-layer velocity search.

Current layer

Read-only display showing which layer is currently selected for interactive semblance analysis. The layer index is set automatically when using the Find semblance for current layer custom action. This field cannot be edited directly.

Mute factor

A multiplicative factor applied to the stretch mute criterion during semblance computation. Default: 1 (no additional mute). Increasing this value relaxes the mute and includes more far-offset energy in the semblance scan, which can improve velocity resolution for deep layers but may introduce NMO-stretch artefacts.

Aperture

The spatial radius (m) around each output bin within which input traces are gathered for semblance analysis. Default: 3000 m. A larger aperture averages over a wider area and produces a spatially smoother semblance panel, which is helpful in data-sparse regions. Use a smaller aperture in areas with dense acquisition and complex geology to preserve lateral velocity variation.

Trace step

Decimation factor for traces used during the semblance scan. Default: 100. A value of 100 means every 100th trace is used, dramatically reducing computation time during interactive analysis. For the final production run, reduce this value (e.g., to 10 or 1) to include more traces and improve semblance quality. Setting it to 1 uses all traces.

Time table interpolation step X

Grid spacing in the inline (X) direction (m) for the 3D travel-time table computed by the fast-marching algorithm. Default: 5 m. This table is used to convert the updated velocity model to two-way travel times for depth-domain horizon positioning. Finer steps improve accuracy at the cost of increased memory and computation time.

Time table interpolation step Y

Grid spacing in the crossline (Y) direction (m) for the fast-marching travel-time table. Default: 5 m. In 2D surveys this can be set equal to the inline step. For 3D surveys, match this to the crossline bin size used for the output velocity model.

Time table interpolation step Z

Vertical depth step (m) for the fast-marching travel-time table. Default: 5 m. This determines the depth resolution at which the fast-marching propagation is solved. Coarser values (10–20 m) accelerate computation; finer values (1–2 m) are needed for shallow, high-resolution applications.

Layer properties

A table of per-layer inversion constraints. Each row corresponds to one geological layer (the interval between two successive horizons). After loading horizons and clicking Init table, rows are populated automatically. The columns available for each layer are described below.

Use layer — When enabled (default: true), this layer is included in the inversion. Disable a layer to hold it at its initial velocity without updating it during the run.

Min gradient / Max gradient / Step gradient — Define the search range and step size for the vertical velocity gradient within this layer (m/s per unit depth). Defaults: Min = -1, Max = 1, Step = 0.1. The solver tests all gradient values between Min and Max at the given Step increment and selects the one producing the highest semblance. A gradient of 0 means constant velocity within the layer; positive gradients represent velocity increasing with depth.

Min velocity in layer / Max velocity in layer — Hard constraints (m/s) on the allowed interval velocity within this layer. Defaults: Min = 1500 m/s, Max = 3000 m/s. The solver will not assign velocities outside this window regardless of the semblance peak location. Set these bounds based on geological knowledge of the expected velocity range in the target interval.

Smooth horizons before solve — When enabled, the top and bottom horizon maps of this layer are spatially smoothed before use in the inversion. Default: false. Enabling this suppresses noise in the horizon pick that could otherwise create oscillations in the velocity model.

Smooth horizons window X / window Y — Half-width of the smoothing window applied to the horizon surfaces before inversion, in metres along inline and crossline directions respectively. Default: 500 m. Active only when Smooth horizons before solve is enabled.

Smooth gradients along horizons — When enabled, the gradient field derived from the semblance scan is spatially smoothed across this layer before being applied to the model. Default: false. This regularises the model laterally and can prevent unrealistic gradient jumps between adjacent bins.

Smooth gradients window X / window Y — Smoothing window half-widths (m) for the gradient field. Default: 500 m. Active only when Smooth gradients along horizons is enabled.

Smooth resulting model by horizons — When enabled, the final velocity values within this layer are smoothed laterally after the inversion. Default: true. This is the primary lateral regularisation step and is recommended for most workflows to avoid short-wavelength noise in the output model.

Smooth model window X / window Y — Smoothing window half-widths (m) applied to the output velocity model within this layer. Default: 500 m. Active only when Smooth resulting model by horizons is enabled. Increase these values to produce a smoother, more geologically reasonable model; decrease them to preserve sharper lateral velocity contrasts.

Smooth layer by { Top, Middle, Bottom } — Controls the depth reference surface used when applying lateral smoothing to the velocity model within this layer. Default: Top. Smoothing referenced to the top horizon is typical; choosing Middle or Bottom may be more appropriate for strongly dipping reflectors.

Settings

Auto-connection

When enabled, g-Platform automatically connects compatible upstream outputs to the inputs of this module when it is inserted into the flow. Disable if you want to manually control all data connections.

Bad data values option { Fix, Notify, Continue }

Determines how the module responds when it encounters invalid or NaN values in input data. Fix replaces bad values with zero before processing. Notify logs a warning and continues. Continue silently ignores bad values.

Execute on { CPU, GPU }

Selects whether processing runs on the CPU or a CUDA-capable GPU. GPU execution can significantly accelerate the semblance scan across many bins and gradient values.

Distributed execution

Options for running the module across multiple compute nodes in a cluster environment. When enabled, the workload is distributed so that different bins or layers are processed on different nodes simultaneously.

Bulk size

Minimum number of bins processed in each distributed work unit. Larger bulk sizes reduce inter-node communication overhead but may lead to uneven load balancing when the number of bins is not a large multiple of the bulk size.

Limit number of threads on nodes

When enabled, caps the number of CPU threads used on each remote node in a distributed job. Use this to reserve compute resources for other tasks running concurrently on shared cluster nodes.

Job suffix

An optional text label appended to the job name when submitting distributed jobs to the cluster scheduler. Use this to distinguish concurrent runs of the same module in the job queue.

Set custom affinity

Enables manual binding of processing threads to specific CPU cores. Useful in NUMA architectures where memory locality affects performance. Leave disabled unless advised by your system administrator.

Affinity

The specific CPU core mask or affinity group to which threads are bound when Set custom affinity is enabled.

Number of threads

Number of CPU threads used for parallel processing on the local machine. Higher values accelerate the semblance scan across multiple bins simultaneously. Set to the number of available physical cores for optimal throughput.

Skip

When enabled, this module is bypassed and its input data is passed through unchanged. Use Skip to temporarily disable the inversion without disconnecting the module from the flow.

Output data

Output DataItem

The primary data connection carrying the pass-through seismic traces to the next module in the processing flow. The seismic traces themselves are not modified by this module.

Output SEG-Y data handle

Pass-through SEG-Y file handle forwarded from the input.

Output trace headers

Pass-through trace header database forwarded from the input.

Output gather

Pass-through gather data forwarded from the input.

Output stack line

Pass-through stack line definition forwarded from the input.

Output crooked line

Pass-through crooked line geometry forwarded from the input.

Output bin grid

Pass-through bin grid forwarded from the input.

Output sorted headers

Pass-through sorted header index forwarded from the input.

Output velocity

The primary output: a depth-domain interval velocity gather (m/s) representing the final layer-stripped velocity model. Each trace in this gather corresponds to a CMP bin and contains the inverted Vint profile from the surface down to the model base. This output can be connected to depth conversion modules, migration velocity builders, or saved for external use. The depth sampling and number of samples are controlled by the Output velocity DZ and Number of samples parameters.

Information

Graphics

Custom actions

Import horizon from ASCII

Opens a file browser to load one horizon from an ASCII text file. The format of the time values is controlled by the Location and Time measure parameters in the Import horizons from ASCII params group. Each invocation loads one horizon; repeat to load multiple horizons for multi-layer inversion. After import the horizon is immediately displayed in the inline viewers.

Import horizon from binary

Opens a file browser to load one horizon from a g-Platform binary horizon file. Use this when horizons have been exported in native binary format from another g-Platform project or module. After import the horizon is immediately displayed in the inline viewers.

Remove one horizon

Removes the last loaded horizon from the internal horizon set and updates the layer properties table and displays accordingly. Use this to correct a mistaken import without clearing all horizons.

Clear horizons

Removes all loaded horizons and resets the layer properties table. Use this to start a new inversion with a different set of horizons without restarting the module from scratch.

---------------------------

Init table

Populates the Layer properties table based on the currently loaded horizons. Run this action after importing all horizons to create one row per layer. You can then edit the per-layer velocity constraints (gradient range, velocity bounds, and smoothing) before executing the inversion. This action also refreshes the inline horizon displays.

Init model from input Vint gather

Seeds the internal velocity model using the connected Initial Vint input gather rather than deriving the starting model from the VRMS input. Run this action when you want to use a previously built Vint model (e.g., from a prior inversion iteration) as the starting point, enabling iterative refinement. After seeding, the output velocity item is updated to reflect the initialised model.

Find semblance for current layer

Computes and displays the semblance panel for a single user-selected layer without updating the model. A layer selection dialog appears; choose the layer to analyse. The resulting semblance panel (one panel per bin, showing semblance as a function of position and gradient) is displayed in the Semblance chart view and Semblance view by velocity graphics panels. Use this interactively to inspect the velocity–gradient sensitivity for each layer and to verify that the gradient search bounds are appropriate before running the full inversion.