[frame][postscript][pdf]
                                                                                                                                                            November 17, 1994

fft3da: 3D [Kx,Ky,Omega] Filtering                                                       P.G.A. Garossino [APR]

Introduction

With the recent release of vfilt3d and vfilt3da it is possible to perform velocity and azimuthal filtering of a 3D FKK volume. The filtering available is limited to a narrow range of radial filters emanating from the origin. Program fft3da provides the user with a 3D [kx,ky,Omega] volume which, using the retooled polymute routine, may be filtered in any fashion imaginable.

Procedure

Using fftpack a forward 1D FFT of the original post-stack 3D volume is produced. This dataset is then sliced frequency-wise, using qdslice or ttds3d. A further 2D FFT of this dataset is then obtained using fft3da. The user may now custom filter this volume using polymute after which an inverse rotation of the cube and an inverse 3D FFT is applied through fft3da and fftpack to complete the process.

Model Example

The routine spike3d was used to construct a 3D post-stack model containing three dipping cones of 2.5, 10 and 25 degrees as well as a single flat lying planar event. The in-line and cross-line spacing associated with the model was set to 10 meters. The source for the surfaces was placed at the center of a grid of 250 in-line by 250 cross-line source/receiver locations (Fig. 1)



To examine the 3D effects of the filtering the model volume is viewed from several vantage points. The following LI [Line Index], DI [Depth Index] and TI [Time Index] records are displayed for each filter run:

In-line

        LI 50 (Fig. 2)
        LI 125 (Fig. 3)

Cross-line

        DI 225 (Fig. 4)

 Time-Slice

        TI 80 (Fig. 5)
Notice that the only view which accurately portrays the conical events in terms of their apparent linear velocity is one which bisects the volume beneath the source position (Fig. 3). The other views (Fig.'s 2, 4 and 5) display events which to the interpreter would look like a reflection from out of the plane or a broadside direct arrival [which in fact these are] or an anticlinal feature at the given location. For this example we will reject the steepest event [the cone dipping at 25 degrees].To prepare the data for filtering the following flow was executed:
    fftpack -Nmodel |
    ttds3d -NDtxy -ODxyt-M8 -Tjunk |
    fft3da -dt1.0 -dx10.0 -dy10.0 |
    ttds3d -NDxyt -ODxty-M8-Tjunk1 -OModelFft3da


The model dataset contains 250 records of 250 traces each composed of 401 samples in time. During the Fourier transforms and volumetric rotations required for filtering these parameters change dramatically (Fig. 6). To maintain trace header integrity on the output the input trace headers will need to be swapped back into the volume after filtering. If the original volume cannot be kept on disk then a header volume may be created using:
wind -Nmodel -Oheaders -e1
Currently the volume is orientated such that temporal frequency is along the trace vector, spatial frequency in x is along the record vector and spatial frequency in y is along the sample vector. Should you require kx along the sample vector the previous ttds3d command would look like:
ttds3d -NDxyt -ODytx -M8 -Tjunk1-OModelFft3da
Filter design at this point is data and user dependent. I have chosen to remove the steepest cone from the input dataset. This corresponds to the shallowest dipping event on the 3D FKK display (Fig. 7). Using xsd, a set of polygonal filters were picked (Fig. 8) across the input volume outlining this event. The event was then muted (Fig. 9) using:
polymute -NModelFft3da -Ppolypicks -Min -OModelPolymute
Notice the character of the mute polygon. The recent retooling of polymute allows the use of such shapes which makes it easy to detect a specific event for deletion.
The extremely nice 2D taper applied in polymute results in very smooth filter edges. The morphing algorithm in polymute makes for a very smooth interpolation between filter control points. For this example a mute was picked on every 10th record and applied to the entire volume. Once muted the inverse transform operation is applied using:


ttds3d -NModelPolymute-NDxty -ODxyt -Tjunk -M8 |
fft3da -dt1.0-dx10.0-dy10.0 -R |
ttds3d -NDxyt-ODtxy-Tjunk1-M8 |
fftpack -R |
hdrswap -N2Model |
utop -dt1 -OModelFiltered
The rejection of the steepest dipping cone has been achieved with minimal effect on the other events (Fig.'s 10, 11, 12 and 13).

Conclusions

fftpack, fft3da and polymute provide the processor with a generalized 3D filtering capability.