NAME

     picker  - do auto-flattening/picking/phase rotating within a
     window centered on a specified time


SYNOPSIS

     picker [ -Nntap ] [ -Ootap ] [ -Qqtap ] [ -Cetap ] [  -Tttap
     ]  [ -titime ] [ -swrrecwrd ] [ -wiwind ] [ -phase ] [ -pamp
     ] [ -sclscl ] [ -liminlimin ] [ -limaxlimax ] [  -dimindimin
     ]  [ -dimaxdimax ] [ -initer ] [ -lnlags ] [ -flfl ] [ -fcfc
     ] [ -fhfh ] [ -bthr ] [ -rmindmin ] [ -rmaxdmax ] [ -Pptap ]
     [  -swistawrdi ] [ -uiuniti ] [ -swostawrdo ] [ -uounito ] [
     -dtdatum ] [ -rsnrst ] [ -renred ] [ -S ] [ -oiord ] [ -pick
     ]  [ -scor ] [ -F ] [ -snstk ] [ -sign ] [ -med ] [ -maa ] [
     -E ] [ -D ] [ -D3 ] [ -QCT ] [ -V ] [ -vV ] [ -? ]


DESCRIPTION

     For the statics option picker looks at  each  input  seismic
     record  within  a zone defined by a window center time and a
     window length (the assumption here is that either some rough
     flattening,  e.g. a bdnmo, a vred or a flatten has been done
     or a file of records & window times is supplied) and  itera-
     tively  computes  either a (1) set of static shifts or (2) a
     set of phase rotations or (3) a  set  of  trace  amplitudes.
     Static  shifts  are  determined by building reference stack,
     cross-correlating the traces  within  the  zone  to  extract
     shifts  which  are  then  applied  for each interation.  The
     method is quite similar to the  mechanism  used  by  pickusp
     except  that  the  shifts  are applied within the program as
     well as being stored in the trace headers.

     The window center time can be defined  for  each  trace  (1)
     globally, (2) from an xsd style flat file, or (3) from times
     defined in the trace headers. If the times  are  defined  in
     the  trace headers then as each gather is read the times for
     the individual traces in that gather are  averaged  and  the
     average  time  is  used  for the window center time.  For 3D
     applications it is recommended that option (3) be used since
     there are more sophisticated tools available to insert trace
     header times than those internal to picker, e.g. tim2hed3d.

     For the phase rotation option picker currently examines each
     waveform within the analysis window (defined the same way as
     for the statics option  above)  and  extracts  the  response
     phase  for  each peak (see asig).  The maximum envelope peak
     is then determined and the associated phase response written
     to  the  headers and used to rotate the input gathers unless
     the scor option is flagged in which case an  event  tape  is
     written  with the rotations taking the place of the statics.
     This can be input to scorusp or sc3d  depending  on  whether
     the  data is 2D or 3D. The program normally expects the line
     header to contain the min & max LIs &  DIs  of  the  survey,
     although  these  can  be  overridden.  The event tape can be
     scan'd and the samples printed out (unlike  old-style  event
     tapes).

     For the amplitude options each trace is  windowed  according
     to  the options available and then the amplitude is computed
     based on either the maximum or average  absolute  amplitude.
     The  output  will be a modern scor-type event tape where the
     first sample will be the amplitude. This  can  be  input  to
     sc3d  for computation of the surface consistent gain correc-
     tions for each trace. These can be applied using storeit.

     For static or time picking options as much as  possible  the
     window  should  isolate  a single event since this will help
     prevent cycle skipping.  A cosine bell weight is applied  to
     the  windowed  data prior to each iteration.  Only the outer
     1/4 of the window in time is affected by the window taper.

     There are two basic methods used in the statics algorithm:

     1. For each iteration the shifted record is windowed.   Then
     the  cross-correlation is computed between all pair combina-
     tions of the individual traces.  A  peak  picker  finds  the
     maximum positive correlation and a shift is computed (can be
     fraction valued) and applied to the entire record  which  is
     then  ready  for  the next iteration.  2. For each iteration
     the shifted record is windowed then stacked to create a  new
     reference  trace.   Then  the  cross-correlation is computed
     between the reference trace and the  individual  traces.   A
     peak  picker  finds  the  maximum positive correlation and a
     shift is computed (can be fraction valued)  and  applied  to
     the  entire  record  which is then ready for the next itera-
     tion.

     An addition to the above mechanisms  is  the  hi-cut  filter
     which varies with the iteration.  Often within the window an
     event wanders considerably so that  when  stacked  does  not
     produce  a reference trace that has a wavelet similar to the
     individual traces of the stack.  This results in false peaks
     and  troughs  which in turn cause the cross-correlation peak
     picker to skip legs breaking the continuity  of  the  event.
     By  starting  with a very low frequency version of the input
     the stack produces a  wavelet  that  has  such  false  peaks
     blurred  into one another so that the cross-correlation will
     produce an approximate but appropriate shift.  As the itera-
     tions  progress  the  idea is to raise the hi-cut point more
     and more as the shifts home in on the true solution.

     Note that the filtering operation  is  for  the  correlation
     procedure  only  and  has  no frequency effect on the output
     data.


     Note also that for micro second data all times  must  be  in
     microsecs  and frequencies in Hz.  The input sample interval
     must then be in microsecs.

     Note also that within each gather picker  will  ignore  dead
     traces.  The output will contain the original dead traces in
     their original order within each gather.

     In most cases picker will be greatly superior to pickusp and
     can be used instead.

     picker gets both its data and its  parameters  from  command
     line  arguments.  These arguments specify the input, output,
     the window parameters, number of  lags,  iterations,  hi-cut
     points,  the start and end records, 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'.

     -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).

     -Q qtap
          Enter the QC output  seismic  data  set  name  or  file
          immediately  after  typing -Q. This must be a disk file
          and cannot be piped.  The QC output consists of  single
          trace  records  of the final reference stack within the
          time gate defined below.  This output can also be  used
          for  wavelet  processing  (e.g. shaping using shape2 or
          inverse filtering using lsqinv). The total number of QC
          traces  will  be equal to the number of records picked.
          The default is no QC output.

     -C etap
          Enter the QC pick output data set name or file  immedi-
          ately  after  typing  -C.  This must be a disk file and
          cannot be piped.  This QC output consists of  one  line
          per input trace containing the line index (LinInd), the
          depth index (DphInd), and the pick value.  This can  be
          used in any XYZ display program as a QC tool.


     -t itime
          Enter the global center time of the window  (ms).   Or,
          optionally...

     -T ttap
          Enter the  name  of  a  flat  file  containing  record-
          time(ms)  pairs  or an xsd pick file picked on a stack.
          2D applications: for the flat  file  format  the  first
          column  is  the  control  record numbers and the second
          column is the window  center  times  at  those  records
          (trace  record numbers and pick file record number must
          correspond -> see -swr[] entry below); for the xsd file
          the  records must be in the record column (anything can
          be in the trace column). Linear interpolation  is  done
          between  records. 3D applications: the flat file format
          has 3 columns - LI, DI, and time;  the  xsd  pick  file
          (it's  a  good idea to pick segments for each record or
          LI) must have LIs in the record column and DIs  in  the
          trace  column  (user  ufh or trched to force this). The
          program determines the file format internally.  However
          for 3D applications where the data are not flattened on
          the zone of interest it is recommended that a tool such
          as  tim2hed3d be used to insert trace header times (see
          -WH flag below).

     -WH  Enter the command line argument '-WH' to  trace  header
          times  to  define  a window center time. For each input
          gather read the individual trace times stored in header
          word  -swr[]  below  are averaged to arrive at a single
          window center time for that gather.

     -swr recwrd
          For method (2) trace header extraction of window center
          times  enter  the  trace header mnemonic containing the
          times (default = none); for method  (3)  2D  pick  file
          entry  of  window  center  times enter the trace header
          mnemonic containing the record  numbers  keyed  to  the
          pick  file (default = RecNum.) Note: for 3D application
          it is recommended that trace header times  be  inserted
          using a program like tim2hed3d.

     -w iwind
          Enter the length of the window (ms).  No default.

     -phase
          Enter the command line argument '-phase'  to  look  for
          phase  rotation angles, otherwise the program will look
          for static shifts.

     -amp Enter the  command  line  argument  '-amp'  to  compute
          amplitude of each trace

     -scl scl
          Enter the % 2047 scale factor. Default = 15

     -limin limin
          Enter the minimum LI of the stack (if not in  the  line
          header). Default is to use the line header value.

     -limax limax
          Enter the maximum LI of the stack (if not in  the  line
          header). Default is to use the line header value.

     -dimin dimin
          Enter the minimum DI of the stack (if not in  the  line
          header). Default is to use the line header value.

     -dimax dimax
          Enter the maximum DI of the stack (if not in  the  line
          header). Default is to use the line header value.

     -i niter
          Enter the number of iterations desired.  This should be
          the  result  of  examining a test record.  Default = 5.
          Not used for phase rotations.

     -b thr
          Enter the correlation threshold  to  accept.   Correla-
          tions  used in picker are normalized so the the maximum
          possible value is 1 (say if both  the  reference  trace
          and  the  current  trace to be shifted were identical).
          Any interation for any trace falling below this  corre-
          lation  threshold  value  will be ignored (although all
          iterations will be completed).   Default  is  0.0.  Not
          used for phase rotations.

     -rmin dmin
          Enter the minimum range to pick. Default is to use  the
          minimum range of the input gather.

     -rmax dmax
          Enter the maximum range to pick. Default is to use  the
          maximum range of the input gather.

     -l nlags
          Enter number of positive  (or  negative)  lags  in  the
          cross-correlation  (given  in samples).  This is analo-
          gous to the large lag window  in  pickusp.   The  value
          should  be  the  result of examining a test record. The
          total number of lags in the correlation  function  will
          be  2*nlags+1.  Default  = 10. Not used for phase rota-
          tions.


     -fl fl
          Enter the fixed low cut frequency (Hz).   This  is  the
          fixed  low  side of a Butterworth filter and represents
          the 6db down point of the rolloff.  Default = 1.0

     -fc fc
          Enter the starting hi-cut frequency (Hz).   The  hi-cut
          Butterworth  filter applied to both the reference trace
          and the windowed, shifted traces of the current  itera-
          tion  is  varied linearly between fl and fh (see below)
          from interation 1 to iteration  niter.   Default  =  fh
          (ending hi-cut). Not used for phase rotations.

     -fh fh
          Enter the ending hi-cut frequency (Hz).  Default =  1/2
          Nyquist.

     -swo stawrdo
          Enter the optional header word menemonic to  store  the
          cumulative  shift  for each trace.  Default for statics
          is StaCor; default for phase rotations is SGRNum.

          NOTE: If the mnemonic refers to a float or  fake  float
          word,  the  shift will actually be stored as a floating
          point number.  If the mnemonic refers  to  a  short  or
          long integer word, the shift will actually be stored as
          an integer.

     -uo unito
          Enter the scale factor to apply to the  output  shifts.
          This  is  used  to store fractional valued shifts, e.g.
          unit=10 allows 1/10 ms shifts to be  stored.   Programs
          like  rest  which  can  be used to unapply these shifts
          have comparable scaling  input  to  decode  the  proper
          values.   For the scor option the residual shifts writ-
          ten into the event tape are scaled up by unito (default
          here  is  100) and this factor is written into the line
          header word ReSpFm which is read by scorusp. Default  =
          1.0

     -pick
          Enter the command line argument '-pick' to output total
          pick  time  into the above trace header and/or the pick
          file below, else only the residual shifts will be  out-
          put.  The total pick time is defined below for ptap.

     -P ptap
          Enter optional pick file name.  This file will  capture
          the total pick time in a variety of formats (see below)
          using the formula: pick_time = tdatum-start+stor,
           where tdatum is user specified  on  the  command  line
          (see  below),  start  is picked up from the input trace
          headers in the header word  specified  on  the  command
          line  by -swi[], and stor is the current computed resi-
          dual shift.  If flattening of the input data  was  done
          using flatten then tdatum will be the value used in the
          flattening run; if the flattening was done  using  vred
          then  tdatum=0.  (This  all assumes that the flattening
          programs use the same header mnemonic as picker.)

     -d tdatum
          Enter the time (ms) datum to  compute  the  total  pick
          time.  Default = 0. Not used for phase rotations.

     -swi stawrdi
          Enter the header word menemonic to retrieve the  shifts
          applied  using  flatten or vred.  Remember we use these
          programs in effect as guide functions  since  when  the
          data  is  "sort  of" flat we can use a single window in
          picker.  This option is only valid if the pick file  is
          specified on the command line ( -P[]) but then you must
          enter something. Not used for phase rotations.

          NOTE: If the mnemonic refers to a float or  fake  float
          word,  the  shift  will  actually be read as a floating
          point number.  If the mnemonic refers  to  a  short  or
          long  integer  word, the shift will actually be read as
          an integer.

     -ui uniti
          Enter the scale factor to apply to  the  input  shifts.
          This is used to retrieve fractional valued shifts, e.g.
          unit=10 allows 1/10 ms shifts to  be  retrieved.   Pro-
          grams  like  rest  which  can  be used to unapply these
          shifts have comparable  scaling  input  to  decode  the
          proper values.  Default = 1.0. Not used for phase rota-
          tions.

     -xsd Enter the command line argument '-xsd' to  output  pick
          file in xsd format, else

     -gli enter the command line argument '-gli' to  output  pick
          file in gli format, else

          the output pick file consists of  one  line  per  input
          trace with rec#,trc#,pick(ms)

     -rs nrst
          Enter start record number.  Default value is the  first
          record.

     -re nred
          Enter end record number.  Default value is last record.

     -scor
          Enter the command line argument '-scor'  to  output  an
          event  tape  format  to  -O[]  (or a pipe) suitable for
          scorusp. Unlike the old event tape format this  one  is
          in  ordinary  seismic  format and can be scan'd and the
          samples printed out. Note: the pick option and the scor
          option are mutually exclusive.

     -sign
          Enter the command line argument '-sign' to do sign  bit
          correlation.  This really invokes phase correlation and
          minimizes the effect  of  weak  vs  strong  amplitudes.
          Within the analysis window the input data is first con-
          verted to 1's and -1's based on whether the data ampli-
          tude  is > 1 or <= 1. Througout the rest of the comput-
          tations everything else is the same. Not used for phase
          rotation.

     -S   Enter the command line  argument  '-S'  to  smooth  the
          residual  picks  using  the  iterative reweighted least
          squares approach of Mike Bush's (Amoco  London).   This
          has no effect on any flattening done by picker but will
          affect shifts output to either trace headers or to pick
          files.   Smoothing static shifts is something of an art
          form and caution is advised - at the  very  least  some
          parameter  testing  of  the  smoothing  order  below is
          advised. Not used for phase rotation.

     -o iord
          Enter the smoothing order.  Choosing this  governs  how
          smooth  the  picks  become.  In general the smaller the
          order the more detail left in  the  picks.   Default  =
          #traces per rec/10. Not used for phase rotation.

     -F   For static picking or event picking enter  the  command
          line argument '-F' to use the first nstk live traces as
          the reference trace and do a single pass correlation of
          this on the gather to compute the shifts.

     -s nstk
          Enter the number of live traces, starting from trace 1,
          to stack as reference for option -F. Default = 1

     -med For static picking or event picking enter  the  command
          line  argument  '-med' to use median correlation matrix
          (of all trace pairs in gather) method which uses  as  a
          shift  the  median  of the matrix diagonal. The default
          method for static picking or  event  picking  builds  a
          reference trace by stacking the gather then correlating
          the gather traces with the reference  trace  to  obtain
          the shifts for that iteration. Not used for phase rota-
          tion.

     -maa For the amplitude picking option enter the command line
          argument  '-maa'  to  flag  maximum absolute amplitude,
          else average absolute amplitude is assumed.

     -E   Enter  the  command  line  argument  '-E'  to  use  the
          envelope  of  the  traces  instead  of the traces them-
          selves.  This has  the  up-side  of  desensitizing  the
          correlation process to the efects of phase, but has the
          downsize of reducing the  character  of  the  waveforms
          raising  the  proabability of cycle skips. Not used for
          phase rotation.

     -D   Enter the command line argument '-D' to  turn  on  auto
          datuming.   This is useful when inputting vred data for
          which the time datum is unknown, i.e.  a default  first
          break  vred  will  put the f.b. energy not at time zero
          but at some delayed time which the user might not  know
          (if  you  do  use -d{tdatum} above). A fin al reference
          stack is computed over the time window, envelope calcu-
          lated, and the delay time picked on the maximum envelop
          amplitude. The auto datum may change with  each  record
          (the tdatum value above is global).  Not used for phase
          rotation.

     -D3  Enter the command line argument '-D3' to flag 3D  input
          data.  For  window  center  times  input in a file this
          tells whether to interpolate in a 2D or 3D sense  (i.e.
          linear or areal interpolation of the times).

     -QCT Enter the command line argument '-QCT'  to  output  the
          window  center  times into the printout file. Each line
          is tageed at the beginning with the string  'rtldt'  so
          that  the  printout  file can be grep'd. Each line con-
          tains RecNum, TrcNum, LinInd, DphInd, window time.

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

     -vV  Enter the command line argument '-vV' to get very  ver-
          bose printout.

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


