NAME

     frmmult  - generalized radon noise/multiple removal and data
     interpolation program utilizing unequal spaced fft logic for
     speed.


SYNOPSIS

     frmmult [ -Nntap ] [ -Ootap ]  [  -Aatap  ]  [  -Sstap  ]  [
     -mminmmin  ]  [  -mmaxmmax  ]  [ -rminrmin ] [ -rmaxrmax ] [
     -npnp ] [ -sist ] [ -eiend ] [ -hwhdrwrd ] [ -tscltscl  ]  [
     -flfl  ]  [  -fhfh ] [ -xminxmin ] [ -xmaxxmax ] [ -dxdx ] [
     -zrefzref ] [ -prewwhite ] [ -livenlive ] [ -ttaperntaper  ]
     [  -pass ] [ -mute ] [ -L ] [ -P ] [ -H ] [ -I ] [ -V ] [ -?
     ]


DESCRIPTION

     frmmult breaks the seismic data into 3 components:

     1) modeled seismic noise

     2) modeled seismic signal

     3) unmodeled seismic data (including both noise and signal)

     The user models the seismic data with a series of np curves,
     (linear,  parabolic or hyperbolic) which are fit to the data
     in a least  squares  sense,  thereby  generating  a  modeled
     response.  That  subset  of the curves defined as 'noise' is
     subtracted from the data.  The  remaining  curves  are  con-
     sidered to be modeled 'signal' and as an option, can be used
     to intelligently interpolate dead traces.

     This program was  originally  designed  to  remove  multiple
     reflection  events.  Specifically,   frmmult  approaches the
     problem of multiple attenuation on unstacked data  by  means
     of  Velocity  Stack  Inversion.  Input  to  the  process  is
     unstacked data:  common  shot-  ,common  receiver-  or  CDP-
     ordered,  with  the  primary  reflections flattened or over-
     corrected using an appropriate NMO  routine.  The  data  are
     assumed  to  have  had both CDP-average and CDP-datum static
     corrections applied.

     Multiple attenuation using  this  program,  like  most  long
     period  multiple attenuation techniques, relies on differen-
     tial moveout between primary and  noise  events.  Since  the
     process would be ineffective at early data times where velo-
     city separation is small, the program  allows  the  user  to
     specify a constant time window in which multiple suppression
     is to be effected.

     In contrast to dip filtering, quadrant chopping,  and  other
     f-k  techniques,  this technique allows effective separation
     of coincident primaries and multiples on short-offset traces
     by  partitioning the energy between the two events using all
     the user supplied offsets;  separation  occurs  in  velocity
     space.

     Also in contrast to deterministic f-k and tau-p  techniques,
     this  implementation  of  the generalized Radon transform is
     quite robust when dealing with spatially aliased data. Typi-
     cally,  the  user  specified  curves that do not (mathemati-
     cally) span the entire data space.  If  the  user  specifies
     his/her  curves  such  that the aliased data can be uniquely
     represented (fit by a small subset of curves),  the  aliased
     data can be modeled, and subsequently subtracted or interpo-
     lated as desired.  Unmodeled  portions  of  the  data  space
     (such as diffraction 'signal' events) pass through this pro-
     cess without undo attenuation. Thus, certain  components  of
     aliased  Rayleigh  waves may be modeled and then subtracted.
     In essence, by carefully defining the curves to be  modeled,
     the  user is providing supplemental a priori information not
     available to deterministic f-k filters.

     INPUT:   Shot-,  Receiver-  or  CDP-ordered  records,   with
     appropriate moveout  corrections and all statics applied.

     OUTPUT:  Shot-, Receiver- or CDP-ordered records  with  mul-
     tiples or other user defined noise suppressed. Interpolation
     of dead traces if so desired using the 'signal' part of  the
     modeled data.

     AUXILIARY  OUTPUT  1:   Shot-  ,  Receiver-  or  CDP-ordered
     records of subtracted noise.

     AUXILIARY OUTPUT 2:  Spectra in (omega,p) space  of  modeled
     data.


      frmmult  gets both its data and its parameters from command
     line  arguments.  These arguments specify the input, output,
     auxilliary output, the design  window,  the  start  and  end
     delta-T,  number of parameters/curves, and verbose printout,
     if desired.

  Command line arguments
     -N ntap
          Enter 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'.
          It is highly recommended that the user  regularize  the
          data  using routine disort for the more computationally
          efficient big memory option.

     -O otap
          Enter 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).

     -A atap
          Enter the output file name of the 'rejected'  data,  if
          desired.  This  file  contains  the  data that was sub-
          tracted from the original.  This output file cannot  be
          piped and requires the full path name.

     -S stap
          Enter the output file name of the spectrum in (omega,p)
          space  of the modeled data, if desired. (when using the
          -L option, (omega,p) is equivalent to (omega,kx) ). The
          differential moveout delta-t corresponding to each p is
          stored in  the  traceheader  word  DstSgn  and  can  be
          displayed  using  xsd  or  scan. The first half of each
          trace (p  value)  contains  the  amplitude,  while  the
          second  half  of  each  trace contains the phase of the
          modeled data in radon transform space (same  format  as
          in  routine  fft2da).  This output file cannot be piped
          and requires the full path name.

     -s ist
          Window Start  Time  (ms).  This  window  specifies  the
          region  on  the  input  data  after which noise will be
          suppressed. (default = first sample).

     -e iend
          Window End Time (ms). End of window for noise  suppres-
          sion. (default = last sample)

     -hw hdrwrd
          Window time keyed on trace header word, e.g. WDepDP. If
          this is on the command line the the start and end times
          above are referenced to the header word time, e.g.  -s-
          100  means a start procesing time 100ms above the trace
          header word time; -e100 means an end time  100ms  below
          the  header word time. Each gather is read but only the
          header word time associated with the  minimum  absolute
          trace  distance  is used. Default is to ignore in which
          case -s[] and -e[] are now global window times.

     -tscl tscl
          Trace header start time multiplier. Default =  2  (e.g.
          first water bottom).

     -fl fl
          Low  Frequency  (Hz).  Lowest  frequency  of  interest.
          (default = 5 Hz)

     -fh fh
          High Frequency (Hz). Highest frequency of interest. The
          cost goes up linearly with fh. (default = 1/2 Nyquist)

     -mmin mmin          (previously called -id0)
          Minimum value of differential  moveout  to  be  modeled
          where  delta-t is measured at the larger absolute value
          of the -xmin[] and -xmax[] entries below. If  the  pri-
          mary  is NMO-corrected to be flat, it is recommended to
          set mmin=-40ms for a 25Hz wavelet, thereby allowing the
          algorithm  to  model subtle AVO effects in the wavelet.
          No default.

     -mmax mmax          (previously called -id1)
          Maximum value of differential moveout  to  be  modeled.
          This  value should be slightly greater than the largest
          moveout the user wishes to reject. No default.

     -rmin rmin          (previously called -jd0)
          Minimum value of differential moveout  to  be  rejected
          where  delta-t is measured at the larger absolute value
          of the -xmin[] and -xmax[] entries below.  If the  pri-
          mary  is NMO-corrected to be flat, it is recommended to
          set rmin=+40ms for a 25Hz wavelet, thereby allowing the
          algorithm   to   retain   subtle  AVO  effects  in  the
          wavelet.(Default = mmin).

     -rmax rmax          (previously called -jd1)
          Maximum value of differential moveout to  be  rejected.
          (Default = mmax).

     -np np
          Number of parameters or  curves.  About  each  record's
          (actual  or  nonexisting)  zero-offset  trace  a set of
          linear, parabolic or  hyperbolic  curves  are  used  to
          model  the  data. The moveout range for these curves is
          specified in  the  -mmin,  -mmax  entries  above.  This
          parameter  determines  how many curves are used to span
          that range.  The cost goes up linearly with  the  value
          of  np. (Default: np = 2*fh*(mmax-mmin)/1000), giving 2
          points per wavelength at the farthest offset).

     -xmin xmin
          Minimum trace distance (ft or m) in the  data.  If  the
          trace  distances  in  the  trace header word DstSgn are
          negative, xmin should also be negative.  The  delta-t's
          (after  the   -mmin,  -mmax,  -rmin, -rmax options) are
          calculated at max(|xmin|,|xmax|). Default: xmin=0.

     -xmax xmax
          Maximum trace distance (ft  or  m)  in  the  data.  The
          delta-t's   (after  the   -mmin,  -mmax,  -rmin,  -rmax
          options)  are  calculated  at  max(|xmin|,|xmax|).   No
          default.

     -dx dx
          Seismic group spacing (ft or m). Supplying  this  value
          will trigger the 'big memory' option in frmmult whereby
          the Radon transform matrices are precomputed.  Since  a
          Radon  transform needs to be calculated at every possi-
          ble shot-receiver distance, dx needs to  represent  the
          separation  in  the common shot domain, vs. the coarser
          common midpoint domain. The program will test for vali-
          dity  of  data regularity against the seismic distances
          stored in the trace headers. If the trace  distance  is
          greater  than  .1*dx  off a precomputed Radon transform
          position, the program will abort. Default: data assumed
          to  be totally irregular, resulting in a more expensive
          but smaller memory run.

     -prew white
          Percent Pre-Whitening. Pre-whitening is used to stabil-
          ize  the  least-squares  inversion  in  the presence of
          noise. Default = 5%

     -ttaper ntaper
          Temporal taper length (ms). Taper length to be  applied
          to  window  of  noise  traces  -s,-e before subtraction
          from the original data.  Default = 0 ms, that is, don't
          apply a taper.

     -pass
          Enter the command line argument '-pass'  to  pass  data
          between (rmin,rmax) and reject data between (mmin,rmin)
          and (rmax,mmax).  Default is  to  reject  data  between
          (rmin,rmax).

     -mute
          Enter the command line argument '-mute' to preserve the
          early  mute on the data. Since  frmmult attempts to fit
          constant amplitude curves to the data, it will generate
          artifacts  in  the mute zone, possibly giving undesire-
          able effects after reverse moveout.

     -L   Enter the command line  argument  '-L'  to  use  linear
          curves in the data model.

     -P   Enter the command line argument '-P' to use   parabolic
          curves in the data model. (default)

     -H   Enter the command  line  argument  '-H'  to  use   time
          invariant  hyperbolic curves in the data model.


     -zref zref
          Reference depth for time invariant hyperbolic curves if
          -H  option  selected.  Hyperbolae defined as in  Foster
          and    Mosher,    Geophysics,    1992    .     Default:
          zref=max(|xmin|,|xmax|).

     -I   Enter the command line  argument  '-I'  to  interpolate
          dead  traces  using  the  'signal'  part of the modeled
          data. If the user wishes to interpolate missing  inside
          traces prior to slant stacking and plane wave migration
          before stack, he/she should pipe  embed -D   into  this
          program such that dead traces are padded on the inside.
          This routine differs from program   mess   in  that  it
          tries  to  interpolate/extrapolate  the data using many
          curves instead of just  one,  flat  curve  in  the  NMO
          domain.  In this way it is possible to interpolate con-
          flicting dips. Trace headers are assumed to be  correct
          on input to this routine.

     -V   Enter the command line argument '-V' to get  additional
          printout.

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


