SEG-Y description

The most complete description can be found in the official SEG-Y specification but here we give a brief intro into SEG-Y format.

The SEG-Y is a binary file divided into several blocks:

  • file-wide information block which in most cases takes the first 3600 bytes:

    • textual header: the first 3200 bytes are reserved for textual info about the file. Most of the software uses this header to keep acquisition meta, date of creation, author, etc.

    • binary header: 3200–3600 bytes contain file-wide headers, which describe the number of traces, the format used for storing numbers, the number of samples for each trace, acquisition parameters, etc.

    • (optional) 3600+ bytes can be used to store the extended textual information. If there is such a header, then this is indicated by the value in one of the 3200–3600 bytes.

  • a sequence of traces, where each trace is a combination of its header and signal data:

    • trace header takes the first 240 bytes and describes the meta info about its trace: shot/receiver coordinates, the method of acquisition, current trace length, etc. Analogously to binary file header, each trace also can have extended headers.

    • trace data is usually an array of amplitude values, which can be stored in various numerical types. As the original SEG-Y is quite old (1975), one of those numerical formats is IBM float, which is very different from standard IEEE floats; therefore, special caution is required to correctly decode values from such files.

For the most part, SEG-Y files are written with a constant size of each trace, although the standard itself allows for variable-sized traces. We do not work with such files.