GEOPHYSICS, VOL. 61, NO. 6 (NOVEMBER-DECEMBER 1996); P. 1895–1898, 6 FIGS. Short Note Minimum traveltime calculation in 3-D graph theory Ningya Cheng∗ and Leigh House‡ INTRODUCTION connection points are called nodes. The minimum traveltime from the source node to the receiver node is chosen from all the possible connection paths. The network used in this paper is constructed in the following way. We define M layer connections if all the grid points (i, j, k) satisfy Traveltime calculation is a crucial part of seismic migration schemes, especially prestack migration. There are many different ways to compute traveltimes. These methods can be divided into three categories: (1) Ray tracing (Julian and Gubbins, 1977; Červený et al., 1977). These treat the problem as a initial value problem by shooting rays from the source to the receivers. Or they can also treat the problem as a two-point boundary value problem. An initial raypath is bent using perturbation theory until Fermat’s principle is satisfied. Nichols (1994) also computed traveltimes with the amplitude information attached to it in two dimensions. (2) Finite-difference methods (Reshel and Kosloff, 1986; Vidale, 1988; van Trier and Symes, 1991). These solve the eikonal equation directly by using different numerical schemes such as the Runge–Kutta method, wavefront expansion, or upwind finite difference. (3) Graph theory (Moser, 1991; Fisher and Lees, 1993; Meng et al. 1994). This method recasts the traveltime problem into a shortest path search over a network, which is constructed from the velocity model. This method is guaranteed to find a stable minimum traveltime with any velocity model. In this short note, we extend the methodology of 2-D graph theory in Moser (1991) to calculate the minimum traveltime in 3-D velocity models and to demonstrate its efficient implementation in 3-D by focusing the computational speed on the memory requirements. |i − i 0 | ≤ M, | j − j0 | ≤ M, (1) |k − k0 | ≤ M and they are directly connected to grid point (i 0 , j0 , k0 ). Once the network is built, the algorithm for doing the detailed search for the shortest time can be found in the references (Dijkstra, 1959; Moser, 1991). Minimizing memory requirements The general way to build the graph for the traveltime calculation is to generate the traveltime table t pq from node p to any node q that is connected to p. For a 3-D model with n grid points in each dimension, there are a total of n 3 nodes. Each node is connected to m neighboring nodes, with m ¿ n 3 . A 3-D problem requires a lot of memory for storing the traveltime table. For example, a 100 × 100 × 100 grid model with one layer of connections will need 26 MBytes for storing the traveltime table. To use minimum memory, we do not store the traveltime table but rather compute the traveltime between the nodes when it is needed as shown below. A 3-D traveltime grid corresponding to the velocity model is set up first. This stores the traveltimes from a source to all the grid points in the velocity model. This traveltime grid is initialized to values of infinity except at the source node, which is set to zero. This 3-D traveltime grid is mapped into a 1-D MINIMUM 3-D TRAVELTIME CALCULATION We start by considering a velocity model discretized on a 3-D Cartesian grid. The traveltimes between adjacent grid points are calculated by dividing the distance between points by the average velocity. The network (or graph) is made from the connections of these grid points. Figure 1 shows some examples of the connections between grid points on a cubic grid. The Manuscript received by the Editor June 2, 1995; revised manuscript received March 11, 1996. ∗ Formerly Earth and Environmental Sciences Division, Mail Stop D443, Los Alamos National Laboratory, Los Alamos, NM 87545; presently Exxon Production Research Co., P.O. Box 2189, Houston, TX 77252. ‡Earth and Environmental Sciences Division, Mail Stop D443, Los Alamos National Laboratory, Los Alamos, New Mexico 87545. ° c 1996 Society of Exploration Geophysicists. All rights reserved. 1895 1896 Cheng and House array and is searched for the minimum traveltime (which will be the zero at the source node at the first iteration). The 1-D index of the node with the minimum traveltime is mapped back to the 3-D position. Then the traveltimes of all the nodes connected with it are updated by the rule given in Moser (1991). This procedure of searching and updating is repeated until the minimum traveltimes to all the grid points are computed. Minimizing computing time Figure 2. It is clear from the plot that quick sort is more efficient than heap sort. Moving both data and index arrays at the same time is even faster than moving only the index array. The maximum relative errors in traveltimes versus the number of connected layers for a homogeneous velocity model are plotted in Figure 3. For one layer of connections, the maximum error is more than 12%. When the number of layer connections is increased to 6, the maximum error is decreased to less than 1%. This is easy to understand because more layer connections Most of the computing time for the traveltime calculations using graph theory is spent finding the minimum traveltime. To improve the efficiency of graph theory, the fastest sorting algorithm is needed. The heap sort is recommended in Moser (1991). It arranges the data ai , i = 1, . . . , N into a heap by satisfying the relation ai/2 ≥ ai (2) for 1 ≤ i/2 < i ≤ N . The heap sort can be thought of as putting the data ai into a binary tree with the smallest on the top. Another very popular sorting algorithm is called quick sort (Hoare, 1962). It is, on average, the fastest known algorithm for large N . It is the classic divide and conquer strategy. The central idea of the quick sort is to partition the data into two parts by a selected element from array a. Then these two parts are sorted independently. This process is repeated until the size of the subproblem becomes one. In the traveltime problem, we not only need to find the minimum traveltime but we also need to know the index position of the current minimum traveltime. There are two ways to do this. First we create an index array that is sorted along with the traveltime data. Once the minimum traveltime is found, we can look at the index array to determine its index position. An alternative way is to keep the traveltime data in place and move the index array only. The ideas we discussed above are implemented into the traveltime calculation by graph theory. A comparison of the different sorting algorithms is plotted in FIG. 1. Connections on a 3-D Cartesian grid for upper left corner point. FIG. 2. CPU time versus the number of nodes for different sorting algorithms. Heap sort (short dashed line); Quick sort with index (solid line); Quick sort with two arrays (long dash line). FIG. 3. Relative maximum error versus number of layer connections. The media is homogeneous. 3-D Minimum Traveltime Waves would mean that more raypaths are available to cover different directions. But this is only one part of the story. The CPU time versus the number of layer connections is shown in Figure 4. With more layer connections, we have to spend more time computing the traveltime. We must balance accuracy and speed when choosing the number of layer connections. NUMERICAL EXAMPLES Here we consider some examples of minimum traveltime calculations using graph theory. First we consider a 2-D example that is a two-layer syncline model with a velocity of 1500 m/s for the upper layer and 2500 m/s for the lower layer (Fei et al., 1995). The model size is 6 km × 4 km. The grid size is 10 m in both directions. To do the 2-D calculation, we simply set the number of nodes in the third dimension to 1 and there is no other change in the program. Contours of traveltimes are plotted in Figure 5. The source is located at a distance of 3 km and a depth of 0 km as shown in Figure 5. The layer boundary, a dashed line, is superposed on the traveltime plot. The plot shows that graph theory captures the traveltimes of the head waves from the curved interface very well, and directly under the valley of the syncline, the caustic is well represented in the traveltime contour. The presence of the caustic was confirmed by the full waveform finite-difference solution (Fei et al., 1995). The 3-D model also consists of two layers. The upper layer velocity is 1500 m/s and the lower layer is 4000 m/s. The size of the model is 1 km × 0.4 km and 1 km deep. The grid size is 10 m in all three directions. The boundary between the two layers is at the depth of 0.5 km. The model also has a hemisphere of the higher velocity material, with radius of 0.2 km, placed on top of the boundary. The hemisphere is centered at the distance of 0.5 km and the crossline offset of 0 km. We assume the source is located at (0 km, 0 km, 0 km). Three 2-D vertical slices of the 3-D traveltime contours are plotted in Figure 6. In the plots, the layer boundary is a dashed line. At the crossline offset of 0 km, the head waves from the hemisphere as well as from the flat FIG. 4. CPU time versus number of layer connections. 1897 interface are very clear. When the crossline offset is increased to 0.19 km [Figure 6(b)], the head wave from the hemisphere is still present, but its effect on the traveltimes is too large to result from the portion of the hemisphere that lies in the section. Rather, it is the contribution from the larger portion of the hemisphere that lies outside the section. This demonstrates the 3-D effect. At larger crossline offset, the head waves from the hemisphere disappear, because we only compute the first arrivals. CONCLUSIONS In this short note, graph theory is applied to traveltime calculations in three dimensions. The computational memory requires two 3-D arrays to store the velocity model and traveltime results, plus two temporary arrays for searching the minimum traveltime. We found that the quick-sort algorithm is more efficient than the heap sort. We have to balance between accuracy and computing speed when choosing number of layer connections. Graph theory provides the most robust numerical scheme for traveltime calculations. It accurately captures head waves from curved interfaces as well as caustics. ACKNOWLEDGMENTS We thank the Los Alamos National Laboratory’s Laboratory-Directed Research and Development Program for FIG. 5. 2-D traveltime contour of syncline model. The layer boundary is the dash line. 1898 Cheng and House a) b) c) FIG. 6. 2-D slice of 3-D traveltime contour. The layer boundary is the dash line: (a) at offset 0 km, (b) at offset 0.19 km, and (c) at offset 0.39 km. supporting this work. This work was performed under the auspices of the U.S. Department of Energy. N. Cheng was supported in part by the Earth Resources Lab. of MIT as a Founding Member Fellow. Authors thank the reviewers for their valuable comments. REFERENCES Červený, V., Molotkov, I. A., and Pšenčík, I., 1977, Ray method in seismology: Praha, Univ. Karlova. Dijkstra, E. W., 1959, A note on two problems in connection with graphs: Numer. Math., 1, 269–271. Fei, T., Fehler, M. C., and Hilderbrand, S. T., 1995, Finite-difference solutions of the 3-D eikonal equation: S.E.G. 65th Annual Meeting Expanded Abstract. Fisher, R., and Lees, J. M., 1993, Short set path ray tracing with sparse graphs: Geophysics, 58, 987–996. Hoare, C. A. R., 1962, Quicksort: Computer J., 5, 10–15. Julian, B. R., and Gubbins, D., 1977. Three-dimensional seismic ray tracing: J. Geophys., 43, 95–114. Meng, F., Liu, H., and Li, Y., 1994, Wavefront scanning method for minimum traveltime calculation in 3-D: 64th Ann. Internat. Mtg., Soc. Expl. Geophys., Expanded Abstract, 1398–1401. Moser, T. J., 1991, Shortest path calculation of seismic rays: Geophysics, 56, 59–67. Nichols, D., 1994, Maximum energy traveltime calculated in the seismic frequency band: 64th Ann. Internat. Mtg., Soc. Expl. Geophys., Expanded Abstract, 1382–1385. Reshef, M., and Kosloff, D., 1986, Migration of common-shot gathers: Geophysics, 51, 324–331. van Trier, J., and Symes, W. W., 1991, Upwind finite-difference calculation of traveltime: Geophysics, 56, 812–821. Vidale, J., 1988, Finite-difference calculation of traveltimes: Bull. Seis. Soc. Am., 78, 2062–2076.
© Copyright 2026 Paperzz