BUGS

     NOTE 1:  Besides controlling the run-time, the  data  window
     defined by the -s,-e entries should also be chosen in such a
     way as to avoid heavily muted  zones.  Since  the  algorithm
     depends  on  moveout  discrimination,  only data which has a
     sufficient range of moveout to  discriminate  multiple  from
     primary energy should be included.

     NOTE 2:  The run-time increases with the number of  frequen-
     cies  to process. This, in turn, is proportional both to the
     window length and to the frequency range  specified  by  the
     fl,fh  entries.  It  is  important  that the frequency range
     specified here be sufficient to  encompass  the  input  data
     (even though the frequency band of the multiples may be nar-
     rower than that of the primaries) in order to ensure correct
     modelling  of ALL events and, therefore, optimum attenuation
     of the multiples.

     NOTE 3:  The original code written for MVS/SIS  contained  a
     body  of  code  to "synthesize" super gathers in those cases
     (particularly land, 3-D) where the  gathers  are  sparse  by
     performing  the  modeling and attenuation steps over several
     adjacent CDP's, thus filling in the offset holes.   The  USP
     version does not do this.  If super gathers are needed there
     are a number of USP tools (sorting, editing, etc) to  fairly
     easily assemble them from the input data.
     NOTE 4:  Rejection in common shot or receiver domain can  be
     difficult  since  the  apices of the hyperbolae are not cen-
     tered about x=0. Many more parameters are  need  to  express
     these  offcentered  hyperbolae than those that are centered.
     In general, filtering in  the  common  midpoint  and  common
     reflection  point (MBS) domains show a cleaner separation of
     signal to noise (P. J. Singer).

     NOTE 5:  The -dx option should be  considered  when  running
     regular marine lines on the Cray-2 and Cray-XMP supercomput-
     ers. Although this option  may  run  on  seismic  processing
     workstation and network servers, the user should then deter-
     mine whether the program truely resides in core or is paging
     in  and  out of the swap space, and determine whether or not
     the -dx (big memory) option is truely more efficient.

     NOTE 6:  Dead traces are not used if they  fall  within  the
     design window.

     NOTE 7:  Considerable care must be  taken  in  applying  the
     radon  transform, yet preserving subtle AVO effects. Even if
     the desired events are flat, the p=0 moveout coefficient  is
     only  able  to  model a constant amplitude component of this
     event. Other positive and/or  negative  p  coefficients  are
     needed  to model the observed AVO variation. Rejecting these
     essential components of AVO in a multiple  elimination  pro-
     cess  will  also wipe out the desired AVO effect! Model stu-
     dies have shown that retaining parabolae  that  express  the
     full  wavelet  (eg  mmin < -40ms and rmin > +40ms for a 25Hz
     wavelet) at the farthest offset causes minimal damage to the
     AVO effect, with only moderate retention of multiples (N. C.
     Allegar).


BUGS

     No bugs known at present.


SEE ALSO

     disort, embed



AUTHOR

     Original code by Tony Samsom, Amoco Canada (1987);  usp ver-
     sion  by Paul Gutowski, TRC (1990); signifcant reworking for
     code performance (eg. vectorization, precomputation of Radon
     transform matrices) and easier maintenance along with inter-
     polation and non parabolic options by  K.  J.  Marfurt,  APR
     (1992).  Considerable  calabration and improvements by W. F.
     Felinksi, N. C. Allegar and P. J. Singer (1992). Significant
     reworking,  bug  fixes  and implimentation of unequal spaced
     FFT algorithm for greater than 2X speed up by Anthony Vassi-
     liou [1998].


COPYRIGHT

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

















































Man(1) output converted with man2html