NAME
     rmo - residual automatic moveout correction

SYNOPSIS
     rmo [-N  Input  data]  [-O  Output  data]  [-maxoff  maximum
     DstUsg] [-deltat Max shift] [-wind Smoothing window] [-minx-
     ref Min reference offset] [-maxxref  Max  reference  offset]
     [-nxref  Number  of offsets] [-ncdp Number of cdps] [-tshort
     Max short offset shift] [-bandw  Signal  bandwidth]  [-stabl
     Stability factor] [-afile Aux O/P] [-xfile Aux O/P] [-qcfile
     Aux  O/P]  [-parab]  [-loshift  Min  parabolic/gamma  shift]
     [-hishift Max parabolic/gamma shift] [-limit Limit max gamma
     shift] [-nscans Number of gamma steps  between  loshift  and
     hishift]  [-A] [-V] [-foff Verbose first offset] [-loff Ver-
     bose last offset] [-noff Verbose number of  offsets]  [-tinc
     Verbose time increment] [-mincdp Verbose first cdp] [-cdpinc
     Verbose CDP increment] [-? -h -help]

DESCRIPTION
     RMO  computes  and  applies  residual  moveout  corrections.
     Input data must be NMO corrected and CDP ordered.

     RMO assumes the residual moveout can  be  described  by  the
     following general equation:

     Delta t = alpha * x**2 + beta * x**4

     Where x is the source to receiver offset.  The  above  equa-
     tion is very difficult to apply in practice.  The  alpha and
     beta  terms strongly interact with each other.

     In order to make this equation useful, a constraint must  be
     applied.   For practical reasons, we may assume that typical
     NMO correction is reasonably good on the near  traces  where
     the  moveout  is hyperbolic.  In other words, we assume that
     the non-hyperbolic error is  positive  and  small  up  to  a
     reference offset.  A mathematical equation for this restric-
     tion is:

     Delta t = 0 = alpha * xref**2 + beta * xref**4

     From this relationship,  beta  may be  eliminated  from  the
     general equation, which then becomes:

     Delta t = alpha * x**2 * [1 - (x / xref)**2]

     This equation basically says that for some non-zero  offset,
     xref,  the  2nd  and  4th order terms balance each other and
     produce a net zero moveout error.  For  offsets  up  to  the
     xref  the  data is assumed slightly undercorrected.  Offsets
     greater than xref are overcorrected by  an  ever  increasing
     amount.   This  moveout  curve mimics actual data processing
     procedures.  Normally, a user will  pick  the  highest  sem-
     blance on a velocity analysis.  This highest semblance value
     is affected by the long offset NMO errors  and  is  actually
     faster than the true RMS velocity.  This common tendency, to
     pick slightly faster velocities in order to  align  the  far
     traces  better,  fits  the assumptions in the previous equa-
     tion.  RMO scans the input data for a  reasonable  range  of
     alpha and xref values.  Using a stacked amplitude criterion,
     when the data appears  to  contain  these  residual  moveout
     errors,  RMO applies a dynamic correction to align the data.
     Actual alpha and xref values are allowed to change sample by
     sample.   Smoothing is applied across a time gate and across
     CDPs to stabilize the output.

     See below for the parabolic and gamma  options  since  these
     are  of  most  use  for simple correction of short to medium
     length spreads or in dealing with imaged  gathers  from  the
     migration shop.


  Theoretical Factors
     Residual moveout errors can be caused  by  several  factors.
     Three  readily  identified  sources  have been investigated.
     First, a layered earth with a vertical velocity distribution
     produces  non-hyperbolic moveout (see for example, Taner and
     Koehler, 1969,  and  Castle,  1994).  Secondly,  anisotropic
     material  produces  residual  moveout  errors  (Tsvankin and
     Thomsen, 1994).  Thirdly, spatial velocity  changes  produce
     apparent  residual  moveout  errors.   Moveout errors due to
     statics and buried velocity  lenses  are  examples  of  this
     third class.  Theoretically, a prestack depth migration with
     the proper velocity model can  correct  for  the  first  and
     third  source  of  error.   In  fact,  such a prestack depth
     migration program expects these travel  time  anomalies  and
     won't  work  properly  on  RMO output.  The second source of
     moveout errors, anisotropy, would be handled properly if the
     same  prestack depth migration program also included correc-
     tions for anisotropic propagation.

     RMO attempts to correct for all residual moveout errors of a
     particular shape regardless of their source.  RMO should NOT
     precede prestack depth migration.  RMO after  prestack  time
     migration  may be beneficial.  DMO, since it alters the pre-
     stack arrival time of dipping energy, should precede RMO.


  Operation
     The number of moveout scans  performed  is  roughly  propor-
     tional  to the number of reference offsets times the maximum
     shift times the bandwidth (NXREF * DELTAT * BANDW).  Not all
     analyses are actually performed, however.  When the shift on
     the near  traces  (TSHORT)  becomes  too  large,  then  that
     particular  analysis will not be performed.  RMO can be made
     to  run  faster  if  the  number  of  reference  offsets  is
     decreased,  the  maximum  shift is reduced, or the bandwidth
     reduced.  With  some  combinations  of  parameters,  reduced
     TSHORT will execute somewhat faster.

     RMO can require large blocks of memory if the number of CDPs
     to  smooth  (NCDP)  is large.  Memory for the number of ana-
     lyses times the number of CDPs to smooth is  allocated.   If
     this  block  of memory is too large, excessive page faulting
     may occur, or in extreme cases RMO may not run at all.


  Parabolic Residuals
     RMO has an option to search for residual moveout  errors  of
     the form:

     Delta t = alpha * x^2

     This equation represents a "parabolic" residual error.  Par-
     abolic  errors  are caused by different kinds of errors than
     the 4th order errors described previously.  Parabolic errors
     can  be  caused  by  mis-picked  velocity analyses.  Another
     source of residual NMO errors occurs when user time-velocity
     picks  are linearly interpolated to each sample of each CDP.
     Parabolic errors can occur on even short offsets.

     The parabolic residual moveout option should  be  used  cau-
     tiously.   Multiples and diffracted energy can easily create
     spurious apparent moveout errors.  The parabolic option  is,
     therefore, safer on DMO output after multiple attenuation.


  Gamma Residuals
     RMO has another option to search for residual moveout errors
     of the form:

     Delta z = sqrt [ z0^2 + (gamma^2 - 1) * x^2 ], or, Delta z =
     sqrt [ z0^2 + alpha * x^2 ]

     This equation represents a type  of  "parabolic"  correction
     that becomes progressively less with depth (or time).  It is
     the correction derived from flattening imaged gathers  after
     migration, gamma being the fractional deviation in the velo-
     city field at that location, i.e. to obtain the  new  migra-
     tion  velocity  field  take the old one and sample-by-sample
     multiply it with the gamma field. The scans  are  done  over
     linear alpha and then converted to gamma values if the gamma
     field if output (2-step process).  On application the gammas
     are converted back to alphas and the correction computed and
     applied. For the gamma option the depth increment is  deter-
     mined  from the line header entry Dz1000, which is the depth
     interval times 1000. This entry  must  be  present.   It  is
     recommended  that  the  rmo  program  be run in the two step
     mode:  once to generate the gammas, followed by user smooth-
     ing  of  the gamma field, followed by the application run of
     rmo.  This flow will allow volumetric smoothing of the  gam-
     mas.   Because  of  the  sqrt the gamma option runs about 6x
     slower than the parabolic option so if the goal is merely to
     flatten  this type of simple residual then use the parabolic
     option.  It is recommended that the rmo program be run.


  References
     Castle, Richard J. 1994. "A theory of normal  moveout"  Geo-
     physics, Vol 59, No 6, June 1994, pp 983-999.

     Taner, M.T.,  and  Koehler,  F.,  1969,  "Velocity  spectra-
     digital  computer  derivation  and  applications of velocity
     functions," Geophysics, Vol 34, pp 859-881.

     Tsvankin, Ilya,  and  Thomsen,  Leon,  1994,  "Nonhyperbolic
     reflection  moveout  in  anisotropic media," Geophysics, Vol
     59, No 8, pp 1290-1304.


  Command line arguments
     -N input dataset
          Specify the input data set  name  or  file  immediately
          after  typing  -N  unless  the  input is from a pipe in
          which case the -N entry must be  omitted.   This  input
          file  should include the complete path name if the file
          resides   in   a    different    directory.     Example
          -N/b/vsp/dummy  tells  the  program  to  look  for file
          'dummy' in directory '/b/vsp'.

     -O Output dataset
          Specify the output data set name  or  file  immediately
          after typing -O.  This output file is not required when
          piping the output to another process.  The output  data
          set also requires the full path name (see above).

     -maxoff maximum offset
          Maximum offset in the input dataset.  This parameter is
          used  to  calculate  analysis  increments.  A few input
          traces longer than  MAXOFF  will  not  cause  problems.
          Those traces with larger offsets will contribute poorly
          to the analysis because  the  moveout  scan  increments
          will be too coarse. REQUIRED.

     -deltat Max shift at maxoff
          The maximum residual moveout error allowed.  Units  are
          milliseconds. REQUIRED.

     -wind Time smoother
          Time window  length,  in  milliseconds.   The  residual
          moveout  analysis  will  be  performed within a sliding
          window of this length.  In effect, this parameter  con-
          trols a temporal smoother.

     -minxref Minimum analysis reference offset.
          RMO will assume that residual moveout errors  are  very
          small  for  offsets  less  than  the reference offsets.
          Units must match the OFFSET trace header values.

     -maxxref Maximum analysis reference offset.
          Units must match the OFFSET trace header values.

     -nxref Number of analysis reference offsets.
          The range of analyzed reference offsets between MINXREF
          and MAXXREF will be equally spaced.

     -ncdp Number of CDPs to smooth the analysis.
          Must be odd.  NCDP will be increased by one  if  neces-
          sary  in  order  to  make NCDP odd. If -parab or -gamma
          options are chosen with the two pass method  then  ncdp
          will  be  set  to 1.  In that case the user is strongly
          advised to smooth the alpha or  gamma  data  (the  -O[]
          file in the first of 2 passes).

     -tshort Short offset max time shift
          The maximum shift allowed  at  offsets  less  than  the
          reference offset. Units are milliseconds.

     -bandw Estimated data bandwidth as fraction of Nyquist frequency
          If  there is little high frequency energy in the input,
          anti-aliasing provisions can be relaxed and RMO can run
          faster.   For  example,  if 4 ms data has been filtered
          back to 50 Hertz, then a BANDW = 50 /  125  =  .4  will
          cause  RMO to run roughly twice as fast as the default.
          This parameter has no  effect  in  the  -gamma  option.
          There  -nscans[]  will uniquely determine the step size
          between loshift and hishift.

     -stabl Stability factor.  Extreme shifts are,
          normally, less likely than small  shifts.   STABL  pro-
          vides  a weight to apply to the largest shift.  Weights
          are linearly tapered so that a shift of 0  milliseconds
          has  a weight of 1. In the gamma option the weight is 1
          at a gamma of 1 tapering to its minimum  value  at  the
          absolute largest of loshift or hishift.

     -qcfile Auxiliary QC output dataset.
          Enter the file name containing the smoothed  semblances
          generated  by  the  scans  at  a  gather  increment  of
          -cdpinc[].  The disk file is organized as  if  it  were
          cdp  data with the number of traces per record equal to
          the number of scans.  This option  is  only  valid  for
          -parab and -gamma options.

     -afile Auxiliary QC output dataset.
          The disk file is organized as if it were stacked  data.
          The  sample  values  are,  however, the values of alpha
          (see the Technical description) actually applied to the
          data.   Output  data samples are in units of samples of
          shift per foot**2 or samples  of  shift  per  meter**2.
          Since  typical offsets are 1000s of feet or meters, the
          data amplitudes are quite small (i.e. 10e-6).  The out-
          put trace header is constructed from the first trace in
          the input CDP.

     -xfile Auxiliary QC output dataset.
          The disk file is organized as if it were stacked  data.
          The sample values are, however, the values of reference
          offset (see the Technical description) actually applied
          to  the data.  Output data samples are in units of feet
          or meters. Data values will therefore, range between  0
          and  MAXXREF.   The  output trace header is constructed
          from the first trace in the input CDP.

     -parab Parabolic flag  This parameter list initiates the
          parabolic residual  moveout  analysis  and  correction.
          Parabolic  moveout  analysis  is  incompatible with the
          standard 4th order analysis.  If this flag is  present,
          4th order search is disabled.  The following parameters
          will be ignored: DELTAT, MINXREF, MAXXREF,  NXREF,  and
          TSHORT.   The  STABL  weight  is  applied symmetrically
          around zero shift, i.e. zero shift always has a  weight
          of  1 and STABL is applied to the maximum of LOSHIFT or
          HISHIFT. -loshift[] -hishift[] should be tested.  -max-
          off[]  must  also  be  included but does not need to be
          tested.

     -gamma gamma flag  This parameter list initiates the
          gamma residual moveout  analysis  and  correction.  The
          following  parameters will be ignored: DELTAT, MINXREF,
          MAXXREF,  NXREF,  and  TSHORT.   The  STABL  weight  is
          applied  symmetrically  around  zero  shift,  i.e. zero
          shift always has a weight of 1 and STABL is applied  to
          the   maximum   of   LOSHIFT   or  HISHIFT.  -loshift[]
          -hishift[] should be tested.  -maxoff[]  must  also  be
          included but does not need to be tested.
           The line header entry Dz1000, the depth interval times
          1000, must be present.

     -loshift The minimum residual parabolic error or gamma at MAXOFF.
          Units  are  milliseconds  for the -parab option but are
          unitless for -gamma (fractional above  and  below  1.0,
          e.g.  .8). For -gamma the -limit paramater is checks to
          prevent shifts at maxoffset from exceeding  this  value
          at  any time. Also the shifts (positive or negative) at
          the end ot the  trace  at  maxoffset  are  compared  to
          -limit[]  and  if  they are greater (absolute) then the
          delta gamma and either loshift or hishift are  adjusted
          to  be  smaller, keeping the gamma step size more effi-
          cient.  The magnitude of this shift corresponds to  the
          amount  of NMO overcorrection. THIS PARAMETER SHOULD BE
          TESTED ON A SMALL SAMPLING OF GATHERS.

     -hishift The highest residual parabolic error or gamma at MAXOFF.
          Units  are  milliseconds  for the -parab option but are
          unitless for -gamma (fractional above  and  below  1.0,
          e.g.  1.2).  Also the shifts (p ositive or negative) at
          the end ot the  trace  at  maxoffset  are  compared  to
          -limit[]
           and if they are  greater  (absolute)  then  the  delta
          gamma and either loshift or his hift are adjusted to be
          smaller, keeping the gamma step  size  more  efficient.
          The  magnitude  of this shift corresponds to the amount
          of NMO undercorrection. THIS PARAMETER SHOULD BE TESTED
          ON A SMALL SAMPLING OF GATHERS.

     -nscans The number of scans for the -gamma option.
          This parameter is only for the -gamma option. It is the
          number of gamma steps between loshift and hishift.  The
          default is 31 which so far seems fine for most  seismic
          data, however testing should be done on a small portion
          of data.  The run time scales  proportionally  to  this
          parameter.

     -limit The limit on max absolute gamma shift.
          Units are % of total trace  length.   Since  the  gamma
          shift  is time varying [ sqrt(z0^2 + (gamma^2-1)*x^2) ]
          the shallower shifts tend to be larger like  NMO.  This
          is  a  way  of getting the required deeper shifts while
          not going berserk up shallow. Default is 5%

     -A   Specify the command line argument '-A' to run the  pro-
          gram  in  separate steps: first, generate an alpha data
          set and second, read the cdps and the  alpha  data  and
          apply  the  corrections. This can be useful for 3D data
          where one would like to smooth the alpha parameter spa-
          tially.  After the first run utop the alpha data volume
          to have the same multi  trace  records  as  your  stack
          (txy)  volume.  Then  qdslice  the volume into the time
          slice (xyt) domain and run fkkstrip.  Then  qdslice  -R
          the volume back into the txy domain.  This data is then
          read using the -afile[] cmd line entry or input port  3
          in  the  ikp  rmo  panel.   The  cmd line arguments for
          loshift, hishift, maxoff, and -A must  be  present  for
          both steps.

     -V   Specify the command line argument  '-V'  to  get  addi-
          tional  printout.  Flagging  this  will  result  A HUGE
          AMOUNT OF PRINTOUT - BE CAREFUL!

     -foff First OFFSET value for verbose tables.
          Units must be the same  as  the  OFFSET  header  units.
          Tables  of  time  shifts (Delta ts) will be printed for
          the specified offsets

     -loff Last offset value for verbose tables

     -noff Number of OFFSETs for verbose tables

     -tinc Time increment for verbose tables
          The time increment in milliseconds for the print out of
          the analysis results.

     -mincdp Minimum CDP for verbose tables

     -cdpinc CDP increment for verbose tables
          The increment between CDPs for the output  of  QC  sem-
          blances (if requested) and the printout of the analysis
          results.

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

