In the mid-1980s, Dr. Oz Yilmaz did research and taught seismic data processing at Western Geophysical, at the time a division of Litton Industries, but originally founded in 1933 by Henry Salvatori. During his teaching, Dr. Yilmaz often used 40 shot gathers that had been collected in seismic surveys around the world. Around the time Dr. Yilmaz wrote his 1987 book, "Seismic Data Processing" for the Society of Exploration Geophysicists (SEG), the company kindly made the 40 shot gathers available to the public.
Click the image below to download a compressed tar file of the 40 Oz shot gathers (16 Mb) in "little endian" format.
For these same shot gathers in "big endian" format, go to the Seismic Unix Wiki.
Click here to download a compressed tar file of images of the 40 Oz shot gathers (2.3 Mb)
To uncompress a .tgz file, use the following command
$ tar -xvzf yourfile.tgz
The dollar sign ($) is the command line prompt, not part of the command.
Big endian and little endian refer to byte order. For one technical description I refer you to a Wikipedia page: Endianness.
The difference between whether your installation of Seismic Unix will use big endian or little endian seismic data is how "XDR" is set in your Makefile.config file.
When you install Seismic Unix, when you run
$ make install
$ make xtinstall
and other "make" commands like these, these commands use the Makefile.config file.
For big endian configuration, use the XDR line as it appears in Makefile.config:
XDRFLAG = -DSUXDR
However, I want a little endian configuration. So, before I ran the "make" commands, I commented out the XDR line by putting the hash (#) sign at the beginning of that line. Then I added the next line that has "XDRFLAG" on the left side of the equal sign and a space on the right side of the equal sign:
#XDRFLAG = -DSUXDR
XDRFLAG =
How important is this? What is the data significance of big endian compared to little endian? At the beginning of the Makefile.config file, there is a comment that describes what it means to use XDR:
"forces all SU data to be big endian
independent of processor architecture"
Some years back, most computers were big endian; for example, computers made by Solaris and the IBM 360. However, personal computers that are x86 and AMD64 architecture are, natively, little endian. For my Seismic Unix installation on my Windows Surface Pro 3 OS, I commented out the XDR line in Makefile.config to let my SU datasets be created in the native little endian format. If you are using an x86 or AMD64 architecture, it is my opinion that you do the same.
As I described above, you can choose whether the seismic data you create on your OS will be big endian or little. By default (if you do not comment out the XDR line in your Makefile.config file), your Linux data architecture will be big endian.
Can you use little endian datasets on a big endian OS? Can you use big endian datasets on a little endian OS?
Yes, you can, but you will have to use suswapbytes on the data file before you can process the file in Seismic Unix.
How will you know you have an "endian" problem? Typically, I find this out when I use surange on a data file. I use surange a lot.
My typed command is below. Under that is the computer response.
$ surange < ozdata.25.su
surange: fgettr.c: on trace #2 number of samples in header (4325) differs from
number for first trace (13320)
That response does not make a lot of sense, but it is the normal Seismic Unix response to a mis-matched byte order data file.
Below, I use suswapbytes to create a new data file, then I use surange.
$ suswapbytes < ozdata.25.su > ozle25.su
$ surange < ozle25.su
96 traces
tracl 1 96 (1 - 96)
tracr 1 96 (1 - 96)
fldr 10025
tracf 1 96 (1 - 96)
cdp 25 120 (25 - 120)
cdpt 1
trid 1
nvs 1
nhs 1
duse 1
scalel 1
scalco 1
counit 1
delrt 2
muts 2
ns 2100
dt 2000
Now I have a successful output from surange. The endianness of my data file has been corrected for my machine by suswapbytes.