Why am I having issues loading SEG-Y?

We've updated this information. You can get the latest details here!

SEG-Y data cannot be loaded directly into DUG Insight. It must first be converted into DUG's optimised dugio format (see SEG-Y Loader).

Getting SEG-Y files into interpretation software can be a complex and confusing task. The amount of time wasted with persistent errors is frustrating, not to mention the potential repercussions of having incorrectly loaded data. Most of these errors and misunderstanding revolve around the issue of Header Mapping – an essential part of the SEG-Y loading process.

A good investment is to learn how the SEG-Y header information is stored, and understand the necessary steps involved in any SEG-Y loading process.

This document is aimed at the non-data specialists, and designed to help users understand the complexities of SEG-Y files, and facilitate the task of loading these into Insight. It describes a SEG-Y file in layman’s terms, with particular attention paid to the use of SEG-Y header information, during the SEG-Y loading process.

SEG-Y Overview

SEG-Y is an internationally recognised file format developed by the Society of Exploration Geophysicists (SEG) for storing geophysical data, particularly in the Seismic Industry.

Originally released in 1975, SEG-Y rev 0, experienced widespread usage, which brought about many proprietary variations. These variations have resulted in many inconsistencies throughout the industry, particularly in the way header information (such as positioning data) is stored.

The most recent revision of the SEG-Y format was published in 2002, named the rev 1 specification (http://www.seg.org/documents/10161/77915/seg_y_rev1.pdf).

One of the major changes introduced by SEG-Y rev 1, was standardising the way header information is stored for improved consistency, and also to cater for modern acquisition and processing techniques.

Despite improved standardisation and consistencies, SEG-Y data is still notoriously “non-standard”, particularly with older vintages, which consequently gives rise to difficulties loading data.

So what is in SEG-Y?

A SEG-Y file comprises data traces (which contain the actual seismic records) as well as three types of header information: a Text Header, a Binary Header, and individual Trace Headers.

Text Header

The Text Header (aka EBCIDIC Header), provides a human-readable description of the data in the SEG-Y file (a bit like a readme file), and usually (though not always), contains useful information on how the SEG-Y file should be loaded.

Binary Header

The Binary Header contains information (values) that apply to the whole SEG-Y file, such as the sampling interval and the total number of samples in the traces. The Binary Header appears like a table, comprising rows of information, divided into three columns. Each row pertains to a specific piece of information, and the three columns are: 1:  Byte code, 2: a human-readable descriptor, 3. the value. See example table below:

Binary Header

Trace Headers

The data Trace Headers contain information (values), pertinent to each and every data trace (seismic record). These values may change on a trace-by-trace basis, such as the CMP number, and the geographic X and Y coordinates of each data trace.

The information (values) contained within each of the trace headers are stored in different “byte locations”.

A byte can be thought of as a repository in the file, where non-seismic information (values) can be stored. These bytes are numbered from 1 to 240. Often, the information to be stored is too large to be stored on a single byte alone and consequently 2 or even 4 bytes are commonly used to store a particular piece of information.

Note: In computer coding lingo, 2 byte and 4 byte locations are also known as “int16” and “int32” respectively. These distinctions are relevant in the latter sections of this guide.

The SEG-Y rev 1 standard defines specific bytes for the storing of specific information (values), needed for the processing and interpretation of SEG-Y files. The table below describes some of the more commonly used bytes and the specific information they contain, as per the SEG-Y rev 1 standard:

Trace Headers

Data Traces

The actual seismic data in a SEG Y file is made up of a series of individual seismic records, known as the data traces. Depending on the type of data (2D, 3D, gathers etc), these data traces will be organised in a particular fashion in order to be loaded and displayed correctly in the interpretation software.

How does Insight know?

As part of the SEG-Y Loading process, Insight needs to know which bytes contain the required information such as CMP Number, CMP X Coordinate and CMP Y Coordinate etc. This process is known as “mapping the headers”, and is done in Stage 3 of the loading process: “Specify the byte locations of headers” screen, Figure 1 below.


  • When specifying byte locations in Insight SEG-Y Loader, only the first of the 2 or 4 bytes (required to store a particular piece of information) is required to be stated e.g. for X Coordinate, we would simply specify byte 181, not 181 to 184.
  • The byte length (181-184) is specified by selecting int32 from the adjacent drop down menu (see Note in So what is in SEG-Y? above).

By default, Insight automatically looks in the relevant standard byte locations (Table 2 above). If the SEG-Y file being loaded does adhere to the SEG-Y standard, then the user simply has to check the values obtained are as expected, and then move on to the next stage.

How does Insight know?

But here is the catch

Unfortunately, due to the variety of acquisition systems and processing standards employed by various companies around the world, these SEG-Y standard byte locations are often not adhered to, and the user consequently has to map these byte location manually.

Some examples of commonly “misplaced” information are:

  • CMP X and Y coordinates stored in place of the Source X and Y coordinates in byte’s 73 and 77 respectively.
  • Ensemble (CMP) Number stored on byte 25, not byte 21
  • Inline Number and Crossline Number on byte 9 and 13, not 189 and 193.

The possibilities are endless.

How does the user know?

In the likely event that the SEG-Y file does not adhere to the SEG-Y rev 1 standard, the user is required to manually tell Insight which bytes contain the required information.

Assuming the user has received no specific loading instructions, the first place to look is in the Text (EBCIDIC) Header.

The purpose of the Text (EBCIDIC) Header is to provide a description of the SEG-Y file (Figure 1, button 1), and should (but often does not) include a list of which Trace Header byte locations contain all the important information.

In the example Text Header shown in Figure 2 below, we see that the Text Header states the X and Y coordinates are contained within bytes 73 and 77 respectively; and the inline and crossline numbers are in bytes 9 and 13 respectively. The user can then specify these byte locations, and move on with the process.

How does the user know?

Sometimes however, the Text Header provides no information at all, or even worse: misleading incorrect information. In this case, the user will then have to manually inspect the Trace Headers themselves (Figure 1, button 3). The process of manually inspecting the trace headers basically involves looking for values that fit the description of the value you are looking for. For example, X and Y coordinates usually have a recognisable six and seven digit number, respectively (for UTM coordinates). In the case of coordinates, the user must also be wary of any coordinate scalar value.

When you view the trace headers in the Trace Headers window, the byte locations are labeled according to the SEG-Y REV-1 specification (blue box in Figure 3 below). Only the values are read from the SEG-Y file (green box in Figure 3 below).

In the example shown in Figure 3 below, we see seven and eight digit numbers in bytes 73 and 77 respectively, which would otherwise fit our expected, X and Y coordinates. There is also a coordinate scalar of 1/10 (divide by 10), to be applied to these values. This is indicated by the “-10” on byte 71 (Coordinate scalar) on the int16 (2 byte) column.

Note: From Table 2 above, Coordinate scalar is a 2 byte header, and 2 byte is also known as int16, hence the coordinate scalar appears on the int16 column.

The trace headers window will, by default, show only the “likely” byte locations. The term “likely” here refers to only those byte locations (SEG-Y rev1 standard) relevant to loading of that particular SEG-Y, e.g. Inline and Crossline (bytes 189 and 193) are not shown when loading 2D data. Therefore, may need to select to show “all” locations in order to show the bytes you need to inspect.

Depending on the type of data being loaded the following Table 3 below, presents a summary of the essential information required for data loading into Insight, and its usual (SEG-Y standard) byte location.

Some useful tools available to you in the Trace Headers window:

  • View information for multiple traces at the same time, by increasing the value in the Number of Traces box. The numbers displayed, will now be the range of values, across that range of traces, and any periodic increment will be indicated in square brackets
  • View the Data Traces – This brings up a separate window displaying the seismic records for those traces being viewed (Figure 4). This can be particularly useful, for example, to work out the number of traces per Inline/Crossline/Gather, if it is unknown.

For further details of the controls and use of the Trace Headers window, click on the Help icon to refer to the specific documentation on this.

Once you are confident you have specified the correct byte locations for all the required information, the user can now progress to the next stage of the SEG-Y loading process.