|
<< Click to Display Table of Contents >> Navigation: Modeling > Full waveform inversion 2D |
Full Waveform Inversion 2D (FWI 2D) is an iterative velocity model building method that updates a starting depth velocity model by minimizing the misfit between observed seismic data and synthetically modeled waveforms. Unlike conventional tomography, FWI exploits the full wavefield — including amplitudes, phases, and all wave types — to resolve fine-scale velocity structures that reflection tomography or first-break picking cannot achieve.
At each iteration the module: (1) models synthetic shot records for all (or a decimated subset of) sources using a 2D finite-difference acoustic wavefield simulation; (2) computes the data residual between the observed and modeled records; (3) back-propagates the residual to form an RTM-style gradient of the misfit with respect to velocity; and (4) updates the velocity model along a conjugate-gradient search direction with a step size determined either dynamically (optimal line search) or statically. The updated velocity model from each iteration is saved to disk and displayed in the intermediate-models viewer, allowing you to monitor convergence in real time.
The module supports GPU-accelerated and distributed (multi-node) execution. Before running FWI, ensure your starting velocity model is kinematically accurate enough for the lowest usable frequency (typically produced by refraction tomography or reflection tomography). Use the band-pass filter group to start at low frequencies and progressively expand the bandwidth in successive runs to avoid cycle-skipping.
In addition to the full FWI workflow, the module offers a 1 shot modeling mode in which you can click on a single source location in the Location Map view to forward-model that shot and compare observed versus modeled records side by side — a useful tool for quality-checking your velocity model and wavelet before committing to a full inversion run.
The observed pre-stack seismic dataset in SEG-Y format. This is the field data (or pre-processed data) against which synthetic waveforms will be compared during inversion. The data should be in shot-gather order with correct source and receiver geometry assigned in the trace headers. Apply any desired pre-processing (noise attenuation, muting, amplitude balancing) before connecting this input.
The trace header database associated with the input SEG-Y dataset. The module reads source and receiver coordinates from these headers to position sources and receivers in the 2D velocity model grid. Ensure that source X/Y and receiver X/Y header words are populated and match the geometry of the velocity model.
The starting interval velocity model in the depth domain, specified as a 2D velocity gather (traces represent lateral positions, samples represent depth). This model serves as the initial guess for inversion. A good starting model — close enough to the true velocity to avoid cycle-skipping at the lowest inversion frequency — is critical for convergence. Typically this model is provided by refraction tomography or a smoothed version of a migration velocity model.
The file path and base name (GSD format) to which the updated velocity model will be saved after each iteration. Each iteration appends an iteration index to the base name, producing a series of velocity model files that record the full convergence history. Leave blank if you only need the final in-memory result without persistent disk output.
The file path and base name (GSD format) to which the reverse-time migration (RTM) image produced at each iteration will be saved. The RTM image at each step reflects the subsurface reflectivity implied by the current velocity model and can be used to monitor how the image quality improves as the velocity model converges. Leave blank if RTM output files are not required.
An externally supplied seismic wavelet in gather form (time domain), used when the Wavelet option in the RTM Params group is set to External. This allows you to use a measured or estimated source signature rather than a synthetic wavelet. Not required when using the built-in test Ricker wavelet, the modeling-derived wavelet, or the automatic wavelet extraction option.
The total number of FWI gradient-update iterations to perform. Default: 10. Each iteration computes a new velocity gradient from all configured source groups, determines the optimal step size, and updates the velocity model. The intermediate velocity model and RTM image after each iteration are displayed in the viewer and optionally saved to disk, so you can stop processing early if convergence is reached. For complex velocity structures or wide-bandwidth inversions, 20–50 iterations may be required; for initial low-frequency tests, 5–10 iterations are usually sufficient to assess convergence behavior.
The lower bound on velocity values (m/s) applied as a hard constraint after each model update. Default: 1500 m/s. Any model cell updated to a value below this threshold is clipped back to the minimum. This prevents physically unrealistic velocity values and stabilizes the inversion in areas with weak data coverage. Set this to the minimum expected geological velocity in your survey area (for example, water velocity for marine surveys).
The upper bound on velocity values (m/s) applied as a hard constraint after each model update. Default: 3550 m/s. Cells updated above this value are clipped to the maximum. Set this to the maximum geologically plausible velocity for the target depth range. Must be greater than Min velocity.
The minimum depth (m) from which velocity updates are allowed. Default: 0 m. Model cells shallower than this depth are held fixed at their initial values throughout the inversion. Use this parameter to protect a known shallow section (for example, a water layer or a well-constrained near-surface zone) from being altered by the gradient update.
A parameter group that defines the synthetic wavelet used internally for convolution-based operations and for the Modeling wavelet mode. The sub-parameters below (Frequency, WaveLen, ImpulseType, Spike Time, Spike Amplitude) fully specify the shape and duration of this wavelet.
The dominant (peak) frequency of the synthetic wavelet, in Hz. This parameter belongs to the WaveParams group. Choose a frequency representative of the energy in your data, or the central frequency of the band-pass range applied during inversion. This wavelet is used when the Wavelet option is set to Modeling.
The total time window length of the synthetic wavelet, in seconds. This parameter belongs to the WaveParams group. Set this long enough to capture the full wavelet including any ringing (typically 2–4 periods of the dominant frequency). An overly short window truncates the wavelet and introduces spectral artifacts; an overly long window adds unnecessary zero-padding.
The mathematical shape of the synthetic wavelet. This parameter belongs to the WaveParams group. Options include: Ricker1 (second derivative of a Gaussian — the most common choice for FWI), Ricker2, AKB, Berlage, Gaussian, GaussianDeriv, MinPhase, Klauder, Ormsby, Spike, Zero, Unit. Ricker1 is the recommended default for most FWI applications.
The time position of the spike within the wavelet window, in seconds. Default: 4 s. This parameter is relevant only when ImpulseType is set to Spike. It positions the single-sample impulse within the wavelet buffer.
The amplitude of the spike when ImpulseType is set to Spike. Default: 1. Adjust if you need to scale the spike wavelet to match the amplitude level of your data.
A parameter group controlling how the input seismic data is organized and how the finite-difference modeling is configured in terms of source count, output record length, and sample rate. The parameters in this group govern the computation budget and the output data dimensions for both FWI gradient computation and single-shot modeling.
When enabled, random phase encoding is applied to source signatures before simultaneous-source (multisource) modeling. Phase encoding reduces cross-talk between simultaneously modeled shots and is standard practice in efficient multisource FWI workflows. Enable this parameter when using multisource grouping to suppress interference artifacts in the gradient.
The number of individual source shots blended together into a single simultaneous super-shot for gradient computation. Increasing this number reduces the number of modeling runs required per iteration (improving speed) at the expense of higher cross-talk noise in the gradient. A value of 1 performs conventional sequential-source FWI with no blending.
The spacing (in shot index units) between individual sources selected within a single blended group. Increasing the step spreads the sources within a group further apart in the dataset, which can reduce coherent cross-talk between blended shots.
The stride (in source index units) between successive multisource groups. This parameter controls how groups are stepped through the full source array so that together they collectively cover all shot positions across iterations.
The maximum number of multisource groups to compute per iteration. Limiting the number of groups further reduces the computation time per iteration at the cost of using a less complete survey coverage in each gradient estimate. Use this to perform rapid early-stage inversions; increase the limit for later, high-quality iterations.
When enabled, a free-surface boundary condition (zero pressure at the top of the model) is applied in the finite-difference wavefield simulation. This allows the model to generate surface-related multiples, which improves the match with land or shallow-water data that contains significant free-surface reflections. Disable this option (absorbing boundary at top) for deep-water marine data where the sea surface is far from the receiver array and free-surface multiples have been removed during pre-processing.
The number of time samples in each modeled (synthetic) shot record. Default: 4001 samples. This determines the total modeled record length: Number of output samples multiplied by the Output sample rate. Set this to cover the full two-way travel time of interest. Match or slightly exceed the length of the input observed data to ensure that all relevant arrivals are included in the residual computation.
The time sample interval (in seconds) of the modeled shot records stored for comparison and output. Default: 0.001 s (1 ms). Note that the internal finite-difference time step (DT in RTM Params) is typically much smaller for numerical stability; this parameter is the coarser rate at which modeled wavefields are resampled for data comparison. This rate should match the sample rate of the input observed data.
A parameter group controlling the reverse-time migration engine used for both forward modeling (source wavefield propagation) and gradient back-propagation (receiver wavefield). These settings govern numerical accuracy, boundary absorption, aperture definition, and image condition options. Tuning these parameters correctly is essential for both modeling quality and gradient stability.
When enabled (default: on), wavefield snapshots are saved to disk during forward propagation and reloaded during back-propagation to form the gradient image condition. This is the standard checkpointing approach and avoids storing the entire 3D wavefield in memory. If disabled, wavefields are kept entirely in memory — feasible only for small models on systems with very large GPU memory. The path for temporary snapshot files is set by the Temporary snaps path parameter.
The directory path where temporary wavefield snapshot files are written during forward propagation (when Use snaps is enabled). Snapshot files can be large (several GB per shot), so point this to a fast local drive with sufficient free space. Leave blank to use the system temporary directory. Snapshot files are deleted automatically when the module completes or is cancelled.
The extra lateral distance (m) added beyond the outermost source and receiver positions when defining the finite-difference modeling grid. Default: 500 m. This additional margin accommodates wavefield energy that travels laterally beyond the receiver array and prevents edge effects from corrupting the modeled data at the boundaries of the acquisition geometry. Increase this value when the model contains strong lateral velocity contrasts or when diving waves travel significant horizontal distances.
The number of absorbing boundary (PML/sponge) layers added around the finite-difference grid on all non-free-surface sides. Default: 20 grid points. The absorbing layer damps outgoing waves to prevent artificial reflections from the model boundaries contaminating the modeled wavefield. Increasing this value improves absorption quality (fewer boundary reflections) at the cost of larger grid size and longer computation. A value of 20 is typically sufficient; increase to 30–50 if strong boundary reflections are observed.
Selects the source wavelet used for finite-difference forward modeling. Options: Modeling — uses the synthetic wavelet defined in the WaveParams group; External — uses the wavelet supplied via the Wavelet gather input; Test — generates a built-in Ricker wavelet at the frequency specified by the Frequency (FM) parameter (default and recommended for initial tests); Extract — automatically estimates the source wavelet from the data using the Wavelet detection parameters. Default: Test.
The peak frequency (Hz) of the built-in test Ricker wavelet used for forward modeling when the Wavelet option is set to Test. Default: 25 Hz. For a frequency-continuation FWI strategy, start with a low value (for example, 3–5 Hz) and progressively increase in subsequent runs to add higher-frequency detail while keeping the inversion converged.
The finite-difference time stepping interval (in seconds) used during wavefield propagation. Default: 0.0001 s (0.1 ms). This must satisfy the Courant stability criterion: DT < grid spacing / (maximum velocity x sqrt(2)). If DT is too large the finite-difference scheme becomes unstable and produces exploding wavefields. In practice, use the smallest value consistent with stability for the maximum velocity in your model. Do not confuse this with the output sample rate — the internal time step is typically 10 times smaller than the data sample interval.
The time step interval (in seconds) at which wavefield snapshots are cross-correlated to form the velocity gradient (image condition). Default: 0.001 s (1 ms). This is typically the same as the output data sample rate. A coarser correlation step reduces the number of disk read/write operations for snapshot files and speeds up gradient computation, but may slightly reduce gradient accuracy. It must be an integer multiple of the internal time step DT.
Selects between two image condition formulations. When enabled (default), the zero-lag cross-correlation image condition is used: the gradient is formed by correlating the forward source wavefield with the back-propagated receiver wavefield at each time step. When disabled, an alternative (newer) image condition is applied. The standard zero-lag cross-correlation image condition is the industry default and is recommended for most applications.
When enabled (default: on), the RTM gradient image is accumulated over all source groups at each iteration, producing a composite gradient that represents the full survey coverage. When disabled, only the gradient from the last source group is used. Keep this enabled for stable gradient estimates; disable only for specialized single-source diagnostics.
When enabled, the polarity of the computed gradient image is inverted before applying the velocity update. Default: off. Enable this if the gradient direction appears inverted (i.e., the misfit increases rather than decreases after each update), which can occur depending on data polarity convention. Typically not needed when data is in standard SEG polarity.
A small regularization constant added to the denominator of the source-illumination normalization applied during the image condition. Default: 1e-9. This prevents division by zero in poorly illuminated model cells (for example, at shallow edges or behind strong reflectors). If the gradient shows numerical noise or spikes in shadow zones, increase this value slightly (for example, to 1e-6).
A parameter group controlling optional adaptive subtraction of modeled data from observed data, used for visualization of the data residual. Adaptive subtraction estimates and removes a local matching filter between the observed and modeled records before computing the difference, which compensates for amplitude and phase differences not yet captured by the velocity model. The resulting adaptively subtracted residual is used for display purposes to help diagnose the quality of the current model fit — it is not used in the gradient computation unless the corresponding Use adaptive subtraction option is also enabled for gradient computation.
When enabled, adaptive subtraction (with the parameters below) is applied to the data residual used to compute the FWI gradient. Default: off. This can improve convergence when there are systematic amplitude or low-frequency phase differences between observed and modeled data that are not related to the velocity model. Use cautiously — overly aggressive adaptive subtraction can remove valid gradient signal.
When enabled, adaptive subtraction is applied specifically during the single-shot modeling (1 shot modeling) mode to improve the visual match between observed and modeled gathers. Default: off. Enabling this helps evaluate the local waveform fit beyond what velocity alone controls, such as source amplitude scaling and wavelet shape differences.
The half-width of the spatial (trace) window used by the adaptive subtraction filter, measured in number of traces. Default: 15 traces. The filter is estimated independently within each local window. Larger windows produce smoother (more spatially consistent) filters; smaller windows allow the filter to adapt to more rapid lateral variations in the data.
The half-length of the time window used by the adaptive subtraction filter, in seconds. Default: 0.04 s (40 ms). Set this to cover the expected length of the time-varying differences between observed and modeled data in the residual. A window of 40–100 ms is typical.
The minimum time shift (lag) in seconds allowed in the adaptive subtraction matching filter. Default: 0.0 s. Together with Max vertical shift this defines the range of time lags over which the filter is optimized. Set the min lag to a small negative value to allow the filter to compensate for residual timing shifts in either direction.
The maximum time shift (lag) in seconds allowed in the adaptive subtraction matching filter. Default: 0.04 s (40 ms). Do not set this larger than the expected maximum wavelet stretch between observed and modeled data, as an overly wide lag range allows the filter to remove valid reflections rather than just correcting timing errors.
The increment between successive lag values sampled within the Min/Max vertical shift range. Default: 0.016 s (16 ms). A finer step produces a more densely sampled lag axis for the filter but increases computation time. Set the step to roughly one period of the dominant frequency for a well-sampled filter.
The linear solver used to estimate the adaptive subtraction filter coefficients. Options: LSQR (standard least-squares; default), LSQR advance (LSQR with additional regularization), FISTA (fast iterative shrinkage-thresholding; promotes sparse filter solutions). Use LSQR for most cases; try FISTA when the adaptive filter tends to become noisy or overfitted.
The regularization strength for the adaptive subtraction filter solver, expressed as a fraction (percent). Default: 0.0001. Increasing Lambda adds more regularization, producing smoother, more stable filter solutions but potentially under-fitting the residual. Keep at the default unless the subtraction filter is unstable or noisy.
A parameter group that controls a trapezoidal band-pass filter applied to the observed (input) seismic data before computing the FWI residual. Applying this filter allows you to restrict the inversion to a specific frequency band. The standard FWI workflow begins with a low-frequency band (for example, 2–9 Hz) to build a kinematically accurate macro-model before adding higher-frequency content in subsequent runs.
Enables or disables the band-pass filter on the observed input data. Default: on. It is strongly recommended to leave this enabled and configure the frequency corners to implement a frequency-continuation strategy. Disabling it inverts on the full bandwidth simultaneously, which is more susceptible to cycle-skipping.
The low-cut (high-pass) ramp start frequency of the band-pass filter applied to the observed data, in Hz. Default: 2 Hz. Frequencies below this value are fully rejected. Set to zero or a very low value to include the lowest usable frequency in your data.
The low-cut ramp end frequency (pass-band low corner) of the band-pass filter applied to the observed data, in Hz. Default: 3 Hz. Frequencies above this value and below Frequency 3 pass without attenuation. The ramp between Frequency 1 and Frequency 2 provides a smooth transition to avoid Gibbs ringing.
The high-cut ramp start frequency (pass-band high corner) of the band-pass filter applied to the observed data, in Hz. Default: 6 Hz. Frequencies between Frequency 2 and Frequency 3 pass fully. In the first stage of a frequency-continuation workflow, Frequency 3 defines the upper edge of the low-frequency inversion band.
The high-cut ramp end frequency of the band-pass filter applied to the observed data, in Hz. Default: 9 Hz. Frequencies above this value are fully rejected. Together, Frequency 3 and Frequency 4 define the taper at the top of the pass-band.
A separate band-pass filter group applied to the modeled (synthetic) shot records before computing the residual. This allows you to apply the same or a different frequency restriction to the synthetic data as to the observed data, ensuring that the residual is computed within a consistent frequency band. Typically the same corner frequencies as the observed-data band-pass are used.
Enables or disables the band-pass filter on the modeled synthetic data. Default: on. Should generally match the Use band-pass setting for the observed data to ensure a fair residual comparison.
Low-cut ramp start frequency for the band-pass filter applied to the modeled data, in Hz. Default: 2 Hz. See the description of Frequency 1 in the Band-pass parameters group for the observed data — the same principles apply.
Low-cut ramp end frequency for the band-pass filter applied to the modeled data, in Hz. Default: 3 Hz.
High-cut ramp start frequency for the band-pass filter applied to the modeled data, in Hz. Default: 6 Hz.
High-cut ramp end frequency for the band-pass filter applied to the modeled data, in Hz. Default: 9 Hz.
A parameter group that controls automatic source wavelet estimation from the data, active when the Wavelet option is set to Extract. The extracted wavelet is estimated by spectral division (or matching) of the modeled versus observed data, then optionally smoothed and converted to minimum phase. Accurate wavelet estimation is important because an incorrect wavelet shape directly degrades the quality of the gradient and can prevent convergence.
The width (in Hz) of the frequency-domain smoothing window applied to the estimated source wavelet spectrum. Default: 1 Hz. Smoothing suppresses spectral noise in the extracted wavelet at the cost of frequency resolution. Increase this value if the extracted wavelet spectrum is erratic or contains artifacts; decrease it to preserve fine spectral features in the wavelet.
When enabled, the extracted wavelet is converted to minimum-phase after estimation. Default: off. Use this option when modeling with a minimum-phase assumption is more appropriate for your data acquisition geometry (for example, dynamite sources). Leave disabled for zero-phase or mixed-phase data.
The start time (in seconds) of the time window within each shot record used for wavelet estimation. Default: 0 s. In some acquisition geometries the first-arrival energy (direct wave) provides the clearest source signature; in others a specific early-time window avoids ground roll or shallow refracted energy. Adjust this value to select the time window that contains the cleanest source signature in your data.
A parameter group controlling how the velocity model is updated at each iteration using the computed gradient. This includes the step size (P param), whether the step size is determined automatically or fixed, and approximation options for the optimal step-size line search. Correct configuration of these parameters directly determines how quickly and stably the inversion converges.
The scaling factor (also called the step-size pre-multiplier) used to normalize the gradient before applying the velocity update. Default: 0.05. The update step is computed as P param multiplied by the ratio of the RMS slowness to the RMS gradient, scaled by the optimal line-search factor (gamma). Increasing P param makes larger velocity updates per iteration (faster convergence but risk of overshooting); decreasing it produces more conservative updates. Valid range: -1 to 1.
Selects how the velocity update step size is determined. Options: Dynamic — the optimal step size (gamma) is found automatically via a parabolic line search by evaluating the misfit at several candidate step sizes; Static — a fixed user-specified step size (Static update step) is applied at every iteration. Dynamic mode (default) is recommended for most FWI runs as it adapts the step size to the local curvature of the misfit function. Static mode can be useful when fine-tuning a nearly converged model or when computation cost of the line search is prohibitive.
The fixed step size (gamma) applied when Update type is set to Static. Default: 0.347. This is a dimensionless multiplier applied to the normalized gradient direction. Determine a suitable value by observing the optimal step sizes found during an earlier dynamic-mode run, then fix this value to skip the line search in subsequent iterations.
A parameter group controlling optional smoothing of the source illumination (the denominator used in gradient normalization). Smoothing the illumination before division can reduce artifacts in the gradient caused by rapid spatial variation in illumination intensity, particularly near the surface or at the edges of the model.
Enables or disables smoothing of the illumination map before gradient normalization. Default: off. When enabled, the illumination is smoothed by a 2D running-average filter of size defined by the Horizontal window and Vertical window parameters below. Enable this if the gradient shows strong near-surface noise or illumination-related stripe artifacts.
The lateral smoothing window size (in grid traces) applied to the illumination map when Smooth is enabled. Default: 10 traces. Increase to produce a more aggressively smoothed illumination; decrease to preserve more lateral detail in the illumination normalization.
The depth smoothing window size (in grid samples) applied to the illumination map when Smooth is enabled. Default: 10 samples. Together with the Horizontal window, this defines the 2D footprint of the illumination smoothing kernel.
A parameter group controlling a matching filter applied to scale and align the modeled data to the observed data amplitude level before computing the residual. This matching step compensates for differences in absolute amplitude between observed and synthetic records that arise from source amplitude uncertainty, geometric spreading approximations, and other amplitude-affecting factors not captured by the velocity model alone. Proper amplitude matching prevents the gradient from being dominated by amplitude differences rather than travletime differences.
When enabled (default: on), a matching filter is estimated to determine the amplitude scaling factor for the source wavelet. This automatically adjusts the wavelet amplitude to match the data level, removing the need to manually scale the wavelet. If the Detect wavelet amplitude each iter option is also enabled, this rescaling is updated at every iteration to track changes in model amplitude as the velocity evolves.
When enabled, a multi-lag matching filter (as opposed to a single amplitude scalar) is applied to the modeled data to match the observed data before computing the residual. Default: off. The filter is estimated using the solver type and lag range specified in this group. Enabling a full matching filter can compensate for wavelet shape differences at the cost of potentially removing some phase information that should be driving the gradient. Use with care, and only when a simple amplitude scalar (Use matching for detect wavelet amplitude) is insufficient.
The minimum lag (in seconds) of the matching filter used in the Matching parameters group. Default: 0.0 s. Defines the earliest time shift the filter is allowed to apply. This parameter is used only when Use matching filter is enabled.
The maximum lag (in seconds) of the matching filter used in the Matching parameters group. Default: 0.0 s. Set this to a value corresponding to the expected maximum time shift between observed and modeled waveforms, which should be much less than one dominant period to avoid cycle-skipping through the matching filter. This parameter is used only when Use matching filter is enabled.
The linear solver used to estimate the matching filter coefficients. Options: SVD (singular value decomposition), Cholesky (default — efficient and stable for well-conditioned systems), Lsqr (iterative least-squares for large or ill-conditioned systems). Cholesky is recommended for most cases.
The regularization strength for the matching filter solver, expressed as a fraction (percent). Default: 1. Higher values add more regularization to the matching filter, producing smoother and more stable filter solutions but potentially under-fitting amplitude differences. Increase Lambda if the matching filter appears noisy or if the solver produces unstable solutions.