NAME

     ccpstk - a module to stack converted-wave data.


SYNOPSIS

     ccpstk

     Documentation arguments:

     [ -? ] [ -verbose ]

     I/O arguments:

     [ -Ninput_filename ] [ -Ooutput_filename ]

     Earth model arguments:

     -zreflector_depth or -treflector_ts_time

     -GVs/Vp_ratio or -GpikVs/Vp_ratio_pickfile

     [ -vpP_velocity or -VpikP_velocity_pickfile ]

     Binning geometry arguments:

     [ -xsbin_x_start ] [ -ysbin_y_start ]  [  -xebin_x_end  ]  [
     -yebin_y_end      ]     [     -biinline_bin_size     ]     [
     -bccrossline_bin_size ]

     Stacking arguments:

     [ -bins500 ]

     Pick file window arguments:

     [ -irsstart_pick_record ] [ -ireend_pick_record ]

     Synthetic data geometry arguments:

     [ -synthetic ] [ -gigroup_interval ]

     More synthetic data geometry arguments:

     [   -sxosrc_x_origin    ]    [    -syosrc_y_origin    ]    [
     -sxisrc_x_increment    ]    [    -syisrc_y_increment   ]   [
     -rxorec_x_origin    ]     [     -ryorec_y_origin     ]     [
     -rxirec_x_increment ] [ -ryirec_y_increment ]


DESCRIPTION

     ccpstk calculates an  inline  common  conversion  point  bin
     number  for  a reflector at a specified depth or zero-offset
     converted-wave  traveltime.  (With  converted   waves,   the
     reflection/conversion  point  varies  with  depth even for a
     single source receiver pair, so the target reflector must be
     specified.)   Traces going into the same bin are summed, and
     the bins are output with one trace per record.  (Each output
     trace  is  normalized according to the number of traces that
     went into that bin. Bins written out that received no inputs
     will be all zeroes and flagged dead. The output trace inher-
     its its trace header from the input trace that first  landed
     in that bin.)

     ccpstk is designed to be used on a  dataset  that  has  been
     binned  using ccpbin, and then sorted into INCREASING INLINE
     BIN NUMBERS using the standard USP  sorting  utilities,  and
     then  moved  out  using  psnmo.   In  the near future depth-
     varying nonasymptotic binning will be  supported,  in  which
     case different time stretches of one input trace will end up
     contributing to multiple adjacent bins scattered around  the
     bin  assigned  to  the  trace  as a whole by ccpbin.  In the
     current version of the program  individual  traces  are  not
     split,  but  the data still does not need to be rebinned and
     sorted to be binned and stacked for a different target  hor-
     izon  than  the  one chosen at the time ccpbin was run. Thus
     incoming traces will end up in bins somewhere near  the  bin
     assigned by ccpbin, but not in exactly the same place.

     ccpstk handles this by maintaining a moving window of output
     bins  in  memory  as  the input dataset is processed. As new
     traces come in and require the moving window to move forward
     so they can fit into memory, old (presumably completed) bins
     falling off the end are written out  and  the  memory  space
     recycled.  Thus,  the  input only has to be approximately in
     the correct order for ccpstk to work. (If the number of bins
     that  are kept in memory at one time is large enough, ccpstk
     may even be able to bin and stack a line without the  neces-
     sity of it being resorted into bins first.)

     Note ccpstk does not make use of  the  bin  numbers  written
     into  the  trace header by ccpbin. It calculates its own bin
     grid, which may happen to be the same as  the  one  used  by
     ccpbin but doesn't have to be.

  Command line arguments
     Most of the options are exactly the  same  as  corresponding
     ones in ccpbin.

     -?   This option writes out self-doc.

     -verbose
          This option  writes  out  extremely  copious  debugging
          information  into  the  USP log file, and should not be
          used for a large input dataset.


     -N input_file [default: standard input]
          Note that since the input is generally  in  a  ``scram-
          bled''  order,  ccpstk has no options for windowing the
          input data by trace or record number.

     -O output_file [default: standard output]
          Because ccpstk has no way of predicting the  number  of
          output  bins  until  after  all the input has been pro-
          cessed, it tries to rewind the output dataset to update
          the output line header after all the output traces have
          been written out. For this to work, the output must  be
          a disk file and not a pipe or socket.

     [ -bins500 ]
          This option sets the number of output bins that  ccpstk
          will  attempt to hold in memory at a time. If it is too
          small, and ccpstk finds it needs  to  put  an  incoming
          trace  into a bin that has already been written out and
          is no longer available, this number can be increased to
          correct the problem.

     -zreflector_depth -treflector_ts_time
          The reflector of interest can be  specified  either  by
          depth, or by zero-offset converted-wave traveltime. (So
          exactly one of these arguments must be  provided.)   If
          the  depth is specified in terms of time, then a P-wave
          velocity must also be provided.

     -GVs/Vp_ratio -GpikVs/Vp_ratio_pickfile
          Exactly one of these two arguments  must  be  provided.
          For a constant Vs/Vp ratio, use the former.  To specify
          a Vs/Vp ratio pick file, use the  latter.   Since  pick
          files  only  support  integers,  the Vs/Vp ratio in the
          pick file is assumed to be multiplied by 1000.

     -vpP_velocity -VpikP_velocity_pickfile
          If the reflector depth is specified in terms of travel-
          time,  exactly  one  of  these  must  be  specified. To
          specify a  constant  P-velocity,  use  the  former.  To
          specify a velocity pick file, use the latter.

     [ -irsstart_pick_record and -ireend_pick_record ]
          These options can be used to select a subset of records
          from  a pick file to be used for G ratio or P velocity.
          The default is to use a starting record of  1,  and  an
          ending record of NumRec from the line header.

     -xsbin_x_start -ysbin_y_start -xebin_x_end -yebin_y_end
          These arguments specify the orientation of the  binning
          coordinate  system.  The first two arguments give the X
          and Y coordinates of the origin  of  the  binning;  the
          last  two specify the coordinates of the end of the far
          end, thus determining the ``inline'' binning direction.
          The  options  must  be  specified;  they  do  not  have
          defaults.  Note that traces outside the  range  of  the
          specified  line will still be binned, although the cal-
          culated bin numbers may be negative.   It  is  probably
          not  a good idea to have a different line direction for
          ccpstk than was used with ccpbin to sort the data!

     [ -biinline_bin_size ] [ -bccrossline_bin_size ]
          These two arguments specify the  inline  and  crossline
          bin  sizes.   (Currently,  the  crossline bin number is
          ignored, other than being written out into the log file
          if  the  -verbose output option is chosen.)  The inline
          bin size must be specified! (It does not have to be the
          same  as was used with ccpbin, although making it a lot
          smaller than it was before might cause problems.)   The
          default  crossline  bin size is 20 times the inline bin
          size.

     -synthetic -gigroup_interval
          By default, the source and geophone locations for  each
          trace  are  read  from  the trace header values SrPtXC,
          SrPtYC, RcPtXC and RcPtYC.  If these are not set, prob-
          ably  because  the dataset is from a synthetic modeling
          program, you can instead specify -synthetic and a group
          interval  via -gigroup_interval.  The shot and receiver
          X coordinates will then  be  calculated  using  SrcLoc,
          RecInd,  and the group interval. The Y coordinates will
          all be set to zero.

     -sxosrc_x_origin -syosrc_y_origin

     -sxisrc_x_increment -syisrc_y_increment

     -rxorec_x_origin -ryorec_y_origin

     -rxirec_x_increment -ryirec_y_increment
          Some synthetic datasets do not  even  have  SrcLoc  and
          RecInd  set  in  the trace headers. In that case, the X
          and Y start and increment for source and  receiver  can
          be  set  via  these real-valued arguments.  Common shot
          gather geometry is  assumed,  with  all  receivers  for
          every shot.


