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