Seg 2
Seg 2
Pullan, S. E., 1990, Recommended standard for seismic (/radar) files in the personal
computer environment: Geophysics, 55, no. 09, 1260-1271.
INTRODUCTION
The application of seismic reflection and
ground-penetrating radar methods to
engineering, groundwater, and
environmental problems has increased
dramatically over the last 10 years, spurred
by the rapid development of new
instrumentation and personal computers.
This "coming of age" of shallow reflection
techniques has been accompanied by the
recent development of several different
software packages for processing and
displaying data. However, this expansion in
the user's processing potential has been
somewhat hindered by the lack of a
standard data format. All software packages
have been based on their own, or a
FIG. 1. File format
manufacturer's, specific data format.
At the October 1987 meeting of SEG's
Engineering and Groundwater Geophysics
1
1990 Society of Exploration Geophysicists. All rights reserved.
This report is the work of the Subcommittee of the SEG Engineering and Groundwater Geophysics
Committee
2
Geological Survey of Canada, 601 Booth St., Ottawa, Ont. Canada KIA OES.
1 of 20
FIG. 2. File descriptor block
2 of 20
may then assume that data from any source information and other information
will be input to their programs in this format dependent upon the data-generating
computer, language, and operating system
should be included in the file in known
STANDARD SPECIFICATION
locations to allow other computers and
software the ability to parse the overhead
II. Scope
data and properly interpret the data.
This is a recommended standard for the
construction of seismic or digital radar data III. Proposed format
files in personal computer environments.
The seismic (/radar) data may be either raw
A. File structure
data or processed data organized in one or
more blocks of trace data. The computer The file consists of a File Descriptor Block,
environment includes but is not limited to one or more Trace Descriptor Blocks, and
IBM and compatible computers running one or more Data Blocks. The File
DOS or OS/2, Macintoshes, and UNIX work Descriptor Block provides information
stations. This standard specifies a format for required to parse the rest of the overhead
placing raw or processed data samples with data and other information common to all
associated overhead information on to one traces in the file. Each Trace Descriptor
file for access by application programs. This Block corresponds to one Data Block and
standard does not involve itself with file provides location, format, and other
management concerns such as how data information pertinent to that Data Block. The
are put on disk or tape media. Data Blocks immediately follow their
corresponding Trace Descriptor Blocks and
II. Requirements for standard consist of fixed point or floating point
This standard shall be a free-form standard numbers as specified in the Trace
capable of allowing as much or as little Descriptor Block. There is a one to one
overhead data as the data-generating correspondence between Data Blocks and
application software or recording Trace Descriptor Blocks. The blocks must
seismograph can provide. It shall not be arranged in the order shown in Figure 1.
depend on the nuances of one Pointers are used to indicate locations of
programming language, and shall provide blocks with respect to the beginning of the
for the sharing of data by any of the file. Pointers are always unsigned long
personal computers or workstations integers (32 bits) rather than the segment:
commonly used for processing seismic data offset format common to some processors.
today and into the foreseeable future. This All addressing is to byte boundaries. All
standard shall be easy to maintain and blocks must start on double word (32 bit)
require a minimum of revision. boundaries.
The position of overhead data within the file
must not be critical. It must not be B. Block structures
necessary to put in blank lines for missing
B1. File Descriptor Block.
data. Instead, each data item should be in a
string with an identifying keyword. In this The first block in the file is the File
way, included data items may be chosen Descriptor Block. The construction of the
from a large list of possible items without File Descriptor Block is shown in Figure 2.
creating extremely large and cumbersome This block is required and holds information
data files. pertaining to the structure and interpretation
of the file and data common to all traces in
Care must be taken not to assume token the file This block consists of (i) 32 bytes
and line delimiters such as NULL providing the block identifier, file standard
characters, CR, CR/LF, etc. Instead this revision number, size of the Trace Pointer
3 of 20
Subblock (see below), number of traces in specified in bytes 6 and 7. N is an unsigned
this File, string and line terminator integer with an allowable range of 1 to
information; (ii) a Trace Pointer Subblock 16,383. N must be less than or equal to
giving pointers to the start of each Trace M/4.
Descriptor Block in the file; and (iii) a series
The String Terminator is one or two
of optional strings which contain information
nonprintable ASCII characters (decimal
such as the type of data to follow,
ASCII codes 0 through 31) used to separate
acquisition parameters, etc, and any notes
the strings that hold the information in
that may incorporate operator observations
character string form in this block (the File
and/or environmental descriptions which
Descriptor Block) and the Trace Descriptor
apply to the entire file.
Blocks. Byte 8 is 01h or 02h depending on
The first two bytes (bytes 0 and 1) of this the number of characters in the String
block (and of the file) contain the integer Terminator and the two following bytes
3a55h. This integer identifies the file as a contain the String Terminator characters. If
seismic (/radar) data file following this only one character is used, that character is
standard, identifies this block as the File in byte 9.
Descriptor Block, and provides the means to
The Line Terminator is one or two
determine whether the Iow byte (least-
nonprintable ASCII characters (normally CR
significant bits) of multibyte entities is
or CR and LF) used to separate the lines of
written first or last. If the first byte of the file
text in a NOTE string. Byte 11 is 01h or 02h
is 55h, the file is recorded low byte first as
depending on the number of characters in
on an IBM PC; but if the first byte is 3ah, the
the Line Terminator and the two following
file is recorded Iow byte last as on some
bytes contain the Line Terminator
68000 based UNIX machines.
characters. If only one character is used
The next two bytes (bytes 2 and 3) contain that character is in byte 12.
an integer stating the revision number of
The restriction of allowable String and Line
this standard used by the data-generating
Terminators to nonprintable ASCII
device or program. The version defined by
characters is to avoid any potential conflicts
this paper shall be referred to as version 1.
with the characters allowed in the definition
Bytes 4 and 5 contain an unsigned integer
of such strings as JOB-ID, etc.
giving the size (M) of the Trace Pointer
Subblock in bytes. The integer byte order of Bytes 14 through 31 are reserved.
this and all following integers is interpreted The Trace Pointer Subblock starts at byte
according to the first two bytes of this file 32, and contains pointers (unsigned long
This number, as all block sizes, must be integers) to the start of each Trace
divisible by 4 since all blocks must start on Descriptor Block contained in the file. The
double word boundaries. This number must length of this subblock in bytes (M) is
be between 4 and 65,532. specified in bytes 4 and 5, and the number
Within these restrictions, the size of this of pointers contained in the subblock (N) is
subblock is completely up to the user. For specified in bytes 6 and 7 (see above). This
example, it could be just large enough to fixed format allows a file to be built up one
hold the pointers to the 12 Trace Descriptor trace at a time by upgrading the value N
Blocks corresponding to a single record and adding a pointer to the new trace in the
from a 12-channel seismograph (i.e. 48 Trace Pointer Subblock, but without
bytes); or it could be large enough to hold otherwise changing the file format.
the pointers to all processed traces in an Following the Trace Pointer Subblock is a
entire seismic (/radar) line. The subblock free format section containing strings to
does not have to be full; the number of provide optional information pertinent to all
traces actually contained in the file (N) is traces in the record. Each string starts with
4 of 20
an offset to the next string, is followed by a included to provide the block identifier, the
keyword and related parameters, and is size of the block, the size of the Data Block,
terminated by the string terminator (see and the data format code. The strings follow
section C on String Formats below). with information pertinent to that block such
as receiver and shot locations, sample rate,
B2. Trace Descriptor Block. delay, stack count, etc.
There is a one to one correspondence
The first two bytes contain the unsigned
between Data Blocks and the Trace
integer 4422h to identify this block as a
Descriptor Block that describes that Data
Trace Descriptor Block. Bytes 2 and 3
Block. The file must contain at least one
contain an unsigned integer giving the size
Trace Descriptor Block and an example of
of this block in byes. This number, as all
the Trace Descriptor Block is shown in
block sizes, must be divisible by 4 since all
Figure 3. The first thirty-two bytes must be
blocks must start on double word
5 of 20
boundaries. This number must be between Block.
32 and 65,532.
Bytes 4 through 7 contain an unsigned long C. String format
(32 bit) integer giving the size of the The File and Trace Descriptor Blocks
following Data Block in bytes. This number contain strings that provide other required or
must be divisible by 4. Bytes 8 through 11 optional information. All strings start with an
contain an unsigned long integer giving the offset (2 bytes) to the next string and a
number of samples in the Data Block. keyword that identifies the nature of the
Byte 12 specifies the format of the data in string, contain a numeric and/or
the following Data Block according to the alphanumeric value(s), and end with the
table below: string terminator indicated in the File
Descriptor Block. An offset of 0 (2 bytes),
Byte after the final string, marks the end of the
Data Format
Value string list. Keywords cannot have embedded
01h 16-bit fixed point spaces. The keyword and the associated
data are separated by spaces or tabs. All
02h 32-bit fixed point alpha characters in the keywords
03h 20-bit floating point (SEG-D) themselves must be uppercase. Where the
argument associated with a keyword is
04h 32-bit floating point (IEEE chosen from a list of specified words, the
standard) arguments themselves cannot have
embedded spaces and must be in
05h 64-bit floating point (IEEE
uppercase characters. Not all strings
standard)
mentioned need be included in the
descriptor blocks. Unrecognized keywords
will not terminate the process. To assist
The fixed point formats imply the 2's
application program string searches, strings
complement convention. All formats are
must be ordered alphabetically according to
defined in Appendix B.
keyword. The only exception to this rule is
Bytes 13 through 31 are reserved. the NOTE string, which is always at the end
of the string list, if it exists at all.
A series of free format strings providing
information on the acquisition or processing Numeric values may be decimal integers or
history of the data are found starting at byte decimal floating point numbers. Negative
32. Any number of these strings may be decimal numbers are preceded by a minus
included depending on the nature of the sign (-). Decimal floating point numbers may
data or the processing applied. Some use an "E" to express the number in
strings will obviously be required for most scientific notation. Decimal points must be
processing or display sequences that may followed by a numeric character. The
be applied to the data, and every effort numbers in the following list are allowable
should be made to include all pertinent numeric expressions. Unless stated
information in this section of the Trace otherwise, integers must have magnitude
Descriptor Blocks, especially in raw data less than 32,768 (16 bits).
files. The string format is discussed below in
12, -3, 12.657, -34.6, 1.345E24, -2.3E6,
section C.
5.6E-11, -2.0E-9
B3. Data Block. Some values like time and date may be
A Data Block follows each Trace Descriptor expressed in the recommended format
Block. Each Data Block is a collection of indicated below. Examples of the string
numbers of the size and in the format subblocks that may be found in a File
specified in the preceding Trace Descriptor Descriptor Block and Trace Descriptor Block
6 of 20
are shown in Appendix C. This is the name of the company
responsible for acquiring and/or
C1. Strings that may be included in the File processing the data.
Descriptor Block.
GENERAL_CONSTANT <value>
The File Descriptor Block may contain any
or all of the following strings. The keywords This value must be a positive decimal
themselves must be in uppercase number of 12 or fewer digits.
characters and cannot have embedded
INSTRUMENT <manufacturer name>
spaces. Where keywords are two or more
<model number/name> <serial number >
words, the words are separated by an
underscore (decimal ASCII code 95). Where This identifies the instrument used to
the argument associated with a keyword is acquire the data in the file.
chosen from a list of specified words, the JOB_ID <character string>
arguments themselves cannot have
embedded spaces and must be in The JOB-ID can be any string of
uppercase characters. The keywords must printable ASCII characters (decimal
be arranged in alphabetical order except for ASCII codes 32 through 126).
the NOTE string, which will be at the end of OBSERVER <name>
the string list, if it exists at all. The strings
that are likely to be required by application The name of the individual responsible
software routines are denoted with an for data acquisition.
asterisk. It is strongly recommended that PROCESSING_DATE <value>
these strings exist in all File Descriptor
Blocks. The date a processed file was created.
The date is specified as described in
ACQUISITION_DATE <value> ACQUISITION_DATE.
It is recommended that the date be PROCESSING_TIME <value>
specified in dd/mm/yyyy format. Under
this convention, April 1, 1988, would be The time a processed file was created.
stored as 01/04/88. Alternatively, in The time is specified as described in
order to avoid any possible confusion in ACQUISITION_TIME.
the ordering of the day and month, the *TRACE_SORT <sort method>
date could be in dd/mmm/yyyy format,
with mmm being a three-letter The sort method can be
abbreviation of the month. For example, AS_ACQUIRED, CDP_GATHER,
April 1, 1988 would be stored as CDP_STACK, COMMON_OFFSET,
01/APR/1988 COMMON_RECEIVER, or
COMMON_SOURCE.
ACQUISITION_TIME <value>
*UNITS <linear unit system>
It is recommended that the time be
stored in the 24-hour hh:mm:ss format. This defines the linear units used
For example, 3:30 PM would be stored throughout this file. Allowable systems
as 15:30:00. are FEET, METERS, INCHES,
CENTIMETERS or NONE. If NONE is
CLIENT <name> selected, all measurement interpretation
Name of company or organization must be made by the user.
sponsoring data acquisition and NOTE <text>
processing.
This string appears as the last string in
COMPANY <name> the list if it exists at all. The format of
this string differs from all other strings in
7 of 20
that it may contain several lines of text. < Iowpass slope> < highpass freq > <
Each line of text is terminated by the highpass slope >
Line Terminator indicated in the File
The BAND_REJECT_FILTER values
Descriptor Block. The end of the string
are decimal integer or floating point
is indicated by the String Terminator.
numbers (can be mixed) expressing the
C2. Strings that may be included in the Iow-pass 3 dB frequency in Hz and
Trace Descriptor Block. slope in dB per octave, followed by the
high-pass 3 dB frequency in Hz and
The Trace Descriptor Block may contain
slope in dB per octave. These
any or all of the following strings. The
parameters specify a band-reject filter
keywords themselves must be in uppercase
applied by the seismograph during data
characters and cannot have embedded
acquisition. Values of 0 for the
spaces. Where keywords are two or more
frequency parameters indicate the filter
words, the words are separated by an
was not implemented.
underscore (decimal ASCII code 95). Where
the argument associated with a keyword is CDP_NUMBER <value>
chosen from a list of specified words, the
The CDP_NUMBER is a decimal integer
arguments themselves cannot have
assigned to a particular CDP gather or
embedded spaces and must be in
stacked trace.
uppercase characters. The keywords must
be arranged in alphabetical order except for CDP_TRACE <value>
the NOTE string, which will be at the end of The CDP_TRACE is a positive decimal
the string list, if it exists at all. The strings integer giving the trace number within
that are likely to be required by application the CDP gather. Each gather starts with
software routines are detected with an trace number one.
asterisk. It is strongly recommended that
these strings exist in all Trace Descriptor CHANNEL_NUMBER <value>
Blocks. The channel number is a positive
ALIAS_FILTER< frequency > < slope > integer less than 32,768 identifying the
receiver group channel of the recording
The ALIAS_FILTER values are decimal instrument associated with the data
integer or floating point numbers (can be corresponding to the Data Block. If the
mixed) expressing the anti-aliasing filter CHANNEL_NUMBER string is used in
3 dB frequency in Hz and slope in dB one Trace Descriptor Block, it must be
per octave. A value of 0 for the used in all Trace Descriptor Blocks in
frequency indicates and anti-aliasing the File. More than one Data Block may
filter was not implemented. be associated with one
AMPLITUDE_RECOVERY <method> CHANNEL_NUMBER if this is
<parameter list> necessary to accommodate such
special circumstances as dynamically
The method can be NONE, AGC,
switched sample rates, time gaps, or
SPHERICAL_DIVERGENCE, or any
other aberrations. All Data Blocks that
appropriate description of the method
are associated with one channel must
used. If AMPLITUDE_RECOVERY is
be arranged such that earlier data
included in the string list, some method
precede later data, and data blocks
must be specified immediately after the
cannot overlap in time.
keyword. The parameter list is the
collection of parameters related to DATUM < value >
method, such as AGC window. The DATUM is a decimal integer or
BAND_REJECT_FILTER < Iowpass freq > floating point number giving the
8 of 20
elevation (understood to be with respect <slope>
to mean sea level) about which the
The DIGITAL_LOW_CUT_FILTER
source and receiver locations (z-values)
values are decimal integer or floating
are specified. The value is given in the
point numbers (can be mixed)
units specified in the "UNITS" string of
expressing the Iow-cut filter 3 dB
the File Descriptor Block.
frequency in Hz and slope in dB per
*DELAY <value> octave of a digital filter applied after data
acquisition or during processing. A value
The value is a floating point number
of 0 for the frequency indicates the filter
expressing the time (in seconds)
was not implemented.
elapsed from the start pulse to recording
the first sample in the Data Block. END_OF_GROUP <value>
DESCALING_FACTOR <value> The END_OF_GROUP is used to flag a
trace (or traces) within the file as the last
The DESCALING_FACTOR is a floating
trace(s) in a user-defined group or sort.
point number used to get the voltage in
A value of 1 indicates that this trace is
millivolts from a sample value according
the last trace in the group; the only other
to the formula: voltage due to one shot =
allowable value is zero.
data point x
DESCALING_FACTOR/STACK FIXED_GAIN <value>
DIGITAL_BAND_REJECT_FILTER < If a fixed-gain recording instrument was
Iowpass freq > < Iowpass slope · < used, this integer value gives the gain in
highpass freq > < highpass slope > dB (including preamp) applied by the
recording instrument to this trace during
The DIGITAL_BAND_REJECT_FILTER
recording.
values are decimal integer or floating
point numbers (can be mixed) HIGH_CUT_FILTER <frequency> <slope>
expressing the Iow-pass 3 dB frequency
The HIGH_CUT_FILTER values are
in Hz and slope in dB per octave,
decimal integer or floating point
followed by the high-pass 3 dB
numbers (can be mixed) expressing the
frequency in Hz and slope in dB per
highcut 3 dB frequency in Hz and slope
octave. These parameters specify a
in dB per octave applied by the
digital band reject filter applied after
seismograph during data acquisition. A
data acquisition or during processing.
value of 0 for the frequency indicates
Values of 0 for the frequency
the filter was not implemented.
parameters indicate the filter was not
implemented. LINE_ID <character string>
DIGITAL_HIGH_CUT_FILTER <frequency> The LINE_ID can be any string of
<slope> printable ASCII characters (decimal
ASCII codes 32 through 126).
The DIGITAL_HIGH_CUT_FILTER
values are decimal integer or floating LOW_CUT_FILTER <frequency> <slope>
point numbers (can be mixed) The LOW_CUT_FILTER values are
expressing the highcut filter 3 dB decimal integer or floating point
frequency in Hz and slope in dB per numbers (can be mixed) expressing the
octave of a digital filter applied after data Iow-cut filter 3 dB frequency in Hz and
acquisition or during processing. A value slope in dB per octave applied by the
of 0 for the frequency indicates the filter seismograph during data acquisition. A
was not implemented. value of 0 for the frequency indicates
DIGITAL_LOW_CUT_FILTER < frequency> the filter was not implemented.
9 of 20
NOTCH_FREQUENCY <value> the downward direction, about the
DATUM defined above.
The NOTCH_FREQUENCY value is a
positive decimal integer or floating point *RECEIVER_LOCATION <x value> [ <y
number expressing the notch-filter value> <z value>]
frequency in Hz. A value of 0 indicates a
This is the location of a receiver or
notch filter was not implemented.
center of the receiver group with respect
POLARITY <value> to the start of line, or any by the user.
The x, y, and z values may be decimal
The only allowed values are 1 and -1,
integers and/or decimal floating point
depending upon whether an upward
numbers, and are to be given in the
ground movement at the phone causes
units specified in the "UNITS" string of
a positive or negative data sample.
the File Descriptor Block. If only one
RAW_RECORD <file name> value is stated, it is understood to be the
The RAW_RECORD gives the file name dimension along the line (i.e., x).
(and extension) of the raw data file from Otherwise all three values must be
which this trace was derived. given, in order to avoid ambiguity with
regard to the meaning of a second value
RECEIVER <type of receiver used> The z value is understood to define the
<number of receivers in group > elevation or depth (e.g., in a borehole),
Receivers could be, for example, with positive values implying the upward
VERTICAL_GEOPHONE, direction and negative values implying
SH_HORIZONTAL_GEOPHONE, the downward direction. This value is
SV_HORIZONTAL_GEOPHONE, understood to be given with respect to
ACCELEROMETER, ANTENNA, or any the DATUM defined above.
appropriate description of the type of RECEIVER_SPECS < manufacturer name
receiver used. If a second parameter is > < model number or frequency >
given, it specifies the number of
receivers per receiver group. This is the name of the manufacturer
and model number and/or frequency of
RECEIVER_GEOMETRY [n] < x value > [ < the receivers used to acquire the data.
y value > < z value > ]
RECEIVER_STATION_NUMBER <value>
This is the location of the nth receiver of
a receiver group with respect to the The RECEIVER_STATION_NUMBER is
specified RECEIVER-LOCATION (see a decimal integer assigned to a
below). The x, y, and z values may be particular receiver location.
decimal integers or decimal floating *SAMPLE_INTERVAL <value>
point numbers, and are to be given in
The value is a floating point number
the units specified in the "UNITS" string
expressing the period between samples
of the File Descriptor Block. If only one
in seconds.
value is stated, it is understood to be the
dimension along the line (i.e., x). SHOT_SEQUENCE_NUMBER < value >
Otherwise, all three values must be
The SHOT_SEQUENCE_NUMBER is a
given, in order to avoid ambiguity with
positive decimal integer that the user
regard to the meaning of a second value
assigns to the original field file to allow a
The z value is understood to define the
user-defined sequential ordering of files
elevation or depth (e.g., in a borehole),
(or traces) during subsequent
with positive values implying the upward
processing runs.
direction, and negative values implying
SKEW <value>
10 of 20
The SKEW value of a channel is a "UNITS" string of the File Descriptor
floating point number expressing the Block. If only one value is stated, it is
time in seconds between the time the understood to be the dimension along
recording instrument starts a sample the line (i.e., x). Otherwise, all three
scan along all the channels, and the values must be given, in order to avoid
time data were actually acquired at this ambiguity with regard to the meaning of
particular channel. a second value. The z value is
understood to define the elevation or
SOURCE < source > < parameter list >
depth (e.g., in a shothole), with positive
Source can be HAMMER, values implying the upward direction
WEIGHT_DROP, GUN, DYNAMITE, and negative values implying the
VIBRATOR, or any appropriate downward direction. This value is
description of the source used. The understood to be defined with respect to
parameter list may specify any further the DATUM defined above.
information about the source; such as
SOURCE_STATION_NUMBER < value >
the size of the hammer or weight drop,
the type of shells fired, size and type of The SOURCE_STATION_NUMBER is a
charge detonated, or the sweep decimal integer assigned to a particular
frequency, etc., of the vibrator. source location.
SOURCE_GEOMETRY [n/N] <x value> [<y STACK <value>
value> <z value>]
This stack-count is a positive integer
This is the location of the nth element of indicating the number of shots which
a source array (consisting of N were summed to obtain this trace.
elements) with respect to the specified
STATIC_CORRECTIONS < source static >
SOURCE_LOCATION (see below). The
< receiver static > <total correction applied>
x, y and z values may be decimal
integers or decimal floating point The 3 values specified after
numbers, and are to be given in the STATIC_CORRECTIONS are floating
units specified in the "UNITS" string of point numbers expressing the time shifts
the File Descriptor Block. If only one (in seconds) that are attributed to the
value is stated, it is understood to be the source and receiver, and the total static
dimension along the line (i.e., x). correction applied to the data in the
Otherwise, all three values must be following Data Block. If no static
given, in order to avoid ambiguity with correction has been applied to the data,
regard to the is understood to define the the third value is zero.
elevation or depth (e.g., in a shothole), TRACE_TYPE <trace type>
with positive values implying the upward
and negative values implying the The trace type is SEISMIC_DATA,
downward direction, about the DATUM DEAD, TEST_DATA, UPHOLE, or
defined above. RADAR_DATA.
SOURCE_LOCATION <x value > [ < Y NOTE < text >
value > < z value >] This string appears as the last string in
This is the location of the source (or the list if it exits at all. The format of this
center of a source array) with respect to string is as described under the NOTE
the start of line, or any fixed point string in section C1 above.
defined by the user. The x, y, and z
values may be decimal integers and/or Acknowledgments
decimal floating point numbers, and are This standard is the result of input from a
to be given in the limits specified in the large number of people representing
11 of 20
instrument manufacturers, software
developers, and a number of interested
users. Although they are too numerous to
name here, their comments and
suggestions have been much appreciated
and have greatly contributed to the final
result.
The contributions of Badru Hyatt from
EG&G Geometries, Sunnyvale, California,
and Ted Norminton from Carleton
University, Ottawa, Ontario, must be
especially recognized. Badru was
responsible for writing the first draft of the
standard, and both Badru and Ted have
been involved in discussions of all the
changes and modifications that have been
made along the way.
References
Barry K. M., Cavers, D. A., and Kneale, C.
W., 1975, Recommended standards for
digital tape formats: Geophysics, 40, 344-
352.
Digital field tape format standard SEG – D:
in Digital Tape Standards, 1980, Soc.
Explor. Geophys. 31-65.
IEEE Standard for binary floating - point
arithmetic: ANSI/IEEE Standard 754-1985,
18 p.
12 of 20
APPENDIX A
DEFINITIONS
Byte
an 8 bit value
if signed this value can range from
−128 … 127
if unsigned this value can range from
0 … 255
Integer
a 16 bit value
if signed this value can range from
−32768 … 32767
if unsigned this value can range from
0 … 65535
Long integer
a 32 bit value
if signed this value can range from
−2147483648 … 2147483647
if unsigned this value can range from
0 … 4294967295
Decimal integer
a base ten integer
e.g., 12, −3, 10, 352, -511, etc.
Decimal floating point number
a base ten floating point number which may
use an "E" to express the number in
scientific notation e.g., 12657, −34.6,
1.345E24, −2.3E6, 5.61E−11, −2.0E−9
13 of 20
The two fixed point formats allowed by this
APPENDIX B standard are specified as described in Barry
et al. (1975). Both formats imply the 2's
complement convention.
SPECIFICATION OF ALLOWABLE
DATA FORMATS
FIG. B-1. Description of one data sample in 16-bit fixed point format (S
= sign bit QD = data bit, HB = high byte, LB = Iow byte (least significant
bits), msb = most significant bit, lsb = least-significant bit). In this case
the msb is the value corresponding to 214, while the Isb is the value
corresponding to 20. Note that the order of the two bytes (i.e., LB
before or after HB) is dependent on the specification of the first two
bytes of the File Descriptor Block.
14 of 20
1. 16-bit fixed point format (data format 32-bit fixed point format numbers are of the
code = 01h) 2’s complement type [i.e., if (a) is a 32 bit
The 16-bit fixed point format uses two fixed point number then (a) + (-a) = 232]. For
successive bytes to record each data example,
sample. Each sample consists of a sign-bit 1 = 0000 0000 0000 0000 0000 0000 0000 0001
S (1 implies negative) and 15 data bits QD. -1 = 1111 1111 1111 1111 1111 1111 1111 1111
with a radix point at the right of the least 1+(-1)=
significant bit. The format is shown 1 0000 0000 0000 0000 0000 0000 0000 0000
schematically in Figure B-1.
The largest available 32-bit fixed-point
16-bit fixed point format numbers are of the number is 2147483647. The smallest
2's complement type [i.e., if (a) is a 16-bit available 32-bit fixed-point number is
fixed point number, then (a) + (- a) = 216]. -2147483648.
For example,
1 (dec) = 0000 0000 0000 0001 Floating point formats
-1 (dec) = 1111 1111 1111 1111 The 20-bit floating-point format allowed by
(1) + (-1) = 1 0000 0000 0000 0000 this standard is based on the Digital field
tape format standards—SEG-D (2 ½ -byte
The largest available 16-bit fixed-point
binary exponent data recording method —
number is 32767 (0111 1111 1111 1111).
demultiplexed). However, in order to be able
The smallest available 16-bit fixed point
to express the most significant bits of a
number is -32768 (1000 0000 0000 0000).
32-bit fixed point number, the data sample
is written as a scaled signed integer rather
2. 32-bit fixed-point format (data format than a signed fraction.
code = 02h) The 32-bit and 64-bit floating point formats
The 32-bit fixed-point format uses four allowed by this standard are specified as
successive bytes to record each data described in IEEE standard for Binary
sample. Each sample consists of a sign bit Floating—Point Arithmetic (ANSI/IEEE Std
S (1 implies negative) and 31 data bits QD, 7541985).
with a radix point at the right of the least
significant bit. The format is shown
schematically in Figure B-2.
15 of 20
FIG. B-3. Description of four successive data samples in 20-bit floating point format (S = sign
bit, C = binary exponent bit QD = data bit, HB = high byte, LB = Iow byte (least significant bits),
msb = most significant bit, Isb = least significant bit). Note that the order of each group of two
bytes (i.e., LB first or HB first) is dependent on the specification of the first two bytes of the File
Descriptor Block.
16 of 20
mantissa can assume values between The fraction represents a normalized (most
-32767 and 32767. Negative zero is invalid significant bit always 1) positive value.
and must be converted to positive zero. Since the most significant bit is always 1 it is
not present in the 23 bits specified in the
Note that in utilizing this data recording
format (the actual fraction is composed of
method, the number of samples per trace
the specified 23 bits preceded by the
must be exactly divisible by 4 in order to
implied 1). The radix point is after the
preserve the data grouping of this method.
implied 1 which is defined as 20. For
example:
4. 32-bit floating point format (data 1 = 0 01111111 00000000000000000000000
format code = 04h) sign exponent fraction
The 32-bit floating-point format uses four
successive bytes to record each data
= + 2(127-127) {00000000000000000000000}
sample. Each sample consists of a sign bit 0
= (+1) x 2
S (1 implies negative), an 8-bit biased
binary exponent of 2, and a 23-bit positive
binary fraction. The format is shown
schematically in Figure B-4. -2= 1 10000000 00000000000000000000000
FIG. B-5. Description of one data sample in 64 bit floating point format
(S = sign bit, C = binary exponent bit, QD = data bit, HB = high byte, LB
= low byte (least significant bits) msb = most significant bit, Isb = least
significant bit). Note that the order of the 8 bytes (i.e., LB first or HB
first) is dependent on the specification of the first two bytes of the File
Descriptor Block.
17 of 20
Exponent Mantissa Meaning
bits (C) bits (QD)
All 0 All 0 Floating
point 0
All 0 Nonzero Underflow
All 1 All 0 Infinity
All 1 Nonzero Not a
number
18 of 20
has been defined in bytes 8 - 10 of the File
APPENDIX C Descriptor Block as the NULL character
(00h), and that the Line Terminator has
been defined in bytes 11 -13 as line feed
EXAMPLES OF STRING FORMAT
(0ah) followed by carriage return (0dh).
SUBBLOCKS
In the examples shown in Figures C-1 and
C-2, it is assumed that the String Terminator
FIG. C-1. Example of a string sub-block that may be part of a File Descriptor Block.
The two bytes immediately preceding a keyword give the offset to the next string.
The two bytes are indicated by the symbol I_I_I, but the offset itself is shown in small
bracketed decimal characters in this example.
19 of 20
FIG. C-2. Example of a string sub-block that may be part of a Trace Descriptor Block. The
two bytes immediately preceding a keyword give the offset to the next string. The two bytes
are indicated by the symbol I_I_I, but the offset itself is shown in small bracketed decimal
characters in this example.
20 of 20