MPFI
Description
MPFI regularizes and interpolates pre-stack (or any 5D-organized) seismic data onto a user-defined output geometry - filling acquisition gaps, densifying fold, or reconstructing a clean regular bin grid from irregular field geometry. It splits the survey into overlapping spatial windows (up to four axes, typically midpoint-X/Y plus optional offset or azimuth), and within each window and short time gate performs a spatial Fourier reconstruction using either a greedy Matching Pursuit algorithm or an iterative POCS (Projection Onto Convex Sets) algorithm. An optional dip-limitation table lets you protect or suppress specific apparent-velocity/frequency bands during reconstruction, useful for avoiding artifacts around steep noise such as ground roll. MPFI is normally run as a batch job over a whole survey, writing a new regularized dataset that is better suited as input to migration or other processes that need regular, well-sampled data. Two convenience actions are available before running a full job: 'Update location map' draws the input and target geometry for a visual coverage check, and 'Calculate number of chunks' estimates job size without executing the full interpolation.
Input data
Input data
The seismic dataset to be regularized, used when Work mode is set to 'Trace headers' (whole-survey batch mode).
Input trace headers
The geometry/header table of the input data - one row per trace with source, receiver and bin coordinates - used to select input traces and populate the axis and grouping-header selectors.
Input gather
A single in-memory gather, used only when Work mode is set to 'Gather'; useful for interactively testing settings on one gather before committing to a full-survey run.
Target trace headers
The desired output trace geometry: the positions (with headers) at which new, regularized traces should be created. This defines what grid the interpolation is reconstructing onto.
Parameters
Work mode
Chooses the execution path. 'Trace headers' reads and writes whole survey files and supports distributed processing across a compute cluster - the normal production mode. 'Gather' operates on a single in-memory gather, useful for interactive QC or testing settings before running the full survey.
Default: Trace headers.
Try nonuniform MP filter
When enabled, the reconstruction is built directly from the traces' true, possibly irregular, coordinates instead of first snapping them to a regular bin grid, giving more accurate results for genuinely irregular or legacy geometries. This forces the Matching Pursuit algorithm, since POCS and GPU execution are unavailable in this mode. Turn this on for irregular field geometries; leave it off for standard regular-bin surveys where it is not needed and is slower.
Default: disabled (off).
Output file name
The destination internal dataset (.gsd) that the regularized output is written to, used in 'Trace headers' work mode.
Compress
Sets the sample storage precision of the output file. Lower bit depths shrink file size at the cost of amplitude resolution; keep 32-bit unless disk space is a hard constraint.
Default: 32 bits.
Write direct
Controls the write mode used for the output file. This is a file I/O setting that most users can leave at its default value.
Default: enabled.
Rewrite existing file
When enabled, an existing output file at the same path is deleted and rewritten from scratch rather than reused. Enable this when re-running a job over an old output file; leave off to protect a previous result from being overwritten by mistake.
Default: disabled (off).
Group traces by header
When enabled, input and target traces are split into independent groups by a chosen header value and each group is regularized separately. Use this when a single job spans multiple unrelated volumes or lines that should not be interpolated across each other.
Default: disabled (off).
Header for grouping
The trace header used to define the groups above (for example a survey or line identifier); only shown when Group traces by header is enabled.
How to process groups with empty input
Determines what happens when a group has target positions but no matching input traces: 'Skip' silently leaves that group out, 'Create empty traces' writes zero-filled placeholder traces, and 'Stop' aborts the whole job with an error. Choose 'Stop' when missing input for a group signals a data problem you want caught immediately; use 'Skip' for routine coverage gaps.
Default: Skip.
Write additional headers
When enabled, extra QC headers are written to every output trace recording how many input traces contributed, the bin fold, and the distance from the output trace's position to the center of mass of the traces used to build it. These are useful for building fold/quality QC maps after the run; disable only if these extra headers are not needed.
Default: enabled.
Additional header default value
The fallback value written into the additional QC headers for traces that could not be computed, for example in empty-input groups.
Default: 0.
Aperture parameters
Update axis limits before run
When enabled, the axis start/end values below are automatically recomputed from the target geometry immediately before execution, instead of relying on values entered manually or set with the 'Update axis limits' action. Convenient when the target geometry changes between edits and you do not want to remember to refresh the limits each time.
Default: disabled (off).
Relative size of padding
Expands the Fourier transform grid on each side of every processing window by this fraction before transforming, leaving an empty margin that reduces spectral wraparound artifacts at window edges. Increase from 0 if reconstructed output shows wraparound-style artifacts near window edges; larger values cost more compute per window. Valid range is 0 to 1 (0-100%).
Default: 0 (0%).
Midpoint PX start / Midpoint PX end
The start and end of the first spatial axis (midpoint X) over which processing windows are laid out. These are typically filled automatically using the 'Update axis limits' action or the Update axis limits before run option, but can be entered manually to restrict the job to part of the survey. Units are meters.
Default: 0 m / 0 m.
Midpoint PX aperture
The half-width of each processing window along midpoint-X - the window spans roughly plus/minus this value. A larger aperture feeds the reconstruction more input traces (better wavenumber resolution, fewer artifacts) but increases compute cost per window and can blur genuinely local structure; size it relative to the typical bin spacing and target fold. Valid range is 0.1 m and above.
Default: 100 m.
Midpoint PX window overlap
The fractional overlap between adjacent midpoint-X windows, used to taper and blend results across window boundaries and avoid visible seams. Higher overlap smooths boundaries but increases the number of windows and therefore runtime. Valid range is 0 to 0.5.
Default: 0.3.
Midpoint PY start / Midpoint PY end
The start and end of the second spatial axis (midpoint Y), with the same role as the Midpoint PX start/end values. Units are meters.
Default: 0 m / 0 m.
Midpoint PY aperture
The half-width of each processing window along midpoint-Y, with the same trade-offs as Midpoint PX aperture. Valid range is 0.1 m and above.
Default: 100 m.
Midpoint PY window overlap
The fractional overlap between adjacent midpoint-Y windows, with the same role as Midpoint PX window overlap. Valid range is 0 to 0.5.
Default: 0.3.
Third axis header
An optional third windowing axis defined by any trace header, such as offset or azimuth. This is what makes the interpolation work in higher dimensions beyond simple midpoint X/Y and time. Leave blank to window only in two spatial dimensions.
Default: none.
Third axis start / end / step
The value range and window step size along the third axis, used only when a Third axis header is selected. The step size sets how finely the windows are spaced along that axis; the step value has a minimum of 0.001.
Default: start 0, end 0, step 1.
Fourth axis header
An optional fourth windowing axis, for example pairing offset and azimuth as the third and fourth axes together. Requires a Third axis header to also be set.
Default: none.
Fourth axis start / end / step
The value range and window step size along the fourth axis, used only when a Fourth axis header is selected. The step value has a minimum of 0.001.
Default: start 0, end 0, step 1.
Min live bins
The minimum number of occupied output bins a processing window must contain before it is processed; windows with fewer live bins are skipped. Raise this to avoid spending time on windows with little useful output. Minimum value is 1.
Default: 1.
Min total fold
The minimum total number of live input traces required within a window before it is processed, protecting against reconstructing output from too little data. Raise this on noisy or sparsely sampled surveys to avoid unreliable output; minimum value is 1.
Default: 1.
Min bin fold
The minimum fold required in an individual input bin within the window for that bin to contribute. Minimum value is 1.
Default: 1.
Max bin fold
Caps the number of input traces used per bin; extra traces beyond this are excluded, bounding compute cost in very high-fold areas. Lower this on very densely sampled data to speed up runs without materially affecting reconstruction quality. Minimum value is 1.
Default: 1000.
MPFI parameters
Grid axis
Defines which coordinate pair the spatial Fourier grid is built on. Currently 'INLINE - CROSSLINE' is the only available option.
Default: INLINE - CROSSLINE.
Algorithm
Selects the reconstruction engine. Matching Pursuit greedily picks the strongest wavenumber component each iteration and subtracts its contribution - it is sparse and fast-converging, and supports GPU execution and the nonuniform-geometry path. POCS instead performs iterative transform/threshold/inverse-transform passes with the known data re-injected each pass, which can behave more conservatively on noisy or aliased data but only runs on CPU. Try POCS if Matching Pursuit output looks overly sparse or peaky in the wavenumber domain; otherwise Matching Pursuit is the faster default. Note this option is hidden and forced to Matching Pursuit when Try nonuniform MP filter is enabled.
Default: Matching Pursuit.
Number of iterations
The number of greedy or POCS iterations performed per frequency slice. More iterations recover more spectral detail and fit the input data more closely, at proportional compute cost; too few leaves residual, unexplained energy in the result, while too many risks fitting noise. Both algorithms include internal convergence checks, so raising this mainly matters for slow-converging (very sparse or gappy) geometries. Minimum value is 0.
Default: 100.
Step setting
Only shown when Try nonuniform MP filter is enabled. 'Auto' derives the spatial sampling step from the natural spacing of the input traces; 'Manual' lets the user fix the step explicitly using the values below.
Default: Auto.
Nonuniform step X / Nonuniform step Y
A manual override of the spatial grid step used to band-limit the nonuniform Matching Pursuit dictionary, active only when Step setting is 'Manual'. Set it finer than the natural trace spacing to resolve steeper dips at the cost of a larger and slower transform grid; set it coarser to save compute. Units are meters, minimum 0.001.
Default: 25.0 m / 25.0 m.
Min frequency / Max frequency
The temporal-frequency band that is actually reconstructed; frequencies outside this range are left at zero in the output. Set this to match the real signal bandwidth of the data (for example, matching source and receiver bandwidth) to avoid wasting computation on frequencies with no real signal and to prevent injecting noise energy outside the useful band. Units are Hz, minimum 0.
Default: 0 Hz / 125 Hz.
Dip limitation
An optional, togglable time-variant dip (apparent-velocity) filter applied during reconstruction. When enabled, a table of rows lets you define, for each start time, a velocity band (V1-V2, m/s) and a frequency band (F1-F2, Hz) that together form a soft-edged (tapered) frequency/dip window active from that time onward. Use it to protect a known reflector dip range from being altered by the interpolation, or to suppress a known noise dip family such as ground roll or multiples, by entering that family's apparent velocity and frequency range. When disabled, no dip constraint is applied.
Default: disabled (off); default row values are Start time 0 ms, V1 300 m/s, V2 600 m/s, F1 0 Hz, F2 125 Hz.
Mute dips inside area
Active only when Dip limitation is enabled. When on, energy inside the defined velocity/frequency band is attenuated and everything else passes through - use this to suppress a known unwanted dip family such as noise. When off, the logic is inverted: only energy inside the band passes and everything else is attenuated - use this to isolate and protect a specific dip family while suppressing everything else.
Default: enabled.
Time window
The length of the temporal analysis gate each trace is cut into before spatial Fourier reconstruction, with overlap-add reassembly afterward. Shorter windows track time-variant dip and moveout more accurately (more accurate near strong normal-moveout stretch) but cost more compute since more windows are needed; longer windows are faster but blur time-variant dip behavior.
Default: 0.2 s (200 ms).
Taper length
The length of the cosine taper applied at each time window's edges, and reused for overlap-add blending between adjacent time windows. Increase it if you see banding or artifacts at window boundaries; keep it well under half of the Time window length. Minimum value is 0.0001 s.
Default: 0.02 s (20 ms).
Mix traces in bin
When multiple input traces fall in the same output bin, this switches from keeping only the trace nearest the bin center (the default behavior) to a distance-weighted average of all traces in that bin. Enable this to use all available fold per bin rather than discarding redundant traces.
Default: disabled (off).
Mix traces weight power
Active only when Mix traces in bin is enabled. Controls how quickly a trace's weight falls off with its distance from the bin center; a higher power more strongly favors the trace closest to the bin center, approaching nearest-trace-only behavior at high values. Minimum value is 0.
Default: 1.0.
Weight traces by distance to central bin
Applies an additional taper that down-weights input traces the farther they are from the center of the current aperture window, reducing edge artifacts and discontinuities between neighboring overlapping windows.
Default: disabled (off).
Weight traces by distance to central bin power
Active only when Weight traces by distance to central bin is enabled. Controls how aggressively that window-center distance weighting falls off; higher values concentrate influence more tightly on traces near the window center. Minimum value is 0.
Default: 1.0.
Output data
Output gather
The regularized, interpolated in-memory gather, produced only when Work mode is set to 'Gather'.
Output data file
The full regularized dataset written when Work mode is set to 'Trace headers', containing one output trace per target position, each carrying the interpolated waveform plus, if enabled, the additional fold and quality-control headers.
Location map
2D map overlays of the input and target source, receiver and bin positions, used for visual QC of geometry coverage and gaps before running a full job. Populated using the 'Update location map' action.
References
Özbek, A., Özdemir, K. and Vassallo, M., 2009, Interpolation by matching pursuit: SEG Technical Program Expanded Abstracts, 28, 3254-3258.