NAME

     at3d  - computes an arbitrary traverse through a stacked 3-D
     volume  of  data.   Traverse  description may be through XSD
     pickfile or command line vertex (x,y) or (li,di) pairs.


SYNOPSIS

     at3d [ -Nntap ] [ -Ootap ] [ -Ppicks ] [ -x1ix1 ] [ -y1iy1 ]
     [ -x2ix2 ]  [ -y2iy2 ]  [ -x3ix3 ] [ -y3iy3 ] [ -x4ix4 ] [ -
     y4iy4 ] [ -dxdx ] [ -dydy ] [ -minliminli ]  [ -maxlimaxli ]
     [ -mindimindi ]     [ -maxdimaxdi ]    [ -liiincrli ]    [ -
     diiincrdi ] [ -cdpintcdpint ] [ -noutnout ] [ -DI ] [ -avg ]
     [ -xixi ] [ -yiyi ] [ -liilii ] [ -diidii ] [ -V ] [ -? ]


DESCRIPTION

     at3d constructs an arbitrary traverse through a 3-D  stacked
     seismic  data  volume.   The linear segments of the traverse
     may come from a standard XSD pickfile or be placed as vertex
     control  on  the  command  line.   The  XSD  pickfile may be
     obtained by picking the traverse on a time-slice  contructed
     from the 3D stacked data volume of interest [  see qdslice].
     The output cdp trace interval is user defined.  Each  output
     trace  is  a  weighted average of the four nearest traces in
     the 3-D volume consequently the output of at3d often has  an
     improved  S/N ratio over the raw trace input.  The character
     and amplitudes of the data are  preserved  allowing  one  to
     construct  a traverse that is both seamless and robust. at3d
     gets both its data and  its  parameters  from  command  line
     arguments.   These  arguments specify the input, output, the
     XSD pickfile, the 3D  volume  map  corner  coordinates,  the
     minimum  and maximum LI and DI, the LI and DI increment, the
     x and y grid sampling increments, the number of trace  seeks
     outside  the area allowed, the DI ordering flag, the average
     weighting flag,  the traverse vertices in  either  (x,y)  or
     (li,di) nomenclature and verbose printout, if desired.

  Command line arguments
     -Nntap   [NO DEFAULT: PIPE ON stdin NOT ALLOWED]
          Enter the full path name of  the  file  containing  the
          input data set.

     -Ootap   [default = stdout]
          Enter the full path name for the output file to receive
          the output data. Piping of output is allowed.

     -Pptap   [optional]
          Enter the full path name for the XSD pickfile  contain-
          ing  the  arbitrary  traverse  turning points digitized
          from a time slice derived from the input dataset  using
          qdslice   or   ttds3d  .  If  not  present  the routine
          expects to see the traverse definition on  the  command
          line. [see  -x -y -li -di  below]

     -x1ix1  [default = 0]
          Enter the x-coord, grid-corner 1 (where DphInd = 1  and
          LinInd = 1)

     -y1iy1   [default = 0]
          Enter the y-coord, grid-corner 1 (where DphInd = 1  and
          LinInd = 1)

     -x2ix2   [default = derive from data]
          Enter the x-coord, grid-corner 2 (clockwise from corner
          1)

     -y2iy2   [default = derive from data]
          Enter the y-coord, grid-corner 2 (clockwise from corner
          1)

     -x3ix3  [default = derive from data]
          Enter the x-coord, grid-corner 3 (clockwise from corner
          2)

     -y3iy3  [default = derive from data]
          Enter the y-coord, grid-corner 3 (clockwise from corner
          2)

     -x4ix4  [derive from data]
          Enter the x-coord, grid-corner 4 (clockwise from corner
          3)

     -y4iy4  [derive from data]
          Enter the y-coord, grid-corner 4 (clockwise from corner
          3)

     -dxdx  [default = 1.0]
          Enter the cell size  in  the  x-direction  (time  slice
          trace spacing)

     -dydy  [default = 1.0]
          Enter the cell size in the y-direction (time slice sam-
          ple spacing)

     -minliminli  [default = MnLnIn]
          Enter the minimum line index.  If not present  and  the
          line  header  entries defaulted are not being used then
          the default will become 1.

     -maxlimaxli   [default = MxLnIn]
          Enter the maximum line index. If not  present  and  the
          line  header  entries defaulted are not being used then
          the default will be then number of records or if -DI is
          present  on the command line, the number of traces from
          the lineheader of the input dataset.

     -mindimindi  [default = MnDpIn]
          Enter the minimum depth index   If not present and  the
          line  header  entries defaulted are not being used then
          the default will become 1.

     -maxdimaxdi  [default = MxDpIn]
          Enter the maximum depth index. If not present  and  the
          line  header  entries defaulted are not being used then
          the default will be then number of traces or if -DI  is
          present on the command line, the number of records from
          the lineheader of the input dataset.

     -liiincrli  [default = 1]
          Enter the Line Index Increment.

     -diiincrdi  [default = 1]
          Enter the Depth Index Increment.

     -cdpintcdpint  [default = 12.5]
          Enter the output CMP interval.

     -noutnout  [default = 60]
          Enter the number of trace seeks from outside  the  area
          allowed.   If  you are running a traverse very close to
          an edge of your data volume the nearest neighbor  algo-
          rithm may request traces from bins located outside your
          volume.  In most legal cases very few of  these  occur.
          If you have messed up your corner coordinates [assuming
          that you are using them] you may find that most or  all
          of  the  requested traces lie outside the volume.  This
          parameter is here to allow the program to abort  if  it
          looks  like  something  is wrong.  If you find that you
          cannot get your edge traverse then make this entry very
          large.  Of course at that point we assume that you know
          what you are doing.

     -DI  [default = not used]
          Enter the command line parameter -DI if  your  data  is
          organized  in  increasing depth index.  This is true if
          your LinInd entries increase within a record  and  your
          DphInd  entries increment across record boundaries.  If
          this flag is set then the defaults for maxli and  maxdi
          will  correspond  with  the  number  of  traces/rec and
          number of records in the  input  dataset  respectively.
          If  this  flag  is  not set then it is assumed that the
          LinInd index increments across  record  boundaries  and
          the DphInd index increments within a record.

     -avg  [default = not used]
          Enter the command line parameter  -avg  to  defeat  the
          distance  weighting  scheme  used within at3d to weight
          the nearest neighbor traces prior to summation for each
          output  trace.   If  this  flag  is  not present then a
          cosine taper based on distance from the desired  output
          position is used to weight the traces.  You may want to
          activate this option if you  see  an  overabundance  of
          jitter on the output traverse.

     -xxcoord  [default = not used]
          Enter the x coordinate in  feet  or  meters.   You  may
          enter as many x vertices as you desire.

     -yycoord  [default = not used]
          Enter the y coordinate in  feet  or  meters.   You  may
          enter  as  many  y vertices as you desire.  They should
          appear on the command line in the same order  as  their
          associated  x coordinate.  If not you will have defined
          a different traverse than intended.

     -lilinum  [default = not used]
          Enter the li number for each vertex.  You may enter  as
          many li vertices as you desire.

     -didinum  [default = not used]
          Enter the di number for each vertex.  You may enter  as
          many  di vertices as you desire.  They should appear on
          the command line in the same order as their  associated
          li  entry.   If  not  you will have defined a different
          traverse than intended.

     -V   Verbose printout.

     -? or -h or -help
          Enter the command line argument '-?'  or  -h  or  -help
          to  get  online help.  The program terminates after the
          help screen is printed.


