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.
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.
| Name | Hobbes | Hver | Bylgja |
|---|---|---|---|
| Source correction per profile (sec) | 10 | 10 | 39 |
| Make test (sec) | 427 | 415 | 1857 |
| Processor | Intel Celeron | HP-PA 8500 | Ultra Sparc-IIi |
| CPU Clock | 550 | 400 | 270 |
| Operating system | Linux 2.2 | HP-UX 10.20 | Solaris 2.6 |
| C compiler | GNU | HP | Sun |
| Approximate cost of computer (USD) | 1000 | 18000 | 4000 |
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.
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.
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.
| Depth (m) | Offset (m) | Dip (degrees) |
|---|---|---|
| 800 | 0 | 0 |
| 800 | 1000 | 61.1 |
| 800 | 2000 | 87.2 |
| 1800 | 0 | 0 |
| 1800 | 1000 | 37.4 |
| 1800 | 2000 | 64.4 |
| 2800 | 0 | 0 |
| 2800 | 1000 | 27.0 |
| 2800 | 2000 | 49.9 |
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.
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.
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.