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