Report on Vibroseis Doppler correction, V(z).

Einar Kjartansson
November 1999

Introduction

In 1998 I wrote programs for correcting the effects of source motion on the phase of marine Vibroseis data. This year the work was continued, with goals of improving the speed of the programs and to include the effects of velocity variation with depth. Both goals were realized. The run time of the programs has been reduced to less than 10 seconds per streamer profile, and the present version of the program corrects the phase errors in the presence of variable velocities, for rays that deviate up to 60 degrees from the vertical.

Speed of programs

Last year's version of the program was tested on a synthetic example that was generated by Mobil. The records contained 240 traces and were processed using a sample interval of 1 ms. The runtime was just under 2 minutes per profile, on a 266 MHz Pentium II computer.

Several changes were made to the program to improve the speed. A substantial improvement resulted from using Dave Hale's primefactor fft routines that are distributed with the SU system. After improving the program, and by processing the data at 2 ms, runs on the same examples and the same computer took less than 20 seconds.

The speed of the current version of the program has been tested on several computers. Results for the two fastest computers, as well as the best results for a Sparc computer, are shown in the table.

NameHobbesHverBylgja
Source correction per profile (sec)101039
Make test (sec)4274151857
ProcessorIntel CeleronHP-PA 8500Ultra Sparc-IIi
CPU Clock550400270
Operating systemLinux 2.2HP-UX 10.20Solaris 2.6
C compilerGNUHPSun
Approximate cost of computer (USD)1000180004000

Table 1: Test results for three computers

The run time of of Make test includes compilation of all programs, but most of the time is taken in the computation of the filter operators.

Run times on Hver can be improved by performing the calculations on 64 rather than 32 bit floating point numbers. Hobbes is a dual processor CPU. These tests only use one of the processors, but it is relatively simple to double the throughput by taking advantage of both processors. The simplest way to do this is to run two processes with each doing every other shot. Another way is to use processor threads. Both Linux and Solaris (sparc) include support for POSIX standard threads.

The shot profiles used in this test consisted of 240 traces, 4 seconds at 2 ms sample intervals. The data was processed using 17 dipfilters. The processing time is directly proportional to the number of dipfilters used.

Depth dependent velocity

The method used to compute Doppler corrections for a constant velocity earth model, may be extended for stratified earth models by using raytracing to find the ray angle at the source, from the angle at source, offset and time. As the rays are bent and curved, a unique solution is not guarantied for there may be more than one ray path connecting two points. In order to reduce the complications caused by turning rays and multiple solutions, it was decided to limit the maximum ray angle. Figure 1 shows the ranges of time where the rays are within ± 60° , for a medium with a velocity given by V(z) = 1500 m/s + 0.6 /s. The ray parameter for the upgoing wave is 0.000125 s/m.




Figure 1. Region where dip of rays is within ± 60 degrees

The sides of the roughly triangular regions are where the ray from source reaches 60°. The bottom side is where the upgoing ray is at 60°. Inside the region, raytracing is used to compute the departure angle at the source. Raytracing is used to find the source rayparameter as a function of time, for a given receiver dip and offset. By using the results from the last 3 ray traces, values for depth and rayparameter are computed for each timestep. Usually those are sufficiently accurate so that additional iterations are not needed. Outside the region, the value at the nearest boundary is used.

Test examples

The program was tested using two synthetic data sets that included the effects of vertical velocity variation. The first set was generated by Tony Noss, for an earthmodel that is shown in Figure 2. The data was generated using a 23s sweep, 5-90Hz (0.2s cosine tapers), 2.205m/sec source motion (stationary receivers). The group spacing is 12.5 meters.



Figure 2. Depth model for synthetic data

Figures 3 and 4 show the same portion of the record, before and after application of the source motion correction. The lower event is the point diffractor. The wave from the source to the diffractor is nearly vertical. There is little dispersion seen on the diffraction. The other reflection is from the lowest interface. It shows some distortion that is mostly removed on the corrected data, while the waveform for the diffraction is preserved.



Figure 3. Uncorrected data




Figure 4. Corrected data

Figures 5 and 6 show comparison of the two uppermost reflectors at far offsets. Also shown is the direct wave (center). The direct wave is outside the passband of the dipfilters so it is largely removed on the corrected section. The reflections show large amounts of distortion, which are mostly removed after the correction has been applied.




Figure 5. Uncorrected data




Figure 6. Corrected data

Diffraction synthetic

In order to test the correction algorithm on a wider range of dips and velocities in the same run, a synthetic was created that consists of reflections from 9 point diffractors, at lateral distances of 0, 1000 and 2000 m from the first sourcepoint, and depths of 800, 1800 and 2800 m. The effect of source motion on the waveform was modelled by computing the traveltimes for source location at beginning and end of sweep. A sweep length of 18 seconds was used with a boat speed of 2.5 meters per second. The velocity is 1500 m/s + 0.6*z /s. The maximum angles for the downgoing ray are shown in the table:

Depth (m)Offset (m)Dip (degrees)
80000
800100061.1
800200087.2
180000
1800100037.4
1800200064.4
280000
2800100027.0
2800200049.9
Table 2: Maximum angles for rays in diffractor synthetic



Figure 7. Diffraction synthetic, before (left) and after (right) correction for effects of source motion The box shows the approximate locations of data shown in Figure 8.

Figures 8 and 9 show a closeup of the data in the box in Figure 7. The three events are from diffractors at a depth of 2800 m. Distance from the source ranges from 1625 m to 1762.5 m. The top event is from a diffractor at 1000 m, then center at 0 m and the lowest at 2000 m. The respective dips of the downgoing ray at the diffractors are 27°, 0° and 49.9°. The same data after application of the source motion correction is shown in Figure 9.




Figure 8. Uncorrected data for diffractors at a depth of 2800 m




Figure 9. Corrected data for diffractors at a depth of 2800 m

Figures 10 and 11 show a closeup for diffractors at a depth of 1800 m. The offsets are, from top to bottom, 1000, 2000 and 0 m and the maximum dips are 37.4°, 64.4° and 0°. The receiver offsets range from 2100 m to 2250 m.




Figure 10. Uncorrected data for diffractors at a depth of 1800 m




Figure 11. Corrected data for diffractors at a depth of 1800 m

Conclusion

The synthetic tests indicate that the program does remove most of the phase distortion caused by source motion, for dips up to at least 65 degrees, in the presence of moderate vertical velocity variation. If it is desired to improve accuracy for steeper dips, a different approach for the ray tracing could be developed, where turning rays are handled correctly. This will involve dealing with possible multiple raypaths, for the same time and offset.

Improved computational throughput can be achieved by taking advantage of parallel processing. There are several possible ways to divide the computation between more than one processor. One is to use processor threads. The Posix standard for processor threads is supported both on Linux and on Solaris/sparc.