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.