NAME

     depth2time_ray - Trace seismic rays from seismic horizons in
     2 dimensions


SYNOPSIS

     depth2time_ray  [  -dt  real_number  ]   [   -h   ]   [   -N
     input_filename ] [ -ns start_trace_no ] [ -ne end_trace_no ]
     [ -O output_filename ] [ -rs begin_record ] [ -re end_record
     ]    [    -seg   segment_number   ]   [   -V   ]   [   -ismv
     vertical_smoothing_steps         ]          [          -ismh
     horizontal_smoothing_steps ] [ -VEL velocity_filename ]



INTRODUCTION

     depth2time_ray (2d seismic ray tracer) is designed to  trace
     seismic  rays  from  subsurface reflectors through a gridded
     velocity model to the surface.  The original ray  directions
     can  be  given  to  the  program  or the program can compute
     directions normal to the reflecting surface.  The reflecting
     surface  is presented to depth2time_ray in the format of xsd
     segments where the sample coordinate (z) is the depth to the
     reflector.   depth2time_ray  takes as input a set of arrival
     times at surface locations in xsd segment  format  and  pro-
     duces  a  new  set  of segments that are the reflector depth
     locations associated with the surface arrivals.  The  output
     ray  locations (horizontal or 'trac' coordinate) will not be
     the same as the input ray locations  because  the  rays  may
     have  horizontal  components of the propagation vector.  The
     initial reflector locations "migrate" to the surface arrival
     locations.   Rays are assumed to be normally incident at the
     reflecting surface.  Ray  paths  from  the  surface  to  the
     reflector  specified  by  the -seg argument are computed and
     written  to  the  file  called  "ray.path"  in  xsd  format.
     depth2time_ray  uses  a  second  order Runga-Kutta scheme to
     integrate the differential ray equations from the  reflector
     to  the surface. depth2time_ray is intended to trace seismic
     rays.  It is not intended to catch syntax errors in xsd data
     files. The program xsdcheck can help verify the syntax of an
     xsdfile. Prior to using depth2time_ray, the user should ver-
     ify that the xsd file is read correctly by xsd.

     This document first summarizes how to invoke depth2time_ray.
     That   section  should  be  read  before  beginning  to  use
     depth2time_ray.  Later  sections  describe  depth2time_ray's
     options  in  more  detail,  give  an example of its use, and
     explain how to interpret the  output.   The  final  sections
     mention the limitations and known bugs in depth2time_ray.


