The DUG Insight Guide to SEG-Y
Getting SEG-Y files into interpretation software can be a complex and confusing task. Since it was created, different applications have written their own variations on the standard, and not all processing companies are careful to include the required information. So much time has been wasted over the years facing persistent errors and incorrectly loaded data.
This guide answers the most common SEG-Y questions and provides information useful to anyone who deals with SEG-Y format data on a regular basis. It is aimed at non-data specialists, described in layman’s terms.
SEG-Y is a 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) was adopted worldwide. As different software packages began using the format, variations appeared -- often because their needs weren’t addressed by the format. These inconsistencies mostly affect the way header information (such as positioning data) is stored. In 2002, revision 1 was released, standardising headers and improving consistency.
Recently, SEG released revision 2 of the standard addressing many major of the issues remaining in Revision 1 (details here).
This guide focuses on SEG-Y Revision 1.0 -- the most commonly used revision at this time.
While perfect for its original goal of reading and writing to tape, the format is not well suited for today’s modern software. Today, we have large 3D datasets and would like to view it in inlines, crosslines and even time or depth slices.
Because the SEG-Y format is not flexible or efficient enough, the Insight SEG-Y Loader converts SEG-Y data into DUG’s Dugio format. The Dugio format is optimised to provide the necessary speed and flexibility for Insight’s high performance displays. (see SEG-Y Loader Overview).
A SEG-Y file mostly consists of a series of data traces (the actual seismic records). Each trace is usually the recording of the seismic response at one surface location. The SEG-Y file also includes three types of header information that describe the data:
- a text header
- a binary header
- a header for each trace
The Text Header, also known as the EBCDIC Header because of its data format, provides a human-readable description of the data in the file. It’s a bit like a readme file. It usually contains information on the type of data, the acquisition and processing, and positioning information. This depends on how considerate the creators of the file were. Unfortunately, it’s common to encounter files with no text information at all!
The Binary Header contains values that apply to the whole SEG-Y file. The most important values are the sampling interval and the number of samples in each trace.
The data in this section is very consistent and most software has no trouble interpreting the values.
The Binary Header is presented in table form, divided into three columns.
The three columns are:
- a standard abbreviation.
- a simple description
- the value stored in this header
Each seismic trace has its own trace header. The values change on a trace-by-trace basis, covering details such as the CMP number and the geographic coordinates.
The information (values) in the trace header are stored in different “byte locations”.
The byte location is the position in the header where the non-seismic information (values) are stored. The locations are numbered from 1 to 240. One location isn’t large enough to store most values, so one piece of information can be spread across two or four locations.
Note: In computer coding lingo, 2 byte and 4 byte locations are also known as “int16” and “int32” respectively. These distinctions make a difference.
The SEG-Y rev 1 standard defines specific bytes for the storing of specific information. Here are some of the more commonly used locations and the information they contain, as per the standard:
When loading SEG-Y, Insight needs to know which bytes locations contain the required information, such as CMP Number, CMP X Coordinate and CMP Y Coordinate. Choosing these locations is called “mapping the headers”, and is done in Stage 3 of the loading process: “Specify the byte locations of headers” screen.
When specifying byte locations in the SEG-Y Loader, only the first byte location 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.
By default, Insight automatically looks for the standard byte locations. If the SEG-Y file follows the SEG-Y standard, then the user simply has to check that the values are as expected, and then move on to the next stage.
Unfortunately, because of the reasons discussed earlier, the SEG-Y standard byte locations are often not followed, and the user must select the locations 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.
If the SEG-Y file does not follow the standard you must tell Insight which locations contain the required information.
The first place to look is in the Text (EBCIDIC) Header.
In the example Text Header, we see that 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. By choosing these byte locations, the file should load successfully.
Sometimes the Text Header provides no information at all, or even worse, has incorrect information. In this case, it’s time to manually inspect the Trace Headers themselves. (Figure 1, button 3).
To manually inspect trace headers, 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). Coordinates can also be scaled, so consider whether a coordinate scalar value has been applied.
In this Trace Headers window, the byte locations are labeled according to the SEG-Y REV-1 specification (the blue box). The possible values from the SEG-Y file are shown on the right (the green box).
In the example, we see seven and eight digit numbers in bytes 73 and 77, which almost fit our expected X and Y coordinates. Looking at byte 71 (Coordinate scalar) on the int16 (2 byte) column, we see “-10” . This indicates there is a coordinate scalar of 1/10 (divide by 10), to be applied to these values.
The Coordinate scalar is a 2 byte header, and 2 byte is also known as int16, hence the coordinate scalar appears on the int16 column.
By default, the trace headers window will only show the “likely” byte locations. These are the locations (SEG-Y rev1 standard) relevant to loading the specified type of SEG-Y. For example, Inline and Crossline (bytes 189 and 193) are not shown when loading 2D data. In very non-standard cases, you may need to select to show “all” locations in order to show the bytes you need to inspect.
This table shows a summary of the essential information required for data loading into Insight, and its usual (SEG-Y standard) byte location.
When using the Trace Headers window:
- View information for multiple traces at the same time by increasing the value in the Number of Traces box. The range of values across that range of traces is displayed and a regular step size (increment) will be shown in square brackets
- View the Data Traces This shows a window of the seismic records for the Number of Traces. This can be useful to help identify the number of traces per Inline/Crossline/Gather.
Once you are confident you have the correct byte locations for all the required information, you can move on with writing out a dugio volume.
Find out more about SEG-Y loading in the DUG Insight manual!