Go to the list of seismic processes.      Go to SIOSEIS introduction.
    This is the story of how I processed some data from 
Antarctica aboard the R/V Palmer, cruise NBP9702, courtesy
of Prof. Steve Cande (SIO).  There data are 48 channels,
recorded on an OYO DAS-1 recorder in SEG-D, but converted 
to SEG-Y aboard the Palmer using SIOSEIS.

Step 1:  The data were saved as tar files on Exabyte tapes.
Each file is 1.5GB, so there must be that much disk available
to look at any part of the data.  SEG-Y tape file can be read
directly are are much preferred in my book.
    I'm using an SGI computer without an Exabyte drive, so I 
must read the tape across the network (which I couldn't do if it
was a SEG-Y tape).  e.g.
rsh -n arch dd if=/dev/mt/tps0d1nrnsv bs=20b | tar xvBfb - 20
which gave me stdout:
x nbp9702tape39.segy, 1595907600 bytes, 3117008 blocks
    There were two of these 1.5GB files on each tar tape and both files
wouldn't fit on the disk at the same time, so I either had to specify
the filename on the tar command or just let the disk fill up and then
position the tape with the mt command to get the second file once
the first file was deleted from the disk.

    I then inventoried the data by using (and keeping) a list
of shots within each file.  e.g.
lsd nbp9702tape37.segy 48 10
         1     1     0     0  1      0     0   4096  2000 1997  67 10  11   4
         2     1     0     0  1      0     0   4096  2000 1997  67 10  11  14
         3     1     0     0  1      0     0   4096  2000 1997  67 10  11  29
         4     1     0     0  1      0     0   4096  2000 1997  67 10  11  44
         5     1     0     0  1      0     0   4096  2000 1997  67 10  11  59
         6     1     0     0  1      0     0   4096  2000 1997  67 10  12  14
         7     1     0     0  1      0     0   4096  2000 1997  67 10  12  29
         8     1     0     0  1      0     0   4096  2000 1997  67 10  12  44
         9     1     0     0  1      0     0   4096  2000 1997  67 10  12  59
        10     1     0     0  1      0     0   4096  2000 1997  67 10  13  14

Step 2:  Look at the first shot:
1) Determine if the channel numbers are really backwards.
2) See what traces are bad.

The log said channels 1, 34, 42 and 47 were dead and that
channels 6, 9, 14, 17, 18, 23 were noisy and channels 
31 and 48 were "wimpy".

SIOSEIS plot uses the first trace to compute a scaling factor
and the first trace was nonzero (live but noisy).  I had to
kill trace 1 by weighting it to zero before sioseis would make
a decent plot.

This script is slightly different from the one used in the
other MCS example in that the plot parameters create a large