INVOKING depth2time_ray

     depth2time_ray is invoked through a command of the form:

        $ depth2time_ray [-switch | -setting [set_value] ...]

     The brackets indicate  something  which  is  optional.   The
     brackets  themselves  are  not actually typed.  Here options
     are command-line switches or  settings,  which  control  the
     operation  of the program and the amount of information that
     will be printed out.  If options or arguments are not speci-
     fied, default options or arguments are assigned.

     Each option begins with the '-' character.  The options  are
     described at greater length in the next section.

     depth2time_ray options fall into two  categories:  switches,
     which are either present or not present, and settings, which
     have a numeric or string value.

     The switches which depth2time_ray currently recognizes are:

     -h   Print helpful information (a command summary) to  stan-
          dard error. If -h is not present, the usage information
          is not printed.

     -V   Print a verbose list of  all  program  arguments.   The
          list     is     printed     to     a     file    called
          depth2time_ray.integer, where 'integer' is  an  integer
          that  makes  depth2time_ray.integer  a unique filename.
          If -V is not specified the verbose list is not created.

     There are eight settings:

     -dt time_step_size
          Use time_step_size as the size of the time step  incre-
          ment.   The  default  value is 1.0 millisecond per time
          interval.  If -dt is present but no real number follows
          it or if -dt is not present, then the value of the time
          increment is assumed to be one millisecond.   That  is,
          the output xsd values are computed from the travel time
          using the relation xsd_value = TravelTime*2000/dt.

     -ismv vertical_smoothing_steps
          Apply  vertical_smoothing_steps  applications  of  a  3
          point average to smoother to the velocity in the verti-
          cal direction.  If -ismv is not specified or if  it  is
          specified  with no value, then no vertical smoothing is
          applied to the velocity.

     -ismh horizontal_smoothing_steps
          Apply horizontal_smoothing_steps applications  of  a  3
          point  average  to smoother to the velocity in the hor-
          izontal direction.  If -ismh is not specified or if  it
          is  specified with no value, then no vertical smoothing
          is applied to the velocity.

     -N input_xsd_file_name
          The input file name.  If no name is specified, then use
          standard input. The xsd segments are used as the start-
          ing surfaces for rays that are propagated to  the  sur-
          face  (z=0).  The  travel  time computed along the rays
          from   the   segment   are   output   into    the    -O
          output_file_name  as  a  two  way travel time using the
          time increment set by the -dt dt argument.  If no input
          segment  filename  is  given,  depth2time_ray will read
          input from the standard input.

     -Nsteps nsteps
          defines the number of Runga-Kutta steps to be taken for
          each level in the velocity model. (default =1)

     -O output_file_name
          The output xsd file name.  If  no  name  is  specified,
          then  the  output  is sent to the standard output.  The
          horizontal values (x values) of the  segments  are  the
          surface  arrival  locations  of the rays from the input
          segments.  The vertical (z values) values are  the  two
          way  travel  time along the rays from the original seg-
          ments in milliseconds.  The  xsd  vertical  coordinates
          are  computed by dividing the 2 way travel time in mil-
          liseconds by the time increment dt set by the -dt  set-
          ting.

     -seg segnumber
          Define the number of the xsd segment to be  used  as  a
          starting  horizon  for rays.  If no segment is defined,
          then all segments will be used as  a  starting  horizon
          for rays.

     -VEL velocity_file
          Defines the name of the usp velocity model to be  used.
          -VEL is a required input parameter.

     When more than one option is used, they should be  separated
     by a blank space.  e.g. -O out_file -N in_file


depth2time_ray OPTIONS

     This  section  provides  a  more  detailed   discussion   of
     depth2time_ray command-line options.

     The option names in the following list are  in  alphabetical
     order.

     -dt time_step_size
          Use time_step_size as the size of the time step  incre-
          ment.   The  default  value is 1.0 millisecond per time
          interval.  If -dt is present but no real number follows
          it or if -dt is not present, then the value of the time
          increment is assumed to be one millisecond.

     -ismv vertical_smoothing_steps
          Apply  vertical_smoothing_steps  applications  of  a  3
          point average to smoother to the velocity in the verti-
          cal direction.  If -ismv is not specified or if  it  is
          specified  with no value, then no vertical smoothing is
          applied to the velocity.  Applying a  large  number  of
          smoothing  steps  aproximatly smooths the velocity with
          gaussian weights.


     -ismh horizontal_smoothing_steps
          Apply horizontal_smoothing_steps applications  of  a  3
          point  average  to smoother to the velocity in the hor-
          izontal direction.  If -ismh is not specified or if  it
          is  specified with no value, then no vertical smoothing
          is applied to the velocity.

     -N input_file_name
          Defines the name of the input xsd file to be used as  a
          starting horizon for rays.  Any valid name may be used.
          An absolute pathname such as /usr/data/xsdfile.1  could
          be  used.   A relative pathname such as xsdfile.1 could
          also be used.  The user must have read  access  to  the
          input   file.    If   no   name   is   specified,  then
          depth2time_ray reads input from standard input  (typing
          from the terminal).

     -Nsteps nsteps
          defines the number of Runga-Kutta steps to be taken for
          each  level  in  the  velocity  model.  That is, if the
          velocity model is given with 75 foot steps in the vert-
          ical  direction, and nsteps = 10, then each Runga-Kutta
          extrapolation will be taken  over  a  distance  of  7.5
          feet. If -Nsteps is present with no value or if -Nsteps
          is not present then nsteps is set to 1.

     -O output_file_name
          Defines the name of the output xsd file.  Either  rela-
          tive  or  absolute  names  may be given.  The user must
          have write access to the proposed output file.   If  no
          output  file  name  is given, then depth2time_ray sends
          the output to the standard output (screen).

     -seg segnumber
          Defines the number of the xsd segment from which traced
          rays  are  to  be  output.   If  no  segment  number is
          defined, then all segments will be the source  of  rays
          to be traced.

     -V   This "verbose" option is off by default.  Turning it on
          provides  a  way  to verify that the correct flags were
          passed to depth2time_ray.

     -VEL velocity_file
          Defines the name of the usp velocity model to be  used.
          -VEL is a required input parameter. The grid defined in
          the velocity file is the  computational  grid  used  by
          depth2time_ray.