BUGS

     There probably are some waiting to be found.

     ccpstk does not check that calculated bin numbers  are  rea-
     sonable!  A trace with outrageous geometry information could
     cause ccpstk to calculate a huge bin number, and  output  as
     many  dead  traces  are  required  to  ``space forward'' the
     required distance. There should be some sort of sanity check
     to prevent this from happening.

     ccpstk cannot move its  running  binning  window  backwards,
     only forwards, so the input needs to be in at least approxi-
     mately increasing bin order. Traces whose corresponding bins
     fall  outside the lagging side of the moving bin window will
     be skipped. If this happens, a warning  message  giving  the
     number  of lost input traces will be printed at the termina-
     tion of the program.

     ccpstk appears to work properly in isolation, but we need to
     do  more ``end to end'' testing of the entire converted-wave
     processing system of which ccpstk is a part.

     The program needs to be extended to better  support  crooked
     recording lines. Currently crossline bin information is sim-
     ply ignored.  Some minor changes need to be made to make the
     program more efficient.  This is more of an issue for ccpstk
     than ccpbin, because ccpstk  has  to  calculate  conversion-
     point  coordinates  once per trace (multiple times per trace
     once depth-variant binning is added).

     Support for depth-variant binning needs  to  be  added,  and
     traces  should  be  interpolated between bins instead of put
     entirely in one or another.

     The program requires a large number  of  command-line  argu-
     ments  to  function.  Meaningful error messages will be pro-
     vided if any required ones are missing.


SEE ALSO

     ccpbin(1) psnmo(1)


AUTHOR

      Joe Dellinger


COPYRIGHT

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













Man(1) output converted with man2html