Trace File Formats

  • Trace File Naming Conventions
  • Internal Structure of Trace Files
  • Comparison of Lynx and SEG-Y Trace File Structures
  • File Size
  • How to choose trace sample formats
  • Lynx trace file binary header
  • Mapping between Lynx and SEGY trace headers
  • Table of SEG fields and Lynx equivalents
  • Trace File Naming Conventions

    For backward compatibility with the older MS-DOS based 3-S system, seismic trace file names should follow the normal MS-DOS conventions of a file name of up to 8 characters, followed by a period and a 3 character file extension. If you don't intend to use 3-S programs, you can use filenames longer than 8 characters.

    The first two characters in the extension are TR, followed by a third alphabetic or numeric character to denote the trace file "version". The first trace file allocated for a given seismic line will normally have the character "0" as its version character. New trace files, if allocated automatically, will follow on with version characters of 1, 2 through to 9, then A to Z.

    The sequence would normally go like this:

    Raster file - MYLINE.RLC
    3-S trace file - MYLINE.TR0
    Processed traces - MYLINE.TR1
    Re-processed traces -  MYLINE.TR2 etc.

    You can allocate trace file extensions anywhere in the sequence 0..9, A..Z. The next file to be allocated will be given the next free extension in the sequence. When the sequence reaches TRZ the system will start again from TR0. This allows 36 versions of any trace file name to co-exist - enough for most purposes.


    Internal Structureof Trace Files

    The internal format of 3-S trace files follows the general structure of SEG-Y files on tape. Unlike a file on tape, a 3-S file contains no internal record separation marks and consists of a single continuous block of data.

    You could copy a SEG-Y tape to disk, using the MSDOS TapeFile utility for example, but the resulting file would not, however, be compatible with a 3-S trace file because SEG-Y tapes are encoded in IBM's binary format. This format is hostile to all computers except IBM mainframes, so use the conversion facilities in SEGYLOAD and SEGYSAVE to transfer between 3-S and SEG-Y formats.

    Comparison of Lynx and SEG-Y trace file Structures

    Component Size (bytes) SEG-Y tape Trace file
    Line header 3200 EBCDIC
    Inter-block gap
    ASCII
    No gap
    Binary header 400 2/4 byte INT
    Inter block gap
    INT/IEEE FLOAT
    No gap
    Trace header 240 2/4 byte INT INT/IEEE FLOAT
    Trace samples as 4 byte IBM FLOAT 4 byte IEEE FLOAT
    or 4 byte INT
    or 2 byte INT 2 byte scaled INT
    or 4 byte with gain code 1 byte excess 128 scaled

    File Size

    Lynx sample formats allow a trade-off to be made between the precision of the stored data samples and the amount of disk space required to store them. Storage requirements for a trace file are given by:-

    the file size in bytes = 3600 + (240+b*Nsamps)*Ntraces

    where:
    b is the bytes per sample (1,2 or 4),
    Nsamps is the number of samples per trace,
    Ntraces is the number of traces.

    For a typical seismic line, having 1000 traces and 1500 samples per trace (ie 6 seconds of data at 4 msec sample interval), the corresponding file sizes are as below:-

    Format Size in bytes
    1 1,743,600
    2 3,243,600
    4 6,243,600

    How to choose trace sample formats

    By using a smaller trace sample format the size of a trace file can be reduced considerably. Whether or not the loss of precision will be significant will depend on the quality and dynamic range of the data. Dynamic range is loosely defined as the ratio of the largest signal amplitude to the smallest useable amplitude variation. These variations can be due to signal, noise, or a mixture of both, but can never be smaller than the quantisation imposed by the binary representation of the sample values.

    For 1 byte format the dynamic range is 256:1, or about 48 decibels.

    For 2 byte format the dynamic range is 65536:1, or about 96 decibels.

    For 4 byte format the true dynamic range depends on the signal level, and is about 120 decibels.

    If file size is a consideration, "raw" scannned data, produced by the SSV program will rarely have sufficient dynamic range to justify the use of formats 2 or 4, except for very good quality originals scanned at a high resolution. The default format for output from SSV is therefore 1 byte per sample.

    It is possible that filtering or deconvolution may produce data in which the effective dynamic range approaches the 48 dB limit available with 1-byte format.

    4-byte format is probably unnecessary for data produced by scanning and vectorisation. The default output format for the trace processing and migration programs is therefore 2-bytes per sample.

    Lynx trace file binary Header

    The Lynx trace file binary header structure is shown below. Note particuarly that

    Client Client name
    Line Profile name
    EBCDIC Character format is EBCDIC
    SampInt Trace sample interval
    NSamp No.of samples per trace
    BytesPerSamp No. of bytes per sample
    IntelOrder Byte orde Intel
    FloatSamples samples are floating point
    FloatFormat Floating point format
    NTr No. of traces in file
    TMin Time of first sample
    TMax Time of last sample
    TRange Time length
    TracesPerCDP Traces per CDP
    FirstCDP First CDP
    LastCDP Last CDP
    CDPincr CDP increment
    FirstSP First Shotpoint
    SPincr Shotpoint increment
    TrSpace Trace spacing

    Mapping between Lynx and SEGY trace headers

    Lynx trace header record, 240 bytes

    The Pascal (Delphi) variable types used in this structure are

    Identifier Pascal type Content
    iTrLine longint Trace Sequence no. in Line
    iTrReel longint Trace Sequence no. in Reel
    iFieldRec longint Original Field Record no.
    iTrChan longint Trace no. in original field record
    SPno single Energy source point no.
    iCDPno longint CDP ensemble no.
    iTrCDP longint Trace no. in CDP ensemble
    iTrccode smallint  
    NLabels smallint Lynx no of trace labels
    NStack smallint Horizontal stack for this trace
    DataUse smallint Data use 1=production 2=test
    RSOffset single Source to receiver distance
    rElev longint Receiver group elevation
    sElev longint Surface elevation at source
    sDepth longint Source depth below surface
    rDatum longint Datum elevation at receiver group
    sDatum longint Datum elevation at source
    sWaterDep longint Water depth at source
    SPAux single Lynx auxiliary shotpoint no.
    ElevScale smallint Datum Scaler for values in bytes 41-68
    CoordScale smallint Scaler for values in bytes 73-88
    SX longint Source Coordinate - X
    SY longint Source Coordinate - Y
    RX longint Group Coordinate - X
    RY longint Group Coordinate - Y
    CoordUnits smallint Coord units 1=length 2=secs
    TrScale realbytes Lynx trace internal scale
    TrConst realbytes Lynx trace internal constant
    Static smallint Total static applied
    LagA smallint Lag time A
    LagB smallint Lag time B
    RecDelay smallint Delay recording time
    tMute1 smallint Mute time start
    tMute2 smallint Mute time end
    TrNSamp smallint Number of samples this trace
    TrSampInt smallint Sample interval microsec this trace
    TRefIntvl smallint Lynx time ref point interval
    NTRef smallint Lynx no. of time reference points
    TRef 28 smallints Lynx start of time reference array
    BaseYincr smallint Lynx Y baseline increment
    NBase smallint Lynx no. of baseline segments
    Base 28 smallints Lynx start of baseline array

    SEGY trace header fields and their Lynx equivalents

    SEG-Y trace header fields and their corresponding Lynx fields are shown below. These Lynx fields occupy the same byte positions in the header structure as their SEG-Y equivalents, but have Intel byte order, i.e. the byte order within integers is reversed.

    When converting from SEGY to Lynx, fields marked * none * have no Lynx equivalent and therefore will not normally be preserved. To preserve these fields, you can use Lynx "preserved" formay LYNXP, in which all the input SEG-Y trace header information is copied into an extra 240 byte buffer at the end of the Lynx trace header.

    When converting from Lynx to SEG-Y format, fields with Lynx equivalents may be filled in on the output file. Fields marked * none * will only be filled in if LYNXP preserved format was used for processing and then only if the original data were SEG-Y and these fields contained data.

    bytes content Lynx equivalent
    01-04 Trace Sequence no. in Line iTrLine
    05-08 Trace Sequence no. in Reel iTrReel
    09-12 Original Field Record no. iFieldRec
    13-16 Trace no. in original field record iTrChan
    17-20 Energy source point no. SPno (note 1)
    21-24 CDP ensemble no. iCDPno
    25-28 Trace no. in CDP ensemble iTrCDP
    29-30 Trace identification code iTrCode
    31-32 Vertical sum for this trace * none *
    33-34 Horizontal stack for this trace * none *
    35-36 Data use 1=production 2=test DataUse
    37-40 Source to receiver distance RSOffset
    41-44 Receiver group elevation rElev
    45-48 Surface elevation at source sElev
    49-52 Source depth below surface sDepth
    53-56 Datum elvation at receiver group rDatum
    57-60 Datum elevaion at source sDatum
    61-64 Water depth at source sWaterDep
    65-68 Water depth at group * none *
    69-70 Scaler for values in bytes 41-68 ElevScale
    71-72 Scaler for values in bytes 73-88 CoordScale
    73-76 Source Coordinate - X SX
    77-80 Source Coordinate - Y SY
    81-84 Group Coordinate - X RX
    85-88 Group Coordinate - Y RY
    89-90 Coord units 1=length 2=secs Coord Units
    91-92 Weathering velocity * none *
    93-94 Sub weathering velocity * none*
    95-96 Uphole time at source * none*
    97-98 Uphole time at group * none*
    99-100 Source static correction * none*
    101-102 Group static correction * none*
    103-104 Total static applied Static
    105-106 Lag time A LagA
    107-108 Lag time B LagB
    109-110 Delay recording time RecDelay
    111-112 Mute time start tMute1
    113-114 Mute time end tMute2
    115-116 Number of samples in this trace trNsamp
    117-118 Sample interval microsec this trace trSampint
    119-120 Field gain 1=fixed 2=binary 3=fl.pt * none*
    121-122 Instrument gain constant * none*
    123-124 Instrument early gain db * none*
    125-126 Correlated 1=yes 2=no * none*
    127-128 Sweep frequency at start * none*
    129-130 Sweep frequency at end * none*
    131-132 Sweep length in msec * none*
    133-134 Sweep type 1=lin 2=parabolic 3=exp * none*
    135-136 Sweep start taper msec * none*
    137-138 Sweep end taper msec * none*
    139-140 Taper type 1=lin 2=cos**2 3=other * none*
    141-142 Alias filter freq if used * none*
    143-144 Alias filter slope * none*
    145-146 Notch filter freq if used * none*
    147-148 Notch filter slope * none*
    149-150 Low cut freq if used * none*
    151-152 Low cut slope * none*
    153-154 High cut freq if used * none*
    155-156 High cut slope * none*
    157-158 Year data recorded * none*
    159-160 Day of year * none*
    161-162 Hour of day * none*
    163-164 Minute of hour * none*
    165-166 Second of minute * none*
    167-168 Time basis 1=local 2=GMT * none*
    169-170 Trace weighting factor * none*
    171-172 Group no. at rollalong posn. 1 * none*
    173-174 Group no. of trace 1 in field rec. * none*
    175-176 Group no. of last trace in field rec. * none*
    177-178 Gap size total groups dropped * none*
    179-180 Taper overtravel 1=down 2=up * none*

    Note 1. The shotpoint number field is written as a floating point number in a Lynx format header, to allow for fractional shotpoint increments, whereas it is an integer in SEGY format.