|
<< Click to Display Table of Contents >> Navigation: Noise attenuation > FDNA plus |
FDNA plus (Frequency-Dependent Noise Attenuation plus) is an advanced noise attenuation module that suppresses incoherent noise while preserving the coherent seismic signal. The algorithm works by decomposing each gather into narrow frequency bands and computing, within each band and within a sliding time-trace window, the instantaneous amplitude envelope of every trace. Samples whose amplitude exceeds a user-defined threshold — expressed in multiples of the local reference amplitude (sigma units) — are identified as noise and attenuated. Because the threshold can vary both in time and across frequency bands, the filter adapts to the non-stationary character of real seismic noise.
An optional model gather (etalon) can be connected to provide a clean reference for computing expected amplitude levels. When no model gather is connected, the module uses the input gather itself as the reference. The filter supports iterative application — running multiple passes progressively deepens noise suppression. A hyperbolic taper zone protects shallow, high-amplitude events (such as direct waves and refractions) from being incorrectly modified near offset-dependent early-arrival times.
The module includes an interactive amplitude histogram display and a frequency-time threshold spectrum view that help the user calibrate the threshold table before and after processing. Use this module on pre-stack CMP or shot gathers as part of a noise attenuation sequence, particularly when random noise has a strong frequency-dependent character.
The standard input data container that carries the SEG-Y file reference, trace headers, and sorted gather index together. Connect this item to the upstream output of the previous processing module in your workflow. When this item is connected, the individual input sub-items (SEG-Y handle, trace headers, sorted headers) are populated automatically.
A reference to the SEG-Y file containing the input seismic traces. This item is typically propagated automatically when the Input DataItem is connected. It points to the on-disk storage of the pre-stack gather data to be denoised.
The trace header table associated with the input gather. The module reads the offset value from each trace header to compute the hyperbolic taper start time for that trace. This item is propagated automatically from the Input DataItem.
The pre-stack seismic gather to be processed. This is the primary seismic data input. Each gather is processed independently — it can be a CMP gather, a shot gather, or any other pre-stack sorting. The gather must have the same number of traces and samples as the model gather (if a model gather is connected).
The stack line geometry descriptor for 2D data. This item is part of the standard ISequence data container and is carried through from the upstream module without modification.
The crooked 2D line geometry descriptor. This item is passed through unchanged from the upstream processing module as part of the standard data container.
The 3D bin grid definition. This item is part of the standard data container and is passed through from the upstream module without modification.
The sorted trace headers index that defines the gather sorting order (e.g., by CMP number). This item is propagated automatically as part of the Input DataItem connection.
An optional reference gather used to establish the expected amplitude levels for noise detection. When connected, the module computes the local reference amplitude from this model gather (instead of from the input gather itself), which allows more accurate noise detection in cases where the input data is heavily contaminated. The model gather must have exactly the same number of traces and samples as the input gather. If the model gather contains too many zero samples relative to the input (as determined by the Threshold value parameter), it is considered invalid and the input gather is used as the reference instead. A typical use case is to connect a pre-NMO stack or a previously denoised version of the data as the model.
Selects how the lateral trace window width (the number of neighbouring traces used to estimate the local reference amplitude) is specified. Set to Simple to use a single fixed window width for all times. Set to Time dependent to specify a window width that varies with two-way travel time, which is useful when reflection moveout causes large offset variation at shallow times. Default: Simple. This parameter controls the visibility of the two sub-parameters below.
Visible only when Trace window type is set to Simple. Specifies the number of adjacent traces in the lateral window used to estimate the reference amplitude. A value of -1 means all traces in the gather are used (global estimate per time sample). Larger windows give a smoother, more stable amplitude estimate but may underestimate local amplitude variations. Smaller windows are more sensitive to local noise bursts. Default: -1 (all traces). Units: traces.
Visible only when Trace window type is set to Time dependent. This is a collection of (Time, Trace window width) pairs that define how the lateral window size changes with two-way travel time. Values are interpolated linearly between the defined time-depth pairs. Default entries: (0 s, 10 traces), (0.5 s, 25 traces), (1 s, 50 traces), (2 s, 100 traces). Use a narrower window at shallow times where offsets are small and a wider window at late times where the gather is densely populated. Each row has two fields: Time (s) and Trace window width (number of traces).
The half-length of the vertical time window (in seconds) used to estimate the local reference amplitude at each sample. The filter computes the instantaneous Hilbert envelope amplitude of the model gather within this time window (centred on each sample) and uses it as the reference level against which individual input trace amplitudes are compared. A larger window gives a smoother reference level and is appropriate for data with slowly varying amplitude trends. A smaller window responds faster to amplitude transients. Default: 0.2 s. Minimum: 0.001 s.
The step size (in seconds) at which the filter slides the time window along each trace. Smaller steps produce smoother, more continuously updated amplitude estimates but increase computation time. Larger steps are faster but may create visible discontinuities in the output at abrupt amplitude changes. This value must be at least one sample interval. Default: 0.004 s. Minimum: 0.002 s.
The number of times the denoising filter is applied iteratively to the gather. On the first iteration the filter processes the original input gather. On each subsequent iteration it processes the output of the previous pass. More iterations progressively reduce residual noise but can also start to suppress weak signal if overused. For most datasets, 1 to 3 iterations are sufficient. Default: 1.
When enabled, the filter normalises the frequency spectrum of the output gather to match the spectral shape of the model gather before returning the result. This can help preserve the relative frequency balance across the bandwidth when strong noise concentrates in specific frequency bands. Default: false (disabled).
When enabled, the filter dynamically adjusts the lateral trace window around each trace, narrowing it when the local noise field is inhomogeneous. This improves noise suppression in heterogeneous datasets where noise amplitude varies strongly from trace to trace. Default: false (disabled). Enable this option when the gather shows clustered or burst-type noise that does not fill the entire trace window uniformly.
Selects the statistical operator used to compute the local reference amplitude from the model (or input) gather within the time-trace window. Average uses the mean amplitude, which is faster. Median uses the median amplitude, which is more robust against isolated large-amplitude spikes in the reference gather but requires more computation. Use Median when the model gather itself may contain outliers. Default: Average.
When enabled, the module compares the zero-sample count in the output gather to that of the input gather after each processed gather. If the output contains more than one additional zero sample at any time level (relative to the input), the module stops with an error message identifying the problematic sample index and its time in milliseconds. Enable this option during quality-control testing to catch unexpected filter behaviour. Disable it in production to allow uninterrupted batch processing. Default: false (disabled).
A fractional threshold (range 0 to 1) used to determine whether a connected model gather is sufficiently valid. The module counts the fraction of non-zero samples in the model gather relative to the total non-zero samples in the input gather. If this ratio exceeds the Threshold value, the model gather is accepted; otherwise, the input gather is used as the reference instead. For example, a value of 0.3 means the model gather must have at least 30% as many non-zero samples as the input gather. Default: 0.3. Minimum: 0.01. Units: fraction (dimensionless).
A trace identification code written into the trace ID header field of all output traces when the model gather is found to be invalid (i.e., does not pass the Threshold value check). This allows downstream QC tools to flag and identify gathers that were processed using the input itself as the reference rather than a dedicated model. The value follows the SEG-Y trace identification code convention (e.g., 89 = dead trace). Default: 89.
A parameter group that defines a hyperbolic mute-taper zone applied to the output gather before it is stored. Within this zone the module blends the denoised output back toward the original input, protecting early arrivals (direct wave, refraction, guided waves) that arrive before the primary reflection zone. The taper start time at each trace follows the hyperbolic formula: T_taper = sqrt(T0^2 + offset^2 / VRMS^2). Two overlay curves (Taper top curve and Taper bottom curve) are shown on the input gather display to visualise the taper zone in real time as parameters change.
The duration (in seconds) over which the blend between original input and denoised output transitions from 100% input (at the taper start) to 100% denoised output (at the taper end). A wider taper produces a gentler, more gradual transition. Set this to approximately one to two dominant seismic periods to avoid ringing artefacts at the taper boundary. Default: 0.2 s. Minimum: 0 s.
The zero-offset intercept time (in seconds) of the hyperbolic taper curve. This is the two-way travel time at which the taper starts for the zero-offset trace. At other offsets, the taper start time is computed by the formula T_taper = sqrt(T0^2 + offset^2 / VRMS^2). Set T0 to the approximate arrival time of the first direct wave at zero offset (e.g., 0 s for land data with no delay, or a small positive value for marine data). Default: 0 s. Minimum: 0 s.
The RMS velocity (in m/s) used in the hyperbolic taper formula to move the taper start time to larger times at larger offsets. Set this to a representative near-surface RMS velocity. A typical value for land data is 1500–2000 m/s; for marine data, 1480–1600 m/s. Default: 1500 m/s. Minimum: 0.001 m/s.
The key parameter table that controls the noise detection sensitivity as a function of both frequency and time. Each row specifies a (Frequency, Time, Threshold sigma) triplet. The filter interpolates the threshold sigma values onto a fine frequency-time grid covering the full bandwidth and record length. A sample is classified as noise if its local amplitude (in sigma units relative to the reference) exceeds the interpolated threshold at that frequency and time. You must define at least two rows spanning a frequency range of more than 5 Hz, or the module will report an error. Frequency is in Hz; Time is in seconds; Threshold sigma is a dimensionless multiplier (default: 1.5 — samples more than 1.5 times the reference amplitude are attenuated). Lower threshold values produce more aggressive noise suppression; higher values are more conservative. Use the interactive frequency-time threshold spectrum display to visualise and interactively edit this table — left-click on the spectrum view to add a point and enter its threshold value; right-drag to delete points within a rectangular selection area.
A parameter group that controls the display settings for the amplitude histogram and narrow-band amplitude histogram views. These views show the distribution of amplitude ratios (relative to the reference) across the gather and help the user choose appropriate threshold sigma values. The histogram is rebuilt by running the Update histograms custom action.
Sets the amplitude scale of the histogram display. Logarithmic scale is recommended when the amplitude distribution spans several orders of magnitude, as it makes the low-count tails more visible and helps identify the noise population. Linear scale is better for examining the main bulk of the distribution when counts are comparable. Default: Logarithmic.
The number of amplitude bins in the histogram display. More bins give a finer-resolution histogram that reveals subtle multi-modal distributions, but at the cost of noisier individual bin counts. Fewer bins produce a smoother histogram. Default: 256. Minimum: 1.
The starting frequency (Hz) of the narrow-band decomposition used for the Narrow frequency band amplitude histogram display and the Narrow frequency band gathers views. Also used by the Trend auto picking action to set the minimum frequency of the picked trend. Set this to the low-cut frequency of your usable signal bandwidth. Default: 0 Hz.
The width (Hz) of each narrow frequency band in the display decomposition. A smaller step reveals finer spectral detail in the narrow-band histogram and gather views, but increases the number of displayed panels and update time. Default: 10 Hz. Minimum: 0.01 Hz.
The ending frequency (Hz) of the narrow-band display decomposition. Set this to the high-cut frequency of your usable signal bandwidth. Default: 130 Hz.
The minimum sigma value on the horizontal axis of the amplitude histogram display. Extend this below zero to visualise low-amplitude samples and near-zero-amplitude populations. Default: 0. Valid range: -1000 to 1000.
The sigma step size between adjacent amplitude bins in the histogram display. Smaller values give a finer horizontal resolution but require more bins to cover the full sigma range. Default: 0.5 sigma. Minimum: 0.01.
The maximum sigma value on the horizontal axis of the amplitude histogram display. Set this high enough to capture the full tail of the noise distribution. A value around 5 is typically sufficient; increase it if strong outlier noise spikes are present. Default: 5. Valid range: -1000 to 1000.
The frequency resolution (Hz) of the interpolated frequency-time threshold spectrum display. A smaller step produces a finer, smoother image of the threshold function in frequency-time space. Default: 1 Hz. Minimum: 0.01 Hz.
The time resolution (seconds) of the interpolated frequency-time threshold spectrum display. A smaller step produces a finer image in the time direction. Default: 0.01 s. Minimum: 0.001 s.
A parameter group that controls the automatic threshold trend picking action (Trend auto picking). The auto-pick algorithm analyses the amplitude histogram at regular time steps across the specified time range and identifies the sigma level that best separates the noise population from the signal, writing the result as a picked trend line in the histogram view. Use these parameters to guide the auto-pick before running the custom action.
The start of the time range (seconds) over which the Trend auto picking action will search for the optimal threshold trend. Default: 0 s.
The end of the time range (seconds) for the Trend auto picking action. Set this to the maximum two-way time of interest in your data. Default: 10 s.
The time interval (seconds) between successive auto-pick analysis windows within the auto-pick range. A smaller step produces a more detailed, finely sampled trend but takes longer to compute. Default: 0.5 s. Minimum: 0.001 s.
A dimensionless sensitivity parameter (range 0 to 1) controlling how aggressively the Trend auto picking action separates the noise population from the signal population in the histogram. Lower values are more conservative (pick at a higher sigma, attenuate less); higher values are more aggressive (pick at a lower sigma, attenuate more). Default: 0.05. Valid range: 0 to 1.
When enabled, the module automatically connects its input and output data items to compatible upstream and downstream modules in the workflow. Disable this option if you need to manually control the data routing.
Controls how the module handles NaN (Not a Number) or Inf (Infinity) sample values in the input data. Fix replaces bad values with zero before processing. Notify reports the problem and stops. Continue ignores bad values and processes the gather as-is.
When enabled, the module computes and stores the difference gather (input minus output) in addition to the denoised output gather. The difference gather represents the noise that was removed and is available as the Gather of difference output data item. Viewing the difference gather is essential for QC — it should contain only incoherent noise with no coherent signal leakage.
Selects whether processing is performed on the CPU or on an available GPU. GPU execution can significantly accelerate processing for large gathers with many iterations. GPU execution requires a compatible graphics card and driver.
Enables distributed processing across multiple compute nodes in a cluster environment. When active, gathers are split into chunks and processed in parallel across the available nodes. This is recommended for large 3D surveys.
The minimum number of gathers assigned to each compute node or thread in a distributed or multi-threaded execution. Larger bulk sizes reduce inter-node communication overhead but may result in unequal load balancing if the total gather count is not evenly divisible.
When enabled in a distributed execution scenario, limits the number of processing threads used on each remote node. Use this to prevent the module from monopolising resources on shared cluster nodes.
An optional text suffix appended to the distributed job name to help identify this processing step in cluster job queues and log files.
When enabled, the Affinity setting below becomes active and allows you to manually bind processing threads to specific CPU cores. This is an advanced option for performance optimisation on NUMA (Non-Uniform Memory Access) systems.
Specifies the CPU core affinity mask for processing threads. Active only when Set custom affinity is enabled. Consult your system administrator for the correct affinity settings for your hardware.
The number of CPU threads used for parallel processing of traces within each gather. The default is typically set to the number of logical CPU cores available. Reducing this value frees CPU resources for other processes running simultaneously.
When enabled, the module passes the input data through unchanged without applying any processing. This is useful for temporarily disabling the noise attenuation step in a workflow for A/B comparison testing, without disconnecting or deleting the module.
The standard output data container that carries the denoised SEG-Y file reference, trace headers, gather index, and geometry to the next module in the workflow. Connect this item to the input of the next processing step.
A reference to the SEG-Y file into which the denoised output gathers are written. This item is typically connected automatically as part of the Output DataItem.
The trace header table for the denoised output gather. Trace headers are preserved from the input except for the trace identification code field, which may be updated when the model gather validity check fails (see Trace Id Indefication parameter).
The primary denoised output gather. This gather has the same dimensions as the input gather. Within the taper zone (before T_taper) the output is blended linearly back toward the original input to protect shallow events. Outside the taper zone, noise that exceeded the frequency-time threshold has been suppressed.
The stack line geometry descriptor, passed through unchanged from the input to the output data container.
The crooked 2D line geometry descriptor, passed through unchanged from the input.
The 3D bin grid definition, passed through unchanged from the input.
The sorted trace headers index, passed through unchanged from the input.
Available when Calculate difference is enabled in the Settings. Contains the gather computed as (input minus denoised output), i.e., the noise that was removed. Inspect this gather to verify that only incoherent noise was removed and that no coherent reflections appear in the difference. The narrow frequency band gathers — difference display in the Graphics section shows this gather decomposed into narrow frequency bands for a detailed QC inspection.
The module provides six graphical display panels to assist with parameter selection and quality control:
Input/Output/Difference gather views — the input, denoised output, and removed-noise gather views each include overlay curves showing the taper top and bottom boundary. The Narrow frequency band gathers (input, difference, output) sub-panels display the respective gather filtered into narrow frequency sub-bands as defined by Frequency band start/step/end.
Amplitude histogram — a 2D image showing the distribution of amplitude-to-reference ratios (in sigma units, horizontal axis) as a function of two-way time (vertical axis). Bright areas indicate time-sigma combinations that are heavily populated. The threshold trend (picked manually or by the auto-pick action) is overlaid as a line; samples to the right of the trend line are attenuated. Left-click on the histogram to add a manual trend pick; right-drag to delete picks within a rectangular area.
Narrow frequency band amplitude histogram — the same amplitude histogram display computed separately for each narrow frequency band defined by the Visualization params group. This panel helps identify whether noise is concentrated in specific frequency ranges.
Frequency-time threshold spectrum — a 2D map showing the current threshold sigma value as a function of frequency (horizontal axis) and time (vertical axis), interpolated from the Collection frequency time windows table. Use this view to verify that the threshold surface is smooth and covers the full bandwidth and record length. Left-click to add a threshold point at any frequency-time location; a dialog prompts for the sigma value. Right-drag to delete points within a rectangular selection.
Recomputes and refreshes the Amplitude histogram and the Narrow frequency band amplitude histogram displays using the current input gather and model gather. Run this action whenever you change the Visualization params settings (histogram scale, sigma range, frequency band definition) or after loading a new gather to get an up-to-date picture of the amplitude distribution before deciding on the threshold sigma values.
Automatically picks a time-varying threshold trend from the amplitude histogram and writes it as a set of (Time, Threshold sigma) control points that populate the Collection frequency time windows table. The auto-pick analyses the histogram at regular time steps (Auto pick time step) across the specified time range (Auto pick start time to Auto pick end time), identifying the sigma level that best separates the noise population from the signal using the Auto pick threshold sensitivity parameter. The picked trend is shown as an overlay on the amplitude histogram view. After running this action, review the result and adjust individual control points manually if needed. The frequency limits of the picked trend are set by Frequency band start and Frequency band end.