PROCESS FDFMOD Document Date: 25 July 1990 Finite-Difference Forward Modelling using the 45-degree algorithm The finite-difference migration technique is an effective way to handle many types of migration problems. Often it is necessary to do the reverse problem -- given a subsurface structure and velocity field, calculate its response on a zero-offset section, or unmigrated section ( a zero-offset section is a good approximation to a stacked section in regions of small dip). This technique is very similar to migration except that the receivers are upward continued to the surface P(x,z=0,t), whereas the migration process downward continues the receivers - via a finite-difference approximation to the scalar wave equation - into the subsurface and collecting terms at P(x,z,t=0). Input to FDFMOD can be generated by process SYN and FILTER, and should represent the structure you care to model (or unmigrate). Therefore, point sources should become diffractors, interfaces should increase both dip and length, etc... This process will most likely be used in conjunction with processes SYN and FILTER which generate seismic traces for modelling. Limitations see process FDMIGR Some Important Parameters The parameter Rho is inserted into the expression for the discretization of the time derivative. This serves to counteract any potential growing waves from the expression for migration, as an explicit damping with time. It can be thought of as a "numerical viscosity". A value of Rho less than 1 reinforces stability. However, any deviation of Rho away from 1, by at most 1 percent, results in some loss of signal as well as noise. In the discretization of depth, the parameter Theta is introduced, with the most natural value being .500. If Theta = 0 is used, there is a tendency to overshoot on variations, whereas Theta = 1 will produce an overdamping of change. To discretize the horizontal distance component, an approximation to the second derivative is found by an iterative method. When the iteration is truncated, the parameter Gamma is introduced, which is allowed to vary between .08 and .17, based primarily on the look of migrated sections. If Gamma is allowed to increase too much more, spurious noise results. In the ideal case, Tau would equal the sample rate of the data, meaning that the entire section would be migrated exactly one sample rate step at each pass through the section. While this scheme reduces the errors, it is impractical due to the huge run-time needed. In practice, Tau should be chosen in the range of 20 to 200 ms. (.02 to .2 secs), with the smaller Tau values producing greater accuracy. It is possible to vary Tau vertically (not recommended), and should be done in order to save run-time. Generally, the value of Tau should decrease from shallow to deep data times. This is because greater accuracy is needed in the migration of the deeper events where the greatest movement is taking place. More detailed explanation of the origin of these parameters, and some results of allowing them to vary, may be found in the paper published by H. Brysk (Geophysics: May 1983). PARAMETER DICTIONARY --------- ---------- DX - Trace separation distance. This is the distance between reflection points. DX is a constant for the entire seismic line. REQUIRED. range 1.0 to 500.0 e.g. dx 25 FNO - The first shot/rp number the parameter list applies to. Preset = the first shot/rp received. e.g. FNO 101 LNO - The last shot/rp number the parameter list applies to. Preset = the last shot/rp received. e.g. LNO 101 VTP - The rms velocity to use in migration. The rms velocity function is the same as the velocity function used to moveout the data. Given as velocity-time pairs. Velocities not specified are calculated through interpolation and "straight-lining" from the ends. Times must be given in seconds. Preset = none velocity range 350 to 32000 VDIX - The interval velocities to use in migrating, given as interval velocity-time pairs. Time must be in seconds. Preset = none range 350 to 32000 BPAD - The number of zero amplitude traces to insert prior to the first trace. Preset = 1 range 1 to 500 e.g. bpad 10 EPAD - The number of zero amplitude traces to append after the last trace. Preset = 1 range 1 to 500 e.g. epad 10 OPAD - A switch indicating that the pad traces (both bpad and epad) should be output in addition to the migrated input. Preset = no range yes/no e.g. opad yes NRHO - A parameter used to control the Tau step interpolation. Preset = 2.0 range 0. to 10000 FCRHO - A parameter used to control the Tau step interpolation. Preset = .99 range .0001 to 1. RHO - A "hidden" migration parameter discussed above. Preset = .9990 range 0 to .9999 THETA - A "hidden" migration parameter discussed above. Preset = .501 range 0 to 1.0 GAMMA - A "hidden" migration parameter discussed above. Preset = .125 range .08 to .17 TSTEPS - A set of time-delta-tau pairs governing the tau step size (delta-tau) in the time interval terminating with the time given. Up to 7 pairs of time and delta-tau may be given. The user must give the max time modelled in last pair. e.g. 8.0 0.10 with 8.0 secs being last sample modelled. It is HIGHLY suggested that the user use only one time-delta-tau pair and vary the size of the step to conserve cpu time. Units are in seconds. Preset = REQUIRED NX - The total number of traces, including pads, to migrate. The entire seismic line must be transformed from TX (time-space) to XT (space-time). FDDIFF requires much extra disk I/O if the entire seismic line (nx*maxsam) is larger than the computer memory allocated for the transformation. NX does not have to be a power of 2. Preset = 4096 e.g. nx 500 MAXSAM - The maximum number of samples per trace, including the deep water delay, to migrate. A trace exceeding MAXSAM will be truncated. Preset = the number of samples plus delay of the first trace. PATH - The pathname (filename) of a scratch file FDDIFF should use for the intermediate transposed data. The purpose of this parameter is to allow the user to specify the exact disk partition to use in case the "current" partition does not have enough space. Preset = a scratch file in the current directory e.g. path /user/scratch/moreroom EXAMPLES: 1) Generate a constant velocity hyperbola. (Script file examples/c_hypcvel) sioseis << eof procs syn filter diskoa fdfmod diskob end syn FNO 1 LNO 49 ntrcs 1 secs 3.0 tva 3.1 2500 1 end FNO 50 LNO 50 tva .3 2500 1 .7 2500 1 1.0 2500 1 1.3 2500 1 1.8 2500 1 end FNO 51 LNO 100 tva 3.1 2500 1 end end filter pass 10 20 end end diskoa opath impulsecvel.segy fon 1 end end fdfmod nx 102 bpad 1 epad 1 opad no maxsam 751 dx 25 maxdip .001 path scratch vtp 2500 0.0 2500 3.0 tsteps 3.00 .1 end end diskob opath impulsecvel.fddiff fon 1 end end end 2) Generate a hyperbola with laterally varying velocity. See script file examples/c_hypvlat. 3) Generate a hyperbola with rms velocity. See script file examples/c_rms.fddiff. 4) Generate a hyperbola with dip. See script file examples/c_mod.dip.refl Copyright (C) by The Regents of The University of California, 1988 Written by Paul Henkart and Graham Kent, Scripps Institution of Oceanography, La Jolla, Ca. ALL RIGHTS RESERVED.Go to the list of seismic processes. Go to SIOSEIS introduction.