Short Note Minimum traveltime calculation in 3

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.