Trace geometry & SEG-Y headers
Learning objectives
- Derive a trace’s CMP and offset from its shot and receiver positions
- Explain why the fold profile has a characteristic trapezoidal shape
- Read a SEG-Y trace header and identify the six fields that matter most
- Recognize the three classic header bugs that eat a processor’s week
Every trace lives in at least three coordinate systems: shot, receiver, and midpoint. Every processing step cares about a different one. Getting these consistent is the entire point of geometry QC: what your software thinks is the CMP of a trace must be where the reflection actually came from.
1. The two coordinates per trace
A trace is recorded by one receiver for one shot. Those two positions give you everything else:
The common midpoint (CMP) is the halfway point between shot and receiver. For a flat reflector in a laterally uniform earth, every trace with the same CMP “sees” the same subsurface point, at different angles of incidence. Stacking those traces after correcting their traveltimes for offset (NMO, Section 3.2) boosts the signal at that point. Six decades of processing theory, since Mayne (1962), pivot on that one sentence. With traces and independent noise, the signal-to-noise ratio grows by about , which is in decibels. Where the reflector dips, the reflection points of one CMP smear along it, which is why dip moveout and prestack migration exist.
2. The CMP sort
Raw data comes in shot order: one shot, all its receivers, next shot, and so on. To stack, you re-sort the traces so all traces with the same CMP sit together. That re-sorted collection of traces is a CMP gather.
The figure below lays out a 2D line: 61 shots every 50 m along 3 km, each recorded by a split spread of 60 live channels 25 m apart that rolls along with the shot, 3660 traces in all. Every trace is written to a SEG-Y trace header and read back, as a loader would. Pick any CMP along the line to see the ray pairs of its traces in (a), where they sit on the stacking chart in (b), the fold of every bin in (c), the gather that bin holds in (d), its stack in (e), and the header of one of its traces, byte by byte, in (f).
Notice the trapezoidal fold profile in (c). Near the ends of the line only the nearest shots reach a bin, so fold ramps up; in the middle the full range of offsets reaches every bin, and fold levels off on a plateau. Midpoints move half as far as receivers, so each ramp is about half the spread length, , measured in CMP position: the figure measures 700 m against the 737.5 m the formula gives. The plateau height is the nominal fold , 15 traces here, and a bin on the plateau stacks to an S/N gain of +11.8 dB, the that independent noise predicts. Freeze the spread (Fixed) and the trapezoid becomes a triangle that peaks at 30 traces in the middle of the line: a fixed spread has no plateau. Designing a survey to give uniform fold over your target area is survey-design job one.
3. SEG-Y: the trace + its header
The industry-standard format for seismic is SEG-Y. Every SEG-Y file contains:
- A 3200-byte textual header (EBCDIC or ASCII), the human-readable who/when/where.
- A 400-byte binary header, sample rate, sample count, format code.
- A stream of traces. Each trace = a 240-byte trace header followed by the samples themselves.
The 240-byte trace header has 80+ fixed fields at fixed byte offsets. You will encounter thousands of SEG-Y files in your career; the six fields you must recognize are:
- Field record number (FFID, bytes 9-12): which shot.
- Trace number within the record (bytes 13-16): which channel of that shot.
- Source X, Y (bytes 73-80): where the source fired.
- Receiver X, Y (bytes 81-88): where the trace was recorded.
- Offset (bytes 37-40): the signed distance from shot to receiver.
- CMP X, Y and bin number: the midpoint coordinates (bytes 181-188) and the bin the geometry software assigned (CDP number, bytes 21-24; inline and crossline, bytes 189-196).
Panel (f) of the figure shows these fields for one trace of the selected bin: their byte locations, the bytes as they sit in the file and the integer a loader reads from them, with coordinates as X only, since this is a single 2D line. It adds the coordinate scalar (bytes 71-72) and a check that recomputes from the source and receiver X.
4. Three header bugs that eat weeks
- Scalar on coordinates is wrong. SEG-Y stores coordinates as integers with a scalar in bytes 71-72: a positive scalar multiplies, a negative one divides, and coordinates stored in centimetres carry −100. If the scalar is −100 but the software ignores it, your survey silently spreads over 100× its real extent; in the figure the 3 km line reads as 300 km. Bin numbers and offsets carry no scalar, so the fold and the stack look normal. Migration, which needs positions, blows up.
- CMP field is empty or stale. Software can recompute the CMP from source and receiver X, Y, but if the CDP number was set from the planned geometry and not updated after the crew moved the real receivers, the bin number is fiction. The fold map looks fine; the stacked image is blurred. In the figure the receivers between 1200 and 1800 m move 100 m after the CDP numbers are written: the bin at 1494 m still holds 15 traces, but their recomputed midpoints span 50 m and 12 of the 15 belong in other bins.
- Wrong byte order. SEG-Y rev 1 is big-endian, but many legacy writers emit little-endian; rev 2 allows either and records which in binary-header bytes 3297-3300. Read with the wrong byte order, every header integer is gibberish: in the figure the shots land between −85 km and 80 km, and NMO throws every reflection out of the record. If a delivery merged files from two writers, half the traces have valid geometry and half do not.
Every processing shop has a checklist for SEG-Y load QC: print a few header values, display a fold map, plot shot lines, compare trace counts against the vendor report. Skipping this step is how weeks disappear.
5. 2D vs 3D sorting
The figure is a 2D line: the CMP is a 1D axis (inline), and fold is a 1D profile. In 3D, CMP is a 2D bin (inline × crossline); fold is a 2D map. Offset distribution is still 1D per bin; azimuth is an extra dimension per bin in 3D. Modern processing keeps all four axes (inline, crossline, offset, azimuth) when they matter, as in AVO analysis, anisotropy and 4D, and sums over them when they do not.
6. From geometry to the rest of processing
Once geometry is loaded cleanly and CMP bins are populated, most of the rest of processing is a sequence of operations on CMP gathers:
- Velocity analysis (Section 3.3) picks semblance maxima on gathers.
- NMO correction (Section 3.2) flattens hyperbolae within a gather.
- Stacking collapses the gather to a single trace.
- Pre-stack migration (Sections 5.3 and 5.4) keeps the gather unflattened and moves each trace to its imaged position.
If the geometry is wrong, all of the above is wrong. This is why we spend a whole section on it.
A CMP bin collects all traces whose shot and receiver share a midpoint; stacking that collection is the first big SNR gain; and every downstream algorithm trusts that the CMP field in the header is actually correct.
Where this goes next
Section 1.4 is a catalogue of everything in the trace that is not signal: ground roll, swell, direct arrivals, multiples, and ambient noise. Each has a signature; each needs its own attenuator. Knowing which one you are looking at is half the battle.
References
- Mayne, W. H. (1962). Common reflection point horizontal data stacking techniques. Geophysics, 27(6), 927-938.
- Sheriff, R. E., Geldart, L. P. (1995). Exploration Seismology (2nd ed.). Cambridge UP.
- Yilmaz, Ö. (2001). Seismic Data Analysis (2 vols.). SEG.
- Claerbout, J. F. (1976). Fundamentals of Geophysical Data Processing. McGraw-Hill.