I was running sioseis on a machine across the net, so I had
to allow that machine to display plots on my machine.  On my
machine, I typed   xhost +
and on the other machine I had to tell it where to display the
results by using the command:
setenv DISPLAY sioseis.ucsd.edu:0.0
  • script #1 - Create a plot of the first shot
  • plot #1 - plot of shot 1.
    Notice that channel 21 is funny.  It looks like the polarity is reversed.
    Step 3: Use process weight kill the "dead" traces.  I used nmo so that
    it's easier to track an "event".  Polarity inversions are much easier
    to see if the first break is lined up.  I used the same scalar on each
    plot so that any gross change in shot amplitudes would be obvious.
    The trace 21 reverse polarity was not on any of the shots on tape 39.
  • script #2 - The script to weight, filter and plot the first shot.
  • plot #2 - The plot of the weighted, filtered shot.
    Step 4:  Look at a single channel plot of the first 2000
    shots using channel 2.  Note that the plot is annotated by GMT
    and I used process GAINS rather than AGC.
  • script #3
  • Plot #3 - Plot of trace 2 of the first two files.
    Step 5:  Sort out the geometry/navigation.  ASA provided a smoothed
    navigation file.  The onboard GPS was a Y-code (military) receiver, so
    the navigation is probably pretty good.  The SIOSEIS geometry option
    type 6 uses a navigation file to locate each shot based on the GMT
    time in the SEG-Y trace header and the GMT in the navigation file.
    I have to assume that the GPS time was used by the OYO seismic recorder.
    I wrote a PERL script to convert the Palmer navigation file to a SIOSEIS
    navigation file.
  • PERL script
  • UTIG plot of Y-code vs CA-code vs CA-code differential
  • Geometry check (printout) of three shots.
    Step 6:  Examine the frequency spectrum to see if the data can be
    decimated.  This required a rewrite of the Matlab progarm rdsegy.m
    used in another example because the machine being used had Matlab5.1
    and rdsegy.m didn't work.
  • SIOSEIS & Matlab scripts for fft plot.
  • rdsegy.m for Matlab5.1
  • frequency plot of raw, filtered and decimated shot 331 tr 25.
    Step 7:  Read all the data to disk, file at a time, decimate the date,
    inventory each decimated file, plot the "short" trace in groups of
    2000 shots, and finally store the decimated file on the IGPP mass store
    (e.g. rcp tape40 arch:/archive/mcs/1997/nbp9702).
  • script to filter and decimate
    Step 8:  Determine what data should be stacked from the "short" trace
    sections made in step 7.  Gather the data into rps.  Since I was on
    disk space, I decided to throw out the "bad" traces.  Process weight
    sets the SEG-Y dead trace flag when a weight of zero is used and
    process gather drops dead traces from the gather.  I also decide to
    flip the reverse polarity trace at the same time so I wouldn't have
    to worry about it later.
  • script to weight and sort by rp.
    *******    CAUTION    *********
    SIOSEIS creates temporary files that can be destroyed by running
    multiple SIOSEIS jobs in the same directory simultaneously.
    Do not run multiple job simultaneously in the working directory.
    Step 9:  Velocity analysis.  We need to determine which velocity
    analysis method is best for this dataset.  The first one is semblance
    contoured by Matlab.  After modifying the vpick script to work on
    only three seconds of data and not to filter the data, I ran it with
    just one rp just to make sure it was working correctly.
  • vpick script
  • sioseis plot of rp 1000 produced during vpick
  • script to extract every 100th shot.
  • script to plot the shots one at a time.
    This analysis showed that the bad traces I picked earlier from tape 37
    are not applicable to tape 39.  Trace 21 is not reversed either.  Change
    the weights and regather.
  • new script to weight and sort by rp.
    Looking at stdout (standard output is the printed output), there's an
    error message:
      SEG-Y Shot time error on shot  2930 time  68   1   17   33   242.0000
    The lsd done earlier show 4 minutes of data missing.
       While picking the semblance contours, I could see hints of some high
    velocities for basement.  I may want to repick, or try a different
    velocity analysis technique.
       The vpick output filename was:   gathers.day068-0000z.vpick
    and was the cut and pasted into plot script.
    Step 10:  Check the nmo velocity picks by applying the velocity
    functions to rps they were picked from.  Note how the same script is
    used to plot every 100th rp, except this has nmo agc added in.  I added
    agc so that I could see any events.  The velocities had to be edited
    because I hit the mouse twice in the same spot once, but the sioseis
    edit caught the error.
  • Check nmo script
    Step 11:  Muting the NMO strect can be done by the amount of moveout
    or by specifying the mute pattern.  Specifying the mute pattern 
    becomes difficult when the water bottom is constantly changing, so I
    decide to try the automatic water bottom picker (process wbt), however
    this becomes hard in noisey data.  I used the process prout to print
    the amplitudes of rp 1000 tr 1 to see what the amplitudes were.  The
    water bottom is very strong in comparison to the data immediately
    after it, thus the traditional long window approach doesn't work.
  • Dump the amplitude values
  • Short/long automatic water bottom picker
         The variation of picks is troubling, so I need to try some other
    method.  The dump of the amplitudes shows that the water bottom 
    reflection has an amplitude consistently above .1 while the background
    is less than .1.  
  • Threshold automatic water bottom picker.
          Several traces were picked early, including rp 1011 trace 1.
  • Dump rp 1011 trace 1 amplitude values
  • Despike then threshold automatic water bottom picker.
    Step 12:  Determine a good mute pattern by plotting some moved out
    data with an agc, so we can see all events clearly on a single shot.
    Annotate every trace by it's range.
  • Plot of a moved out shot
  • Plot of a muted shot
  • Script that generated the plot.
    Step 13:  Check all the prestack parameters on every 100th rp.
    There are some minor things that could be done, but I'm anxious to see
    the stack.  One rp didn't have the water bottom picked correctly. 
    There was a trace with lots of low frequency (streamer strum?).  A
    couple seemed to be have basement undercorrected.
    chkstk gathers.day068-0000z 1000 100 2900
  • SIOSEIS/CSH script to check prestack parameters.
    Step 14:  Stack the data and plot it so we can see if we're making
    any progress.
  • SIOSEIS script to stack the data.
  • SIOSEIS script to gain and plot the stack.
  • plot of stack.
    Step 15:  Looking good!  The next thing to try is to get rid of the
    noise; the 10Hz stream strum probably can be filtered out by using
    a higher pass on the low end (we did a 10x80 filter during decimation).
    We also need to get the plot of the stack data at the same horizontal
    scale as the short trace plot (40 traces per inch) because the sort
    by rp created 4 reflection points for each shot.
         In order to change the horizontal scale of the plot, I had to
    change the plotter specified by parameter nibs.  The early plots
    used nibs 75 or 75 dots per inch so that the plot file was small.
    My favorite 300 dot plotter is the HP DesignJet, nibs 2848.
  • New plot scale and new filter.
  • Plot with new filter and plot scales.
    Step 16:  Try a "median stack", which uses the median value of all
    traces at each time sample.  I guess this data is too noisy, because
    the regular stack with "despiking" is better.  The problem with
    noise is that migration will make "smiles" out of each spike in
    the water column.
  • Script to do median "stack".
  • Plot with new filter and plot scales.
    Step 17:  Pick velocities every 100 rps for data from day 068 0000z
    to 1500z.  I made a separate disk file for groups of 50 rps
    (e.g. rps 5000 to 10000 with an increment of 100) to keep the disk
    access time down.  Picking 50 velocities took me 30-45 minutes, so
    I wanted a break about then anyway.  Notice that I filtered the data
    with a narrower bandpass filter during the extraction process.
  • Script to extract every 100th rp.
    Step 18:  Stack the data from 0000z to 1530z, but display it in 2 hour
    chunks.  The new horizontal scale is 300 dots per inch because the
    plotter is 300 dots per inch.  Anything higher than 300 dpi will cause
    some data to be lost.
  • Script to plot 2 hours of data.
    Step 19:  There's a 7 minute data gap when the tape was changed.
    SIOSEIS created dead traces for the gap.  Also, the automatic water 
    bottom detection killed some data and often picks something before 
    the bottom and then mute doesn't remove small spikes in the water 
    column that will create "smiles" when migrated.
        So, the automatic water bottom picker can not be used on this
    dataset and the water bottom time will have to be picked by some
    other method (I did it by hand from the 8.5x11 single channel plots
    at home while watching the Padres win another game.  Process wbt
    accepts the water bottom time in pairs of GMT vs two-way times and
    does a linear interpolation between specified points).
    Step 20:  Migrate the stacked data with FDMIGR using the velocities
    from NMO.  The normal version of SIOSEIS allows only 4096 traces
    to be migrated in a job, whereas the BIG version allows 16384.  The
    large executable is called sioseis.BIG and requires more memory and/or
    more swap space on the host computer.  Overlap migration sections with
    50 rps so that the seismic energy can be placed properly and "edge"
    effects are minimized.
        The FDMIGR will have to be run in two jobs and then concatenated
    afterwards.  Another bookkeeping consideration is that the NMO
    velocities are associated with RP numbers and these must be the same
    as the stacked data being migrated (so don't renumber the stacked
    data).  When processing several lines at the same time, make sure the
    various file names are very clear to identify.  I put the line number
    in the name.  For the multiple FDMIGR jobs, I appended a letter (a, b,
    c, ...) to the line number.  Script files had the word script appended.
    e.g. stack.line6a.script reads part of the gather file
    and writes data file stack.line6a.  fdm.line6b.script reads data file
    stack.line6b and writes fdm.line6b
  • Script to migrate line 5 in chunks.
  • Script to plot 1.5 hours of line 5.
  • Plot of some unusual geology! (~160KB)
    Step 21:  Assemble the multiple migrated files of the same line into
    a single file so that they are continuous. Drop 25 traces from the end
    and beginning of the migrated files so that the sections are continuous.
    Renumber the file so that the rp numbers are montonically increasing by
    1 so that PLOT can always plot the north or east on the right. (The 
    first trace plotted is always on the right unless plot parameter dir
    is used, but then some of the annotation is lost and the the color
    scheme is not identical).
  • Script to combine files and renumber.
  • Script to reverse the trace order.
    Step 22:  Plot the migrated data for the HP DesignJet.  Use program 
    SIOPLT on a few small test plots to make sure the plot parameters are
    correct.  I created a file, siopltrc,  in the work directory with some
    SIOPLT parameters:
    more siopltrc
    width 1500
    height 1000
         When plotting the "final" version, I saved the SIO rasterfiles so
    that they could be combined on a single sheet of paper (each line is 
    around 8 feet long).
  • Script to generate a SIO rasterfile.
    Step 23:  Convert three SIO rasterfiles to a single HP-RTL file and
    send to the HP plotter.
  • Script to convert SIOSEIS rasterfiles to HP.
    Step 24:  Create a seismic plot with the magnetics above the seismics.
    The plot must be black and white and should be small enough to publish.
        The most compressed horizontal scale is to make each plotter line
    contain a seismc trace.  The HP DesignJet has 300 dots per inch, so
    the most that can be done is 300 traces per inch (trpin 300).  I 
    decimated the data by retaining every fourth trace.
    The start time is set to zero (stime 0) so that the magnetics can
    be centered around the 1 second time line.  The three migrated lines
    are files fdm.line5x4,   fdm.line6.1x4,   fdm.line6.2x4.
    The three SIOSEIS rasterfiles are: siofil5x4, siofil6.1x4, siofil6.2x4
  • Script to decimate the seismic line.
  • Script to generate the black and white plot.
        Two of the three lines are stored in reverse order so the east end
    of the seismic line is the first trace to be plotted.  This creates a
    problem when associating the magnetics with the seismics since the
    magnetics are ordered with time increasing.  e.g.  magnetics:
    1997     47      0       1       0        -116.0
    1997     47      0       2       0        -113.0
    1997     47      0       3       0        -111.0
    1997     47      0       4       0        -116.0
    1997     47      0       5       0        -118.0
    1997     47      0       6       0        -109.0
        The magnetics are all in one large file, so I made a smaller file
    corresponding to the times of each seismic file. The three maggie 
    files are: maggie.line5, maggie.line6.1, maggie.line6.2
         I also made a listing file for each SEG-Y migrated file.
    The three lsd file are: lsd.line5x4,  lsd.line6.1x4,  lsd.line6.2x4
        Program overlay plots "picks" relative to the first trace.  Each
    successive "pick" is located by the number of traces away from the
    first trace.  Overlay uses trpin (traces per inch) and the plotter
    resolution, dots per inch, to compute where the pick is by plotter
    lines.  I wrote two PERL scripts to merge the magnetics file and
    the seismic listing file to create a file with the parameters for
    program overlay.
  • Perl script to merge reverse ordered seismics with magnetics.
  • Perl script to merge seismics with magnetics.
  • e.g. merge.mag maggie.line5 lsd.line5 > mag.line5
    created file mag.line5, which looks like:
    fno 5018 picks 1.9970000000000001 end 
    fno 5036 picks 2.0009999999999999 end 
    fno 5054 picks 1.998 end 
    fno 5073 picks 1.9990000000000001 end 
    fno 5091 picks 2 end 
    fno 5108 picks 2.004 end 
    fno 5126 picks 2.008 end 
    fno 5144 picks 2.0059999999999998 end 
    fno 5162 picks 2.0110000000000001 end 
    Then I ran program overlay.  e.g.
    overlay -p siofil5 5001 black 8 < mag.line5
    The three merged plot files are: siofil5, siofil6.1,  siofil6.2
    I then put the three SIOSEIS plot files into a single plotter file.
    Note that I put a white space of 1.5 inches between plots.  e.g.
    ipath siofil5 siofil6.1 siofil6.2 margin 1.0 opath hpfil slpath phead end
    Then off to the plotter:  lpr -Pgoya hpfil
    Go to the list of seismic processes.      Go to SIOSEIS introduction.