Spatial Filter - Circular

lowpass, highpass, bandpass or band reject circularly symmetric spatial filters

Script: Filtering/ex_spatial_filter_circular.py

Description

This Python External Attribute script applies lowpass, highpass, bandpass or band reject circularly symmetric spatial filters. The filters are applied by direct spatial convolution using the MAXFLAT operators described by Khan and Ohba (2001).

Filter responses

Filter responses

Note that the filter cutoff or band pass/reject frequency is specified in Normalised Spatial Frequency. Normalised Frequency ranges from 0 to 1 at the spatial nyquist. Converting a spatial frequency in cycles/metre to the equivalent Normalised Spatial Frequency is as simple as dividing it by the spatial nyquist frequency.

As written the filter does not take into account differences in spatial sampling in the inline and crossline directions.

Examples

This example uses a Low Pass filter to remove acquisition footprint from the F3 Demo dataset.

FK spectrum of inline 425

FK spectrum of inline 425

Note the noise at 0.0133 cycles/metre or 0.67 normalised frequency (i.e. 0.0133/0.02).

A spatial low pass filter with a normalised frequency cutoff of 0.5 is very effective at attenuating this acquisition footprint.

Input Iln425 Lowpass Filtered Iln425
FK spectrum of inline 425 after filter

FK spectrum of inline 425 after filter

Input Slice300ms Lowpass Filtered Slice300ms

Input Parameters

ex_spatial_filter.py input parameters

ex_spatial_filter.py input parameters

NAME DESCRIPTION
Stepout Determines the size of the convolution operator. Minimum of 9 (filter kernel size of 19) recommended.
Type Filter type - Low Pass, High Pass, Band Pass or Band Reject.
Normalised Spatial Frequency For Low Pass and High Pass filters this specifies the filter cutoff. For Band Pass/Reject filters this is the centre of the pass/reject band. The width of the band is hardwired to +/- 0.1 in the script. The filter cutoff corresponds to the half amplitude point.

Last modified April 17, 2022: First update (afe101d)