FrameMaker
     For more information describing the ray tracing algorithm see the
          document                                             at
          /home/gp14/zdjv02/mbs/src/cmd/smooth/mapmig.fra



LIMITATIONS AND EXTENSIONS

     depth2time_ray accepts xsd 3, 4, and 5 column formats  where
     the  first  column is "rec" the second is "trac" and the 3rd
     is "samp".  Columns 2 and 3 are used as the initial horizon-
     tal  (x)  position and surface arrival time. Columns 4-5 are
     the initial x and z direction cosines of the ray.   If  more
     than  half  of the z direction cosines (column 5 values) are
     nonzero then columns 4 and 5 are used to set the initial ray
     directions.

     Restrictions:
          depth2time_ray is column oriented.


NEW FEATURES

     This is version 1.0 of depth2time_ray.  No changes have been
     made.




BUGS

     depth2time_ray is in the early stages of development.   Your
     feedback is appreciated.  We want to know about any bugs you
     notice.  Bugs include not only cases in which depth2time_ray
     incorrectly   ray   traces   xsd   segments   but   also  if
     depth2time_ray fails to issue a warning when it ought to  or
     crashes.  We  especially  want  to  know  if  depth2time_ray
     crashes for any reason.  Comments  on  the  readability  and
     accuracy of this document are also welcome.

     If you find a bug in depth2time_ray, first consult the  list
     of  known bugs below to see if it has already been reported.
     Also check the section entitled "Limitations and Extensions"
     above  for  restrictions  that could be causing the problem.
     If you do not find the problem documented in  either  place,
     then send a report including

     1.  The   operating   system   and   CPU   type   on   which
         depth2time_ray is running.

     2.  The version of depth2time_ray.
     3.  A brief description of the bug.

     4.  If possible, a small sample program showing the bug.

     The report should be sent to the following address:

          dvasicek@trc.amoco.com


     Highest  priority  will  be  given  to  bugs   which   cause
     depth2time_ray to crash.

     Bugs: The following is a list of known bugs.

     1.  Rays  that  reverse  in  the  vertical  direction   die.
         depth2time_ray  passes  over the velocity model from the
         bottom up only once in an effort to  allow  optimization
         on  vector  and  parallel  computers.  Rays that reverse
         direction require revisiting previous levels.  Such rays
         make  optimization difficult.  Computation for rays that
         reverse direction stops at the point where the ray  rev-
         erses.   Program  xsdclean  is provided so that the user
         can remove rays that reverse direction.

     2.  Outside of the region of  definition,  the  velocity  is
         assumed  to  have the value of the closest defined velo-
         city.  Rays are propagated through this  extended  velo-
         city  field  and may travel significant distance outside
         of the region of definition of the velocity field.  Pro-
         gram  xsdwindow  is provided to allow the user to remove
         points from xsd segments that  are  outside  of  a  user
         prescribed window.




CONCLUSION

     depth2time_ray was  designed  by  Daniel  Vasicek,  Research
     Associate  at  Amoco  Production  Company,  Box 3385, Tulsa,
     Oklahoma 74102.


COPYRIGHT

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









Man(1) output converted with man2html