NAME
phzcor - compute and apply surface consistent phase correc-
tions on CDP data
SYNOPSIS
phzcor [ -Nntap ] [ -Omtap ] [ -Totap ] [ -Stnam ] [
-tstrtstr ] [ -tstptstp ] [ -dspdamp1 ] [ -drpdamp2 ] [
-lflf ] [ -pwprew ] [ -msmshft ] [ -isedised ] [ -nitnit ] [
-restart ] [ -V ] [ -? ]
DESCRIPTION
phzcor computes and applies a set of surface consistent
phase rotation filters for each shot and receiver point.
The process in entirely amplitude preserving; only the phase
is affected. The aim is to provide corrections for source
and receiver induced phase distortions along a line. The aim
is not to do a static correction.. Rather the goal is to
try to take into account the effect of both source and
receiver coupling on the wavelet phase.
The input data must be in the CDP domain and it is assumed
an initial pass of statics has been already done and that
the "solution" is close. If this is not the case than
phzcor will quickly get "lost" and its solution will
diverge. If the data are contaminated with coherent noise
it is a very good idea to try to attenuate this as much as
possible - actually this is also pretty much vital for the
prior statics step. If the data are too rich in low fre-
quencies sometime a dafd-type procedure (true amplitude of
course) can really make a difference:
timfreq -Nindata | ttothen -exp1 | freqtim | phzcor ...
where a linear frequency boost has been applied to the data
going into phzcor. The above scheme is a perfectly general
way of doing true amplitude frequency boosting.
Plan on running a good pickusp/scorusp before hand. Any
elevation statics should also be applied. After a pass of
phzcor a modified rerun of pickusp/scorusp should be con-
sidered as those programs should work better if the phase
distortions have been removed. The same hold true for velo-
city analysis.
phzcor operates on a set of traces sorted to CMP gathers.
Phase rotations are computed by first taking crosscorrela-
tions between traces in common shot and receiver gathers and
the corresponding stack traces from a test stack (reference
trace), and the autocorrelation of the reference trace.
Shaping filters are then computed which will shape the
crosscorrelations into the autocorrelations for each trace
in the gather. An average shaping filter is then computed
and applied to each shot and receiver gather. The user must
specify the time window in which the test stack is made.
The algorithm is fully nonlinear in the sense that traces in
the common shot or receiver gather are phase corrected using
each newly computed phase correction filters, and the test
stack is then updated using these phase corrected traces.
An L2 (mean) back projection algorithm is used to find the
updates for each of the phase correction filters. The L2
norm is used since experience shows that the filter elements
themselves can have considerable scatter. The L2 norm is
robust since it smooths trace-to-trace variations in the
filter values. The model parameters can be constrained to
give a spatially smooth solution. A penalty function (which
is the second spatial derivative of the shot or receiver
filter values) is used to impose this smoothness constraint.
A user adjustable trade-off parameter is used to weight the
affects of model smoothness versus minimization of the least
absolute deviation (minimum L2 norm) of the shaping filter
values. In order to prevent serial correlation of errors in
the filter estimates (which will cause the solution to
become stuck at "local minimum") the order in which shot and
receiver phase shifts are estimated is chosen at random.
One iteration of the algorithm is defined as operating on
each shot and receiver point one time.
The selection of the time window in which the test stack is
made can have a strong influence on the outcome of the cal-
culation. One should be careful to pick a time window with
the best data quality, both in the stack and prestack. The
penalty for using a larger window (which will average the
crosscorrelation over more samples and, if data quality is
adequate, will give more reliable solutions) is slightly
longer run time. The test stack time window will also be
used as a window to normalize the RMS amplitude of the input
traces.
The use of the spatial smoothing constraint requires the
specification of two tradeoff parameters. These parameters
specify the relative amount of weight that is given to the
minimum absolute deviations of the maximum phase shifts
versus the smoothness of either the shot point or receiver
point phase corrections. The parameters specify the fraction
of the second derivative that is subtracted from the phase
shift computed from the auto/crosscorrelations. If the ini-
tial phase shift estimates are all zero (which they are, see
next paragraph) then the following conditions hold: 1) if
the parameter is set to zero spatial smoothness is neglected
(This might be useful if shot or receiver points were quite
far apart, so that it is not reasonable to assume that the
phase shifts at neighboring points are correlated), 2) if
the parameters are set to 0.5 the weights are equal and 3)
if the parameters are set to 1.0 the estimated phase shift
will be zero (The smoothness is at a maximum). In general,
smoothing parameters should be between 0.0 and 0.5.
An implicit assumption in the algorithm used is that the
average phase shift is zero (as is the initial phase shift).
Therefore, one should apply any terrain statics or redatum-
ming corrections before using phzcor.
All phase correction estimation algorithms are susceptible
to velocity analysis problems. If the reflection events have
not been properly flattened the phase corrections computed
will be biased. If a velocity analysis problem is suspected,
it would be best to run this program for a few iterations
(say 5) and then repeat the velocity analysis and moveout
correction operations. Using a test stack time window at a
deeper level may help with velocity problems, since moveout
generally decreases with depth.
phzcor prints the stack semblance at the start of the pro-
cess and at each iteration, as well as the phase correction
filter values computed for each shot and receiver point to
printout file. This diagnostic information is very important
in assessing the performance of phzcor. The affects of
changing program parameters can be objectively judged by
noting the change in the stack semblence at the end of the
processing. A positive change in semblance indicates that
the processing was more successfull. If semblance has
remained close to constant for the last several iterations
of the algorithm this indicates convergence. If convergence
does not appear to have been achived, run phzcor again
specifying more iterations. Since the mapping from phase
shifts to stack power is quite nonlinear it is normal that
semblance may decrease at some iterations. If however, sem-
blance decreases throughout the entire process this indi-
cates that phzcor has failed entirely. There are generaly
two reasons for such a failure. First, the data may be too
noisey. Additional processing to remove coherent noise may
help. Second, the phase shifts along the line may be too
large for phzcor. In this case applying elevation statics
and/or statics derived by standard A means, such as refrac-
tion statics, may help. In either case, changing the time
window of the test stack or increasing the spatial smooth-
ness parameters or increasing the length of the shaping
filters may help. An examination of the shot and receiver
phase corrections may help to diagnose these problems. If
the problem is caused by noise, the shot or receiver phases
may appear to be fairly random spatially. High noise levels
in the data be require larger prewhitening values than the
default. If the problem is caused by very large phase
corrections, the shot and receiver phase shifts may appear
to have spatial discontinuities in them where the phase
changes abruptly. These discontinuities are known as cycle
skips. Note that even if there is not a problem with the
estimated phase corrections, some discontinuities may appear
in the phase corrections.
This program performs complex bookkeeping operations so that
common shot and receiver gathers can be extracted from the
CMP gather file. Because of this bookkeeping, piping out of
this program may lead to bizarre and unpredicatable
behavior. Further, if you do not want to work on a whole
line at once you should use editt to select the records and
traces to be used before the sort table is made with
presort. Operating on a full line should give a better solu-
tion since the number of traces at each shot and receiver
point will be the maximum possible. Further, there is a
chance that the phase shifts computed independently for each
segment of a line will not be compatible, resulting in
"tears" in the stack. This is especially true since the
phase shifts computed near the ends of lines (or line seg-
ments) are less reliable since the number of traces at each
shot and receiver point will be fewer than the maximum.
Command line arguments
-N ntap
Enter the full path name of the file containing the
data set. The data must be sorted in common midpoint
gathers with moveout correction applied. The program
will give an error message if the input file is read
protected. If no input file is given the program will
hang. (default = stdin )
-O mtap
Enter the full path name for the output file. The out-
put file will be in the form of common midpoint gathers
with the estimated phase corrections corrections
applied. This file cannot be sent to standard output
since the traces are read in a random order as the
phase shifts are estimated and applied. NOTE: The
traces in the output file will have been RMS amplitude
normalized using the test stack time window. The pro-
gram will give an error message if the output file is
being written to a write protect directory. (default =
No Default )
-T otap
Enter the full path name of the file that is to contain
the test stack. The program will give an error message
if the output file is being written to a write protect
directory. (default = No Default )
-S tnam
Enter the full path name of the sort table produced by
the usp program presort. Presort must be run on the
file specified as input. Beware; the ability of the
program to detect errors in the sort table (ie. using a
table that was made for a file that is not in exactly
the same format as the one specified as input) is quite
limited. The program will give an error message if the
input file is read protected. If no input file is
given the program will hang. (default = No Default )
-tstr tstr
The start time of the test stack. This time must be at
least mshft (maximum time shift) from the start of the
input trace. (default = No Default )
-tstp tstp
The end time of the test stack. This time must be at
least mshft (maximum time shift) from the end of the
input trace. (default = No Default )
Note: because of repeated least squares inversions in the
code the run time inceases rather dramatically with the
length of the window defined by tstr & tstp. In is highly
recommended that the user concentrate the window on a lim-
ited number of events, say a couple of hundred samples or so
with a correlation length of about 1/4 this value.
Note: since each data set is different, and since selection
of the test stack time window is critical to the success of
this process, no defaults are possible for tstr or tstp.
-dsp damp1
The spatial smoothness constraint parameter for shot
points. This parameter should generally be set between
0.0 and 0.5, and must always be less than 1.0. NOTE:
See the explanation of this parameter in the Descrip-
tion section above. (default = 0.0 )
-drp damp2
The spatial smoothness constraint parameter for
receiver points. This parameter should generally be set
between 0.0 and 0.5, and must always be less than 1.0.
NOTE: See the explanation of this parameter in the
Description section above. (default = 0.0 )
-lf lf
Number of shaping filter points. Default = 5
-pw prew
% prewhitening for shaping filter calculation. Default
= .1%
-ms mshft
One-sided length of correlation function used to calcu-
late filters. +/-mshft Be careful not to set this
parameter to too small a value as this will result in
poor filter calculation, i.e. not enough input data to
properly compute shaping filter. (default = 100 ms )
-ised ised
The seed for the random number generator used to deter-
mine the order in which shot and receiver points are
operated on. If phzcor is to be used on the same line
several times (say following velocity analysis), it is
a good idea to change ised so that serial correlation
of errors from one application of the process to
another will be reduced. (default = 1256 )
-nit nit
The number of iterations of phase corrections applied
to the data. (default = 2 )
-restart
Restart mode: you no longer need an input data set
since the program will work off the output from the
previous run. This is very useful when further itera-
tions are required on a data set - you don't have to
start at the beginning and you can even restart using
different parameters if that seems necessary.
-V Verbose mode. All parameters from the command line and
line header and other diagnostic information will be
sent to standard error.
-? Query mode. With this flag, phzcor will send a
description of the command line arguments to the stan-
dard error output and stop.
BUGS
No trap for running program without an input file.
There is no way to change the range of records or traces
that are used in the processing. This would require very
complex bookkeeping operations. Use editt before presort to
change the configuration of the input data file.
There is no way to constrain the phase shifts at adjacent
shot and receiver points, since the bookkeeping to find
adjacent points is not in the program. This would be useful
with Vibrosise data.
This program is fairly slow to run since random trace I/O
must be done on the test stack and output files.
See Also
rstatic, pickusp/scorusp, ampcor
AUTHORS
Paul Gutowski, APR, July, 1992) and based on the rstatic
program of Stephen F. Elston, Princeton University (July,
1991).
COPYRIGHT
copyright 2001, Amoco Production Company
All Rights Reserved
an affiliate of BP America Inc.
Man(1) output converted with
man2html