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