EXAMPLES

     A. After picking a rough first  break  (the  xsd  pick  file
     called flat.pik) we run

     flatten -Nindata -Pflat.pik -HwSGRDat -t1000 |


     rest -Oflat_data -SWSGRDat

     where the output file flat_data now has  been  approximately
     flattened  on  the  first  breaks. The times are all written
     into the trace header word SGRDat.  We run the picking  pro-
     gram:

     picker -Nflat_data -Otrimmed_data -swiSGRDat -d1000

     -w500 -t1000 -i5 -fl1 -fc10 -fh50 -S -xsd -Pshifts -pick

     where we have written the picked times out to  an  xsd  pick
     file  that  can  be  loaded into an xsd display of the data.
     The pick file contains the total pick time not the  residual
     picks and they have been smoothed.

     B. Choosing an average refraction velocity (by running  test
     velocities on some control records along the line) we run

     vred -Nindata -vred3500 -swSGRDat |

     picker -Otrimmed_data -swiSGRDat -w200 -i5

     -fl2 -fc5fR -fh50 -S -xsd -Pshifts -pick -D

     where we have used the -D auto time datum  option  with  the
     vred  refraction  run  to apply the proper delay time to the
     shifts in each record.

     C. Estimating phase rotations on 3D data:

     picker -Nindata -Orot_data -w200 -Ttimes_file  -phase  -w100
     -D3

     D. Picking amplitudes on 3D  data  (for  surface  consistent
     amplitude corrections)

     picker -Nn_data -Oo_data -w2800 -t1400 -scor -amp -maa

     Here we are centering a 2800ms window at 1400ms and  picking
     maximum  absolute  amplitudes over this zone and storing the
     scale factors into an event tape format ready for sc3d.   D.
     Trim statics on input NMO corrected CDP gathers:

     picker -Nidata -Oodata -w200 -swrSGRDat -WH

     The output gathers will be trimmed based on the event center
     times extracted fromt he trace header word SGRDat



BUGS

     unknown


SEE ALSO

     pickusp, scorusp, sc3d, flatten, recshift, tim2hed3d,  vred,
     rest


AUTHOR

     Paul   Gutowski,   APR,   x3146,   zprg03@trc.amoco.com   or
     TRCVM(ZPRG03)


COPYRIGHT

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









































Man(1) output converted with man2html