DISCUSSION

     This program replaces the old SIS at3d program.  There is no
     longer  any facility for handling  AT3D cards.  All traverse
     control and parallelogram description now  come  in  on  the
     command line.  The fastest way to define a traverse for this
     routine is to generate from your 3D stacked volume a  single
     time slice using for example:

      qdslice -Ndatain -Oslice -ss200 -es200 -is1

     Load this time slice to XSD and  digitize  the  traverse  of
     interest.

     Note that XSD  in default load mode [that is if you have not
     asked for plot reverse or upside down etc]  will display the
     (1,1) corner in the upper left hand  of  the  display  [i.e.
     sequential  trace  =  1, sequential sample = 1] which should
     [unless you have been playing games in USP] corresond to the
     bin  where  LinInd  =  minli and DphInd = mindi.  If you are
     going to enter corner information  x1, y1, x2,  y2  etc   on
     the  command  line then realize that the above corner is the
     (x1,y1) corner.  Corners 2 through 4 proceed clockwise  from
     that location.

     Note also that you may pick your  traverse  in  XSD  from  a
     display  using   plot  reverse  or  plot upside down and the
     pickfile output will still  be  referenced  to  the  correct
     sequential  trace  and  sample  information.  If however you
     have used  transpose when building your XSD display then all
     bets  are off on what will happen.  At this writing [Nov 22,
     1996] the XSD routine seems to  be  having  trouble  mapping
     picks  onto  the  transposed display option.  In other words
     don't use it if you are trying to digitize  a  traverse  for
     input to this routine.  You can convince yourself of this by
     ploting a  time  slice  in  default  display  mode,  pick  a
     traverse,  now  plot the same time slice using plot reverse,
     then using plot upside down and watch how the  picks  follow
     along.   Now  try  the  plot transpose option as observe the
     results. [See what I mean].

     You may also define a traverse by supplying vertex  informa-
     tion  on  the command line as either (x,y) or (li,di) pairs.
     If you use the (x,y) option  and  are  defining  the  corner
     coordinates  as  well  be sure to enter the corners prior to
     the vertices.  If you don't and you have an  entry  such  as
     -x23.5  -y2359.3   you  will  get into trouble.  The routine
     looks for the corners first and will see the  -x123.5 as -x1
     23.5  and  the   -y2359.3   as  -y2  359.3  which will cause
     erroneous  corner  definition  and  also  result  in  points
     dropped from your traverse.

     If you choose not to enter corner coordinates on the command
     line  they  will  be  calculated for you assuming an (x1,y1)
     position of (0,0) and using  the  grid  spacing  information
     supplied on the command line to calculate the rest.

     If you choose not to enter  -minli -maxli -mindi -maxdi   on
     the command line, the input line header will be examined for
     the entries  MnLnIn, MxLnIn, MnDpIn, MxDpIn  which if  found
     will  be  used  in their stead.  If these entries are either
     not used or all equal [i.e. all set to  zero]  then  minimum
     entries will be set to unity [minli=1, mindi=1] and the max-
     imum entries will be set as a function of the -DI  flag  [if
     no -DI then maxli=NumRec and maxdi=NumTrc, if -DI is present
     then maxli = NumTrc and maxdi = NumRec].


     The x direction is along traces on your time slice while the
     y   direction   is  along  samples.   This  may  cause  some
     confusion if your dataset has been turned to the point  that
     your  field  x  coordinates look like y coordinates to at3d.
     If this becomes a problem for you give me a call and I  will
     see  what I can do about putting in a command line option to
     identify which corner of the time slice to assign as  corner
     1.   I  almost  did  this  during this rewrite but it really
     looked like overkill to me and I had a  lot  of  other  more
     pressing  concerns  on my to-do list.  The dx and dy are the
     bin dimensions used to construct the stacked  volume.   This
     information  is  used  to  relate the cdp interval requested
     with the stacked grid of data.

     If you notice a lot of jitter in your  output  traverse  you
     can  try using the  -avg option which will shut off the dis-
     tance weighting option used to weight the 4 nearest neighbor
     traces  prior  to stacking for each output trace.  Sometimes
     if you have a lot of dip combined with  pathological  ampli-
     tude distributions you may need to just go to a simple aver-
     age to stop the jitter.  If it persists let  me  know  as  I
     wouldn't  mind experimenting a little more with this part of
     the program.


BUGS

     If you are entering both  corner  coordinates  and  traverse
     vertices  in  (x.y)  pairs you must enter the corner coordi-
     nates first.  If you do not bad things can happen [see  dis-
     cussion above].


AUTHOR

      - original [Murphy, Wagner etal]
      - complete rewrite [Garossino 1995]
      - P.G.A.  Garossino  [November  1996,  pgarossino@amoco.com
     SOCON 422-3932]


COPYRIGHT

     copyright 2001, Amoco Production Company
               All Rights Reserved
          an affiliate of BP America Inc.















Man(1) output converted with man2html