EXAMPLES
     rmo -Nindata -Oodata -maxoff6240 -deltat120 -ncdp41

     Here is a relatively simple example.  The default  shift  of
     200  milliseconds has been changed to 120 milliseconds.  The
     default CDP smoother has been changed  from  5  CDPs  to  41
     CDPs.

     rmo  -Nindata   -Oodata   -maxoff6240   -parab   -loshift-20
     -hishift12

     This is an example of a parabolic search  for  residual  NMO
     errors.

     rmo    -Nindata    -Oodata    -maxoff6240    -V    -cdpinc10
     -afilealpha.sis -xfilexref.sis

     This is an  example  of  a  test  job.   Verbose  output  is
     requested along with both QC outputs.

     Next is an example of using the 2-step process.

     1. compute gammas and output QC  semblance  at  the  default
     interval of every 100th gather

     rmo   -Nindata   -Ogammadata   -maxoff2950   -qcfilesembdata
     -loshift0.0 -hishift2.0 -A -gamma

     2. after smoothing the gamma field apply it to the data

     rmo  -Nindata  -Oodata  -maxoff2950  -afilegamma_smooth   -A
     -gamma


BUGS
     No known bugs at present.

SEE ALSO
     rnmopec, rnmo, vtispec, vtinmo

AUTHOR
     Original code by Steve Markley and  mods  by  Paul  Gutowski
     x4202 or 504-588-9294
































Man(1) output converted with man2html