next up [*] print clean
Next: Hard copy and reproducibility Up: Table of Contents

Short Note
Displaying seismic data with VTK

Elkin R. Arroyo and Robert G. Clapp,

In exploration geophysics most simple targets have now been found and exploited. New prospects are structurally complex requiring 3-D acquisition and imaging. The need to effectively build a velocity model for 3-D imaging and to effectively view the resulting image has led to the need to build more sophisticated viewing software.

Over the years SEP has made several attempts to address this need. Ottolini (1983) built an effective 3-D viewing program, later expanded upon in Clapp (2001). Later, several attempts were made to use the proprietary Advance Visual System (AVS) [*] package to build an integrated viewer Biondi and van Trier (1993); Clapp et al. (1994); Mora et al. (1995, 1996). These attempts were frustrated by the proprietary nature of the product, the hardware requirements to effectively run it, and the programming expertise needed to use a package originally designed for another field (chemistry).

In the last few years the need for an effective visualization software at SEP has increased while many of the limitations that hampered previous attempts have been overcome. With the increased power and decreased cost of linux workstations with 3-D accelerated graphics, desktop viewing is more feasible. In addition, numerous 3-D visualization packages have become publically available. One such package, Visualization Toolkit(VTK)[*] holds particular promise. It has a diverse user base, C++, Python, Tcl, and Java interfaces, and an intuitive design. In this paper we build a cube and surface viewer using the VTK library. We begin by discussing some of the capabilities of VTK and general implementation design. We then describe how to use it to view seismic data (VtkCubeplot) and Gocad surfaces (VtkGocadplot). We conclude with some future directions for the work to make it an even more effective research tool.

VISUALIZATION AND VTK Visualization is the transformation of data or information into pictures. Visualization uses graphics to give insight into certain abstract data and symbols. Visualization is a necessary tool to make sense of the flood of information in today's world of computers. Seismic data acquisition system nowadays are capable of acquiring hundreds of gigabytes in a few days and seismic processing itself produces a lot of information that, without visualization, would stay unseen on computers disks and tapes.

There is another advantage of visualization, it utilizes the human vison system. With the introduction of these new tools, it will be possible to use our highly developed visual sense, and therefore to better understand and analyze the seismic information.

Common visualization tools

There are many commercial and free visualization software packages. It is difficult to categorize visualization tools because most have a variety of functions covering many different applications, and many have overlapping functions. Common visual programming system include VTK, AVS/Express, Iris Explorer [*], IBM Data Explorer [*] and Khoros [*], all of which are based on low-level graphics libraries like OpenGL [*], Direct3D [*], Phigs [*] and GKS-3D [*].The most widely accepted and used is of these OpenGL.

VTK interaction with SEP Data Structures In the following section we explain basic concepts of the VTK data model and explain which one we choose to represent the seismic information and which one to represent the GOCAD surfaces. For a more detailed description see ().

The VTK data model consists of two pieces: an organizing structure (the shape or geometry ) and associated information to each element in the structured known as the attribute data. Examples of each are shown in the table below:

Organizing structure Data attribute
Points,triangles, Scalars,
quadrilaterals, vectors, normals,
tetrahedral, texture coordinates

Regular data has an inherent relationship between data points. For example, if we sample an evenly spaced set of points, we do not need to store all point coordinates, just the beginning (o), the spacing between points (d) and the total number of points (n). This is the case of 2D/3D seismic information and also the way SEP structures a data cube.

For irregular data there is not a defined pattern between points or cells and therefore we can represent arbitrary structures. This is the case of the GOCAD surfaces. A big advantage of irregular data is that we can represent information more densely where it changes quickly and less densely where the changes are more subtle.

Attribute data is associated with each point in the structure and consists of scalars (which are single value functions like trace amplitudes), vectors, normals, texture coordinates, tensors, etc.

For implementing our visualization tools we choose to use the class vtkStructuredPoints to represent the seismic information and the class vtkUnstructuredGrid to represent the GOCAD surfaces. Currently VtkCubeplot only supports a single value attribute data for the seismic information which means that we use the VTK class vtkScalar to express the trace amplitudes or velocities. The SEP application vtkGocadplot currently supports scalar representations and 3D vectors.

Pipeline structure of VTK SEPlib and VTK share the ability to send information from one program to others to process the information and to obtain the final best image. This philosophy helps SEPlib and VTK users to easily get acquired with the software. For developing the SEP programs VtkCubeplot and VtkGocadplot, first we read the information using the set of SEP functions to read SEP data cubes sreed. This information is then reordered in the VTK way using the structured storage for the VtkCubeplot explained earlier and the unstructured storage format for the VtkGocadplot. After that, we implement a set of filters or functions that helps to construct the cutting planes, using the class vtkCutter. This takes the seismic information and the defined planes, cuts along the desired plane and interpolates the seismic amplitudes along the cutting surface. Input planes by default are located at center of the SEP data cube. A similar approach is used for the contour values in the VtkGocadplot program. We use the class vtkContourFilter which takes as input the GOCAD surface, and the user defines the number of contour values and the color map to be used.


The display of 3-D data is a challenging problem. SEP has developed Cubeplot and Ricksep in order to facilitate the viewing of 3-D cubes. Both of these options are limited to viewing orthogonal slices of a cube with little concept of the 3-D nature of the data. Often viewing the data in a true 3-D environment can offer additional insight. VtkCubeplot offers this ability. As Figure [*] demonstrates the VtkCubeplot program can display arbitrary planes of a 3-D cube. It is then possible to rotate around and through the 3-D environment.

Figure 1
Three slices from the SEG salt model displayed within the VTK environment.
view burn build edit restore

next up [*] print clean
Next: Hard copy and reproducibility Up: Table of Contents
Stanford Exploration Project