Lamont 4D Software Module Descriptions
draw a 3-D coordinate axis system for the top object
of the current geometry viewer
This module draws a 3-D coordinate axis system over the
current object within the geometry viewer. Axes X, Y and Z are
represented by cylinders. The radius of the cylinder can be
defined. The arrows at the end of the each axis are represented by the
cone. The module first picks the min and max x, y and z extents of
the current top object in the current geometry viewer. The axis range
is constrained by [minx, maxx], [miny, maxy], and [minz, maxz]. The
annotation font is given by the font number parameter. Two font sizes
can be defined, one is the font size for character "X", "Y", and "Z"
to mark each axis. Another is the font size for the ticks.
extract skeletons of 3D objects
This module applies the algorithm developed by Y. F. Tsao
and K. S. Fu in "A parallel thinning algorithm for 3-D pictures".
The input is an 3D AVS field any data, any coordinate 1-vector
The input field contains 3D objects superimposed on the background.
Input data is preprocessed into binary data, i.e. any nonzero data
will be 1 otherwise will be zero. Skeletonization is performed in
3x3x3 windows, the output will be a series scatter points which
can be connected together in spheres or a line representation.
extract inline, cross line or time slice
from a volume
This module replaces the AVS orthogonal slicer module to do
slicing of a 3D seismic volume. Generally, the seismic volume is a
cube of inline or cross lines. Thus the slice is done by referring
inline number, cross line number or time slice as desired. Thus this
module lets the user to select inline, cross line or time slice to output.
The module requires two inputs, one is the 3D volume and another is
project information for that volume. The project is used to convert
between index number of the volume and inline, cross line and time
slice number. Also it will provide the orientation of inline, cross line
and which direction that inline is shot.
spectrum estimate by using autoregressive
and the moving average approach
This module computes spectrum of 1D/2D/3D field data which
1-vector any data except double. When input is 1D, it is assumed
to be a time series, when it is 2D, spectrum is computed along
i direction, each signal is extracted for each j (for j=1, dim[1]),
when it is 3D, time series is assumed to be extracted for each
i (i=1, dim[0]*dim[1]) along K direction.
compute low-frequency trend from sonic and density logs
exported from module export_logs
This module computes the low-frequency trend from sonic and density
logs exported from the module export_logs.
Nonlinear Inversion of Post-stack 3-D seismic data using an
even-determined approach.
Nonlinear Inversion of Post-stack 3-D seismic data using an
even-determined approach. Inversion of 4-D seismic datasets can be
realized by using same reference and initial impedance model derived
from acoustic logs.
Nonlinear Inversion of Post-stack 3-D seismic data using an
over-determined approach.
Nonlinear Inversion of Post-stack 3-D seismic data using an
over-determined approach. Inversion of 4-D seismic datasets can be
realized by using the same reference and initial impedance model
derived from acoustic logs.
matching two 3-D seismic volumes using an exhaustive search of possible
phase angles which minimizes the absolute difference between seismic
traces between the two volumes.
This modules matchs two 3-D seismic volumes using an exhaustive
search of possible phase angles which minimizes the absolute difference
between seismic traces between the two volumes.
Matching two seismic volumes by changing phase rotation angle of
seismic traces in one volume to match the other. The algorithm
is implemented in a trace by trace matching fashion, local operators
are used instead of using a global phase matching operator.
This module does constant phase matching between traces within two oriented seismic
waveform volumes. User is asked to specify a trapzoidal frequency window defined by
four frequencies, whether zero- or minimin-phase wavelet should be used, and a
phase rotation range with phase interval specified. Then this module will generate
two wavelets for each seismic grid location, one with zero-phase, which will be used
to filter the trace to be matched to (or destination), and the other with specified
phase angle, which is used to filter the trace (or source) to match the destination
trace at that location. The module computes the difference trace and an averaged
absolute L-1 distance for each trace at each phase rotation angle. Once the phase
range is completed, the module will determine the phase angle with respect to the
minimal distance at that location, and then use the determined phase angle to match
the two traces.
switch axis i.e. field rotation
This module switches between two axes, such as from X-Y-Z oriented
dataset to X-Z-Y oriented dataset, in this case Y become Z and Z
becomes X after switching.
create labels/characters that are really geometries
This module produces labels that are geometries. They can be scaled,
rotated, and translated. Other geometric operators work as well, such
as color, perspective, and material properties.
add data value to each (x, y, z) point
This module adds a constant data value to each data points. This
module is useful when some module needs data values to colorize
vertices such as field to mesh, but input data has no values --
only geometry information there e.g. seismic horizons.
amplitude normalization of two seismic inputs
This module corrects the seismic amplitude of two seismic
volume according to their histograms. The implementation of the
normalization is by using bandpass filtering, shifting and scaling.
All operations must be consistently applied to the whole volume not a
partial volume. Right now all parameters are controlled by the user.
An optimization process is not yet implemented. For each operation
except the bandpass you have specify which volume is going to be
applied to. The shifting and scaling operation are accumulative, but
the bandpass is not. If you specify new bandpass range, all operations
applied before will be lost, it will start from the beginning.
put ticks and annotation on bounding box
This module puts ticks and annotation on the bounding box.
When it is used together with draw bound module, the module picks the
geometry range of the current top object. Ticks range default are
picked x, y, and z range, but they can be changed when real annotation
is different display range.
draw an arrow between two picked positions
This module draws an arrow between 2 picked position. To make
this module work, at least a valid object must appear on the screen,
otherwise it will do nothing. The arrow can be at either ends or both.
Width parameter will control how thick it will be, and red, green and blue
mixing will give color of the arrow. The pick toggle is important here, when
it is turned on, picking is enabled, turning off disable picking, when
an arrow is drawn on the screen, a new object is created in AVS geometry
viewer's object list window, maximum arrows are 512. So after you have
a new arrow drawn, turning off picking, changing all other parameters to
make it look like what you want then proceed to next picking.
draw a arrow maker on map view, i.e.
X-Y plane
This module draws a arrow from position (x0, y0, 0.0) to (x1, y1, 0.0).
Arrow can be drawn at both ends when left and right arrow toggle are turned on.
Line width is changeable. Also label can be put at the both ends.
change background of the current scene
This module is a control module which can change
background of the current scene. The background color is
determined by triple float , R is red color component,
G is green component and B is blue component.
pick boundary of regions for a 2-D data field
This module picks the boundary of all closed regions and draws
it. This module takes a 2-D irregular field, checks out points whose
z has a bad z value. Complete polygon logic is used to find the closed
region, then pick out the boundaries. The boundary will be drawn as
lines -- line color can be chosen. The color can be either a single
color defined by (r, g, b) or a colormap which will colorize the line
segment by data values at the points on the line. This module is very
useful to pick the boundary of reservoirs.
visualize 3D seismic in the form of brick excavation
This module is a replacement of the AVS module "excavate brick" which
does texture mapping and thus does not fully using hardware rendering.
"brick visualizer" will do almost same thing like "excavate brick"
module, but it does real rendering in geometry viewer. Thus, it is much
faster. But if the input dataset is very large, it will end up like
"excavate brick" module because more polygons involved in representing
data points on the all outermost surfaces of the excavated brick from the
volume. Thus for very big dataset, it is advised to downsize input
by some factor in order to get performance.
render a series of scatter points into
bubbles
This module render a series scatter points (x, y, z, data)
into bubble spheres. The input data is 1D 3 space irregular 1-vector
field. data field will used to scale radius and colorize it. Colormap
is optional, red, green and blue will (R, G, B) of single to colorize
every bubbles. The radius parameter is used to scale radius, the
largest data value has radius this value, every point has data
value <= largest will be scaled by (data/MAX)*radius.
contouring a surface
This module does contouring of an input surface, the input
surface is a 2D AVS field which can be UNIFORM, RECTILINEAR, and
irregular n-space n-vector field. When the input is 2D n-space uniform
n-vector field, x and y coordinates will be index of data points, and
at least one data component must be present. This data component will
be z component for the contouring. For a 2D n-space rectilinear
n-vector field, the x and y coordinates will be constructed from the x
and y component of the input point array, and the z component will be
constructed from the first data component of the input -- thus one
data component must be present for contouring. If the input field is
2D n-space irregular n-vector field, i.e. 2D data in 2-space, then x
and y will be constructed from the point array of the input field and
the z component will be constructed from the first data component of
the input field -- thus at least one data component must be present in
the input field. When the input field is 2D 3-space irregular n-vector
field, then the x, y and z components will all be constructed from the
input point array of the field. Thus contouring will be applied to
the Z coordinate of the surface. In summary, this module is used to
contour a real surface or a slice.
operation on coordinates of an irregular field
This module performs math operations on coordinates of an
irregular field. For now, only 4 basic operation are implemented.
They are: adding a constant to the coordinates, subtract a number from
the coords, multiplying the coords by a factor, or the coords are
divided by a constant.
convert from one coordinate system
to another coordinate system
This module transforms one coordinate system to another
coordinate system such as from real world coordinates to index
coordinates, index to real world coordinates, index to internal
coordinates, and internal coordinates to index. Index coordinates are
the index of data -- base of index coordinate is 0. Index coordinates
are mostly used for uniform fields, such as a 3D seismic dataset.
Internal coordinates here are internal inline, cross line and time of
seismic data. Real world coordinates are the real world coordinates of
the survey grid of a 3D seismic data set. This module takes two
inputs. One is a field 3-space irregular AVS field. This field
contains (x, y, z) coordinates for each data points -- data can be
included or not. The other input is the project which is used to do
transformation because all the transformation matrices are contained
in this input.
copy horizons from one UNIX database to another one
This module copies interpreted horizons outputed by "horizon dump" module
from one UNIX database to another database. UNIX command cp will not work on
UNIX DBM generated file. Thus to move horizons from one file system to another
this module must be used.
create a tdc well data for module such as
read tdc well. (this is a stand alone module)
This module combines Landmark dumped well direction file and
conversion file (depth to time) into a tdc well file which can be read
in by the module read tdc well.
combine well position, time-depth conversion table
and well log data into another formatted file
This module combines well position file which contains (dx, dy, md)
information of many wells, time-depth table which contains time-depth pairs
for many wells and well log file into one formatted file which will have
well position, TDT and well log together. The output file will be used by
several 4D modules such as "seis view", "well handler", etc.
crop a 3D volume
This module does cropping of a 3D volume like the AVS crop
module, but it is not like AVS crop because it will update project
information for this volume as well. Thus, this module takes two inputs,
one is the AVS 3D field, another one is the project information for the
input volume. After cropping, the project information will be updated
and outputed. So the module generates two outputs, one is cropped
volume and the other is the updated project information.
cross correlation between two field datasets
This module calculates the cross correlation between 2 AVS
field datasets and output shifted dataset. The input field 1
(rightmost port) will be standard dataset. The input field 2
(leftmost port) will be dataset going to be changed according to
result of cross-correlation. The cross-correlation will give optimized
shift amount so that 2 datasets will be mostly matched. Shift
direction can be changed by the shift direction parameter, for 1D
data, only I is available, for 2D I and J are available, for 3D, I, J
and K are available. Choosing K means shifting will along K direction.
max shift parameter will apply some constraint on amount of shift this
value is default max shift possible along specified direction. Say
shift direction is K, then max_shift = dim[2] / 2. because cross
correlation on 3D volume will be pretty time consuming, also if data
has very good signal / noise ration, then a portion of data can be
used to do cross correlation analysis. This is controlled by start
from which defines start cross correlation from which samples and
window length which is a window to select data for analysis. The
default start from is zero. The default window length is the length
of the dimension selected.
draws a 3D cube
This module draws a 3D cube. The cube size is defined by
(minx, miny, minz) and (max, maxy, maxz). These pairs (x, y, z)
specifies two diagonal corner coordinates.
down size the input 3D uniform field
This module downsizes the input 3D uniform field. It will create
a rectilinear field.
extract a slice from a seismic cube
in real world coordinates
This module reads in a uniform seismic cube data field,
extracts a slice specified by the slicer level parameter. The slice
direction is specified by the toggles slice I, slice J, or slice K.
The real world coordinate (x, y, z) is connected to each output data
points. Thus lower left, lower right, and upper right corner real world
coordinates must be defined in order to calculate real world
coordinates of output data points.
mapping seismic attributes such as amplitude, reflection
strength, density, pressure to a fault or any horizon
surfaces
This module maps seismic attributes to a fault plane or any seismic horizon
such as amplitude, reflection strength, impedence, velocity, pressure,
porosity, density, gravity, thermal properties, etc. The module take 2 field
input, the first one (left most input port) takes a seismic cube which define
seismic attributes. It is a 3D uniform field data, data type must be byte.
Second field input (right most input port) is a geometry which defines
surface of the fault plane or any seismic horizon. For uniform input
seismic cube, lower left, lower right and upper right corner (x, y) coordinates
must be specified to calculate real world coordinates of each grid point
inside the cube. point interpolation is used to pick data points and put it
to corresponding point on the surface. The output from this module is a
2D irregular mesh which can be visulaized by field to mesh module or if
there is any physically unmeaningful data points on the surface, the
point 2 surface module can be used to render this surface without including
any null data points.
slicing a cube field by an arbitrary surface such
as seismic horizon, fault plane in index coordinate
system
This module extracts seismic data, reflection strength, or any
geophysical data from a data cube according to a known horizon slicing
through the cube. Horizons are such things as seismic horizons, fault
planes, or any interesting surfaces such as temperature pressures,
etc. Because the cube data is generally uniform field data, each data
point is indexed by the (i, j, k), but the horizons are commonly
defined in the real world coordinate system (x, y, z). If the cube
data and the horizon data are not in the same coordinate space, the
conversion is necessary to make them consistent. real world to index
module can be used to convert real world coordinates (x, y, z) to
corresponding index (i, j, k) (refer real world to index module).
slicing a cube field by an arbitrary surface such as
seismic horizon, fault plane in real world coordinate
system. The output is in real world coordinates or
in index coordinate of the volume.
This module maps seismic attributes to a fault plane or any
seismic horizon such as amplitude, reflection strength, impedance,
velocity, pressure, porosity, density, gravity, thermal properties,
etc. The module take 2 field input, the first one (left most input
port) takes a seismic cube which define seismic attributes. It is a 3D
uniform field any data type. Second field input (right most input
port) is a geometry which defines surface of the fault plane or any
seismic horizon. In order to find out whether points on the surface are
in the volume or not. The project description file of the input volume
must be provided.
clips data to a range
Clips input data to the range [lower, upper] inclusive. Any
data less than lower is clipped to zero, any data larger than upper is
set to zero.
cut out a time-window segment of data along a surface
This module extracts data from a volume according to the input
horizon and specified window length. The output data will be
sandwiched between two surfaces -- the top surface is the input
surface moved up half the window length, and the bottom surface is the
input surface moved down half the window length. The input data has
time or depth in dimension 3, if it is not, you have to make it that
way by using the "switch axis" module. The output has the same
dimensions of the input, and has the same data type. All data points
outside of those two surfaces will be set to be zeros. If the surface
is not complete, i.e it contains holes (defined by z values of the
input surface, for example -999.0, usually less than zero), then the
whole trace at that position will be zeroed out. This module will not
consider any z coordinate of the input surface when its value is less
than 0 and larger than dim[2] - 1 of the input volume.
calculate data value histogram of an input
This module calculates the data value histogram of the input
field. The output is 1D uniform integer field which can be displayed
as a histogram by the graph drawing module.
a generic seismic data loader
This is a very generic module to load seismic data into AVS for future
analysis. Input data can be following data format, SEGY, SEGD, AVS field, Landmark
CD format (which is called Spread Sheet format by us), AVS field, and in-house
4D data format (which is AVS field but have some information embedded in field
comment area). Right now except SEGD, all of other format are supported.
combine two fields into one big field
This module pastes field 2 to the end of field 1.
clip data between low and high thresholds
This module thresholds a dataset by applying low and high
thresholds on it. Any data value less than low threshold is zero, any
data value greater than high threshold is clipped to high threshold.
perform various digital filtering to the data
This module performs various digital filtering such as low
pass, high pass, band pass and notch. Input field can be 1D/2D/3D any
type, scalar. Sampling direction can be selected. Say for 3D, I, J or
K can be the filtering direction. Sampling interval must be provided
to calculate maximum frequency of signal.
dilating boundary of geometry objects
This module implements a dilation algorithm. Two rules are
used in this program, majority or anneal. In case majority, when
number of neighbor of the cell exceeds (half size of box - 1), then
this cell will be alive, otherwise it will be dead. In case of anneal,
when number of neighbors is half size of the box, the cell will be
dead otherwise if number of neighbor > halfsize of the box - 1, then
the cell will be alive. If # of neighbor < halfsize of the box - 1,
the cell will be dead.
downsize a 3D volume
This module does downsizing of a 3D volume like the AVS
downsize module, but it does several things differently. First
downsizing can be different on each direction. Also downsizing can be
point sampling or averaging. For 3D seismic data, it is usually
desirable to not downsize on the time direction. This module will also
update the project for the input volume.
draw all well paths in the geometry viewer
This module draws all well paths in polylines. Well path
geometries are passed over by the read all well path module. A mark
can be put at the well position of the well at the surface. Well name
can be labeled at the well position as well if label size is not zero.
rendering seismic survey blocks in lines
and block numbers as labels.
This module renders seismic survey block lines and block
numbers as lines and labels. The block lines and numbers are meta
files generated by Landmark.
draw a volume bound for the top object of the
current geometry viewer
this module draws the volume bound for the top object
the current geometry viewer. The bound geometry range
is picked by the module, i.e. min and max x extents,
y extents, and z extents. The bound can be colorized
X-Y, X-Z, Y-Z planes can be meshed.
draw seismic survey grid, i.e a rectangle
This module draws a seismic survey grid, generally a
rectangle. (x, y) coords of the 4 corners of the grid are provided by
the grid file which is 2 column ASCII text file.
detect edges of a 3D dataset
This module detects edges of a 3D dataset. 3 choices are
provided -- detecting all edges, horizontal, or vertical edges.
export logs from the well file for a specified well name and
time-depth conversion table
This module export multiple logs from the input well file which
is formatted by the module . When the well file name is
provided, the module will initialize the well name list by all well names
in the input file, then when the well name is selected, the log list and
and TDT list will be updated.
extract data along a well path
This module extracts data along a wellpath, well path is
defined in the input "well path", which is a 1D 3-space irregular
float, 3 spaces are coordinates x, y and z of measured points.
This input can be from the output of the "read tdc well" module
which can read one well from an input file, another input is
"input data" which is usually 3D uniform any data 1-vector field,
it can be seismic volume, impedance volume, etc. This module will
find first all intersected points of well path with the volume,
then data at intersected points will be extracted and outputed.
This module requires another file which is "project description file"
which is used by many 4D modules. That file can be generated by several
modules such "data loader" module, "project description" module,
and "subproject desc create" module. Because the well path is
usually defined in real world coordinates (UTM) but the volume
is usually volume which is defined in index world coordinates
that is simply (i, j, k) (integer indices). So transformation between
real world coordinates and index coordinates must be done
before data extraction.
extract horizon from a landmark dumped horizon files
This module extracts horizon (x, y, z) from a field input.
read field will read a landmark dumped horizon file or horizons file
outputed from "read horizons" module and feed into this module.
Input to the module can be 2D 3-space or 2-space irregular n-vector field
float format. When it is 3-space, AVS field will look like
x y z v1 v2 v3 v4 v55 ....
extract a slice from a 3-D seismic cube
Extract a slice from a 3-D seismic data cube, the output is an
AVS 2D irregular field. (x, y, z) will be corresponding indices of
each data point. This module is coded for the point_2_surface module
or any module that needs coordinate information in order to put in
right position in space.
extract a seismic trace from a 3-D seismic cube
Extract a seismic trace from a 3-D seismic data cube. The data
cube is an AVS 3-D 3-space uniform data. X-Y plane is the time slice.
field data crop
Field data cropping. Field can be any dimension (1-3), any
data and any coordinate.
math operation between 2 fields
This module performs some operation between two fields or on
field 1. It contains most operations of AVS field math module
but implementation is a lot different.
convert any AVS field to the uniform field
This module converts any AVS field into the uniform field. The
output has the same dimensions of the input field, and same data type.
The only difference is that the output is uniform. This is written for
some modules which require the uniform AVS field.
simulated fluid migration of oil and gas
This modules simulates oil and gas migration inside a 3-D
seismic data cube. The input data file is connectivity of possible
pathway of migration. This can be obtained by applying a group of
modules to the original reflection strength data, such as neighbor
average, median filter, and region grow. This module will
automatically identify all connected objects inside the cube, and seed
fluid from a initial position. The particle (small sphere) is
traveling by searching neighborhood points then, an arbitrary position
is chosen to be next move. "buoyance flag", if set, will release
particle which couldn't find next position until it meets another
object.
calculate power spectrum of an AVS field
This module computes power spectrum of an input AVS field. The
input field can be 1-D, 2-D or 3-D field. When it is 1-D field, it is
assumed to be a series, and its power spectrum is calculated. If it is
2-D field, power spectrum is computed for each i (i=1...dim[0]) which
constructs a series s[j] (j=1...dim[1]). If it is 3-D, the power
spectrum is computed for each i (i=1...dim[0]*dim[1]) a series s[k]
(k=0...dim[2]) is constructed, then the power spectrum is computed
based on this constructed series. The output is corresponding
1-D/2-D/3-D 1-vector float uniform field.
stratigraphic visualization
This module does stratigraphic visualization, the input is a
set of horizons for a 3D seismic dataset. The horizons are usually
autotracked by the "horizon tracker" module. Then identified by the
"horizon identifier" module, each horizons will be displayed in unique
color. Also horizons can be output from the "horizon dumper" module.
region growing around seed points
This module performs region growing around the seed points.
Input data must be 2D or 3D uniform scalar any data field. search low
and search high parameter will define dynamic data range to search a
seed point, once this seed is picked, a box is surrounded this points,
each points inside this box will be checked against the dynamic data
range defied by grow low and grow high, if data point is inside range,
this point will be treated as a new seed point and growing on top of
it, this will continue until all data points are searched.
histogram matching
This module implements histogram matching between two input
fields. The histogram of field 1 which is right most port will be the
desired histogram, and the histogram of the field 2 will be matched to
it. The matching is exact.
histogram equalizer
This module performs histogram equalizer of 2/3D data, input
data can be any data (byte, short, int, float, double), output field
is 2/3D scalar byte field. Input field can be uniform, rectilinear, or
irregular. The purpose of this module is to enhance contrast between
objects.
horizon interpretation of 3D seismic data
This is a module to do horizon interpretation of 3D seismic data, this
module internally building a network when it is dragged to the work space.
The network includes read field, colormap, horizon dump, graph viewer and
image viewer 4 modules. All ports are properly connected, so don't disconnected
port connection.
identifies each individual horizons from autotracked
volume and saves them to the horizon database
This module searches each possible individual horizon from the
autotracked volume which is produced by the "horizons tracker" module.
The identified horizons will be saved to the UNIX database. In order
to save the horizons into the database for other modules such as "read
horizons", "horizon dumper", etc to access, the correct project
description file, and tracking mode of the autotracking must be given.
draw a line on the displayed images
This module is a utility module which draws lines on displayed
images. The line can have different thickness which is set up by the
parameter "Width", the line color is set by combination of "Red",
"Green" and "Blue". The drawing can be removed by pushing "clear".
Before drawing, "set pick mode" must be pushed. The combination of
shift key and button 1 of the mouse will terminate current drawing.
After termination drawing, you can start another drawing from
anywhere.
pick on the displayed image and output picks
This module is a utility module which can pick on the image
and connect all picks into a line. The all picks will be output into
an AVS field 2-D 2-space 0-vector irregular integer. This field
contains (x, y) pairs of all picks.
automated horizon tracking of
a 2D seismic section or 3D volume
This module provides capability of automated horizon tracking.
Input is 2-D or 3-D field uniform 1-vector any data. The output is
corresponding field 2/3D 1-vector uniform byte. In the output field,
if the data at (i, j) or (i, j, k) is 255, that indicates a picking at
that position, otherwise no.
add or subtract low-frequency trend from a 4D field
This module adds or subtracts the low-frequency trend from a
4D field.
save horizons in an AVS field into the database
This modules imports horizons in an AVS field file into the
database for other 4D modules especially "horizon dump" module
to use. The input AVS field has special requirements, it must be
AVS field 2D 2-space n-vector any data format. The point array of the
input field contains real world [x y] of all points for horizons.
These horizons are supposed to be picked from the same volume, thus
they have same dimensions. The data array contains all times of horizons
in microseconds, thus first component of the data vector is
horizon number 1, and etc. Also the project for the volume from which these
horizons were interpreted must be provided because the project information
about the volume is saved together with the horizon itself.
convert index (i, j, k) to real world
coordinate (x, y, z)
This module converts index coordinates (i, j, k) to real world
coordinate (x, y, z). For example, the "extract slicer" module can
extract slice from a cube, which outputs a slice with index coordinate
(i, j, k) information associated with each data point extracted. If
well data such well path, well log data needs to be displayed in the
real coordinates with seismic data together, then index coordinates of
seismic data must be converted before displaying.
to do intersection of two volumes
This module does intersection of two volumes and generate two
new volumes. For 4D seismic analysis, it is usually desirable to
compare two volume that has the same grid, and same number of
dimensions. But for multiple 3D seismic data, it is often that one
volume contains a lot of zero traces or bad traces, but another volume
has those traces present. When to do amplitude normalization,
statistic analysis will be biased because of number of nonzero data
points are different, thus we need to make the two volumes has same
number of zero data points in order to compare them. So this module
will check against each for these zero points -- if zeros appear in
one volume, then corresponding position in the another volume will be
zeroed too.
mark a well position by its well name
This module labels a drilling well by its well name which is
label of the input well path geom. well path geom can be obtained by
read tdc well. This module is mainly used in conjunction with the well
extrusion module.
draw a segment of line
Draws a line segment which is defined by (x0, y0, z0) and (x1,
y1, z1). The line color is given by combination of red green and blue.
calculate local statistics using upto a 9x9x9 cube.
This module will compute a local statistics of the users
choice for locality cube of upto 9x9x9. Available calculations are
variance, mean, and a correlation number based on a generalized
coherence concept, hence has a range of 0-1. Also included is a
variogram-like number for the cells in the cube.
extract seismic section by well path and mapping log data on it
This module extracts data along a well path, data is extracted
either in I or J direction, extracted data will be whole section
not just data along the well path, if you want to only extract data
along a well path, the module "extract data along well path" will do
it. Extracted data will be displayed with well log together. Thus
this module is useful to compare data with the well log. Because
the well path can be arbitrary not necessarily up and down, so the
picked data will be arbitrary section not orthogonal section.
put a text label at any position (x, y, z)
The module make label puts a label at any position of the real
world (x, y, z). Title toggle specifies if the label is a title, if it
is, it will put in absolute position within range -1 =< x <= 1, -1 =<
y <= 1, and -1 =< z <= 1. If it is not a label, the x, y and z coordinates
can be any float. If background is turned on, both foreground text and
the background rectangle that encloses the text are drawn. If drop is
turned on, then a one-pixel drop-shadow highlight is added to the
text. This makes the text stands out against a background of similar
color.
mark all wells at specified position
This module marks all wells at the specified depth position.
Two inputs for this module are generated by read all well path module.
The mark is a colorized sphere whose radius is user defined. Well name
can appear too if label size is not zero. Color for the mark and label
can be user defined too by choosing red, green and blue components.
Font size for the well label is available to choose.
put a spheric mark at the picked position
This module puts a spherical mark at the user picked position
Picked coordinate is either in model space or closet vertex coord from
the picked point. Pick choice will turn on either one. When you want
mark attached to the geometry, you better use by vertex which is the
default. Sphere radius and color can be chosen. The toggle pick will
turn on or off picking -- when you finished picking, better turn off
picking, otherwise, every time when push left mouse button, picking
will be enabled by AVS kernel because AVS assume left mouse is for
picking object.
multi slicing a cube by a defined geometry surface
This module performs multi slicing of a data cube. The slicing
plane is an arbitrary, thus it can be any plane defined
by a mesh, but this mesh (x, y, z) can be inside or outside
of the cube. Because the data cube is generally uniform 3-D
field data, i.e. it is index by node index (i, j, k). But the
surface is commonly defined in real world coord (x, y, z).
In this module, each node point crossing with slicing surface
is converted to real real world coordinate. This requires
project description file be provided for conversion between
real world coordinates and index coordinates.
median filtering on 2D or 3D data
This module performs median filtering (a kind of blurring) on
2D or 3D data. Input data can be char, short, int, real, double. It
can be uniform, rectilinear, or irregular. In the 3D case, filtering
is performed slice by slice. The "filter size" parameter is an integer
which defines size*size adjacent points which will be sorted together.
The "average size" parameter will decide how many points to average.
For example, if the filter size is 3, then the averaging box size is
median point index is 4, and there are 4 points on both sides of this
median point. If average size is 2, then point 2, 3, 4, 5, 6 will be
averaged to be output for point 4.
modify special extents of the input field
Reset special extents of the input field. The module first
reads original extents and displays them, then user is free to change
them.
morph one volume to another volume
This module generates intermediate volumes when morphing one
volume to another volume. The output will be files, all files have the
same base file name and affixed by the frame number. The number of
frames can be specified.
multiple curve slicing
This module does multiple slicing by using a surface. The
number of slices and slice interval are controlled by first slice z,
last slice z, slicer increment and delta z. But the function of this
module can be also be accomplished by the "curve slicer" module,
"coord op" and the "point to surface" module -- by translating z
coordinate in "coord op" module and rendering by the "point to
surface" module. However the object name in "point to surface" module
needs to be changed for each translation. This module just provides a
convenient way to do multiple slicing in index coordinates.
generate multiple slices of uniform cube data
This module generates multiple slices from cube data. The
input is AVS 3D 3-space 1-vector data. Slicing is orthogonally
performed on the dataset. Slicing can be performed on index I, J or K.
The start slicer parameter specifies the first index number which the
slice plane is cuts through. The slicer increment parameter specifies
that slicing is performed every increment index starting from the
start slicer index number.
downsizing data by averaging
This module downsizes the input data by averaging all data
points in the selected window. For example if the input data is 3D,
and the factor is 4, then every 64 points will generate a output
point.
draw a north arrow mark on map view, i.e.
X-Y plane
This module draws a north arrow on the map view plane, i.e.
X-Y plane. The arrow is defined by (x0, y0) and (x1, y1) which are
the start and end coordinates of the arrow, the length of the arrow is
determined by the distance between point (x0, y0, z) and point (x1,
y1, z). Also this module will draw the east-west bar with N-S
together. It will be a cross but only north has the arrow attached to
it. The cross is assumed to be only on the XY plane, so the z
coordinate for two end points will be the same.
orient a source 3D seismic cube to a destination grid
the orientated seismic field is output in form of avs
field. At the same time, a new destination field is
output, this one only contains overlapping area.
A subroutine named orient_seismic has been used to
take two non-coincident 3-D seismic fields and interpolates one of the
fields to coincide with the other spatially and in terms of voxel
resolution. Alignment in the z (depth) axis simply involves cropping
of data sets. The z values are measured in milliseconds and each data
set was sampled at 4 ms intervals, thus resolution in the z direction
is ensured. The subroutine uses nearest neighbor techniques for
interpolation that ensures the spatial error is at maximum (2/sqrt (2))
* axial resolution.
Extract skeletons of a 3D volume data
This module extracts a skeleton of a region-grown 3D volume.
The skeleton will be rendered as a series of small spheres which can
be colorized by the data value itself. Also all spheres can colorized
by single color defined by the R, G and B parameters.
connect picked points by a line
This module will connect all picked points into a line.
When the pick toggle is turned on, picking is enabled. All points
before turning off the pick toggle will be connected into a line. Picking
is realized by pushing down left mouse button which is the defined
picking button for AVS. This module can generate multiple line
objects depending on how many times pick is turned on and off.
The line can be an ideal line in which the width parameter must be zero
or has some thickness when width is not zero. The thick line is
simulated by a cylinder. The line color can be selectable which
is a mixing of red, green and blue.
convert 2D irregular points into a surface
This module converts a 2D irregular field into a surface. The
surface can have holes inside. A bad z value, defined by the
parameters invalid Z1, and invalid Z2, will define points which have z
coordinates of this number. If any point has z value in the range
defined by invalid Z1 and invalid Z2 parameter, it will not be
visualized -- for example, holes can be defined by a series of points
with z value in this range. Each cell of the irregular grid is
rendered to be a polygon if the four points defining this polygon are not
bad points. Four corner points z coordinates will be checked against
this invalid range. If one of z coordinates of 4 corners has a bad z
value, then this cell will not be rendered (i.e. it is not added to
the polyhedron object). The red, green and yellow color components will
be used to shade the surface.
print content of the project for a 3D volume
This module will display all information about a project
description of a 3D volume. When this module is initialized, it will
pop up a window. Project information will be printed on the window
such as survey four corner specification, the various matrices to do
transformation, etc.
create a new project description file
based on a template project description file
This module creates a new project description file based on a
template project description file. The template project file is input
by selecting a project description file which has suffix ".prj". The
user must enter new line, trace and time range values. The module will
recalculate the four-corner real world coordinates (x, y) of the new
grid.
create a project description file
This module creates a project description file for future
manipulation of the dataset of this project. Simply, the project here
is a single 3D seismic dataset. The project description file will
record information such as how many seismic lines, how many seismic
traces per line, and how many samples per trace. If it is a cropped
cube of the original 3D seismic cube, then the cropping information
will be recorded inside. Cropping will be represented by 3 parameters:
xoffset, yoffset and zoffset. These numbers are in terms of the index
numbers of the cube.
read a 3D volume which is in Lamont 4D format
This module loads a 3D volume into AVS. The 3D volume is
formatted like an AVS field, but it contains all information about
this 3D volume, such as inline, cross line and time range, various
transformation matrices, north arrow information, and four corner
specification. The output is one AVS 3D 3-space 1-vector field
uniform any data. Another one is the project information about this
field.
read well path data
This module reads all well path geometries, i.e. (x, y, z)'s
of wells in a text file.
read horizons from the output of "horizon dump"
module and output all horizons selected to an
AVS field formated file.
This module is a utility module which reads horizons from the
horizon database output from the "horizon dump" module. The horizons
from the "horizon dump" module are saved to a UNIX database. They are
keyed by the horizon names which are unique. Input to most of 4D
software modules such as "point to surface" module, etc. are AVS field
format. This module provides a way to extract horizons from the
database and output to a field file.
read a project description file
This module reads in a project description for a 3D volume.
The output is the AVS user data structure for the project -- this
output can be used by many modules which require the project
information.
read a spreadsheet data file
This modules reads in a spreadsheet file which generally contains
seismic data. Data is in form of one trace followed by another trace.
It is very similar to SEGY formatted data, but no 3200 bytes EBCDIC,
400 bytes binary header and trace header header for each trace.
Data is read in, and it is transformed
into avs field data format. The dimension one for avs field is always
trace #, dimension 2 for avs field is line #, and dimension 3 is
sample number. The input data type can be one of unsigned char, char, int
short, float, and double. But signed char is not supported by avs. Thus
if the input data is signed char, and output is chosen to be unsigned
char, a constant 128 is added to each sample in order keep range of the
input data.
read well path data
This module reads well path data. A well path can be defined by
measured depth (MD) by two way travel time (Time), or by vertical
depth (TVD stand for time converted vertical depth).
read well log data
This module reads in well log data such as sonic velocity,
resistivity, porosity, etc. The input well file must have the
following format:
erode a single layer of pixels from the region
around picked points
This module implements the erosion algorithm which will erode
a single layer of pixels from the region around selected points. In
the program, the input field data is treated as binary data, i.e. any
data value != 0 is treated as 1, and zero data points are zeros. This
process will be used to smooth boundary of geometry objects. Generally
speaking, the input data field is clipped field data, i.e. data has
zeros inside.
convert solid reservoirs into surface or mesh
This module is used to convert solid reservoir volumes into a
surface. Superficially it is like isosurface, but it is very different
in approach. This module takes input from the grow region or region
erosion/dilating modules. The grow region module will use high seismic
amplitude data points to be seed points, then grow from them so a
connected solid volume is identified. The module first checks how many
independent (separate) geometric objects are in the cube, and placed on a
list, then the surface points are checked out by using complete
polygon case logic. Once all the surface points are identified, closed
edge loops will be searched and smoothed for each z plane. Smoothing
window length can be user specified. Lastly a irregular coordinate
array is built up for surface rendering.
convert scatter points into surface by doing triangulation
This module converts a series of scatter points into a triangular surface.
These points belong to converted polygon and no holes on the surface. The module
will triangulate those points and render as a surface.
make a series of scatter points into a ribbon in 3-space
This module draws a series of scatter points in the form of a
ribbon in 3D space. All points are represented as (x, y, z, v1, v2,
..., vn). The input field can be with or without values. If it has no
values, then a thick line will be simply drawn. Otherwise the value
will be added to x or y coordinate of corresponding point by scaling
and gaining. The ribbon can be reside along XZ or YZ plane, depending
on the view direction.
SEGY tape or disk file preview
This AVS coroutine module scans the SEGY formatted tape or
disk file and displays information from the EBCDIC header, binary
header and trace header. This module is a stand-alone module. When it
is loaded in, it will pop up two windows, one is the input file
browser, another one contains 3 string-block browser windows. The
first string browser called EBCDIC will display the 3200 EBCDIC
header. The second one is Binary Header which will display information
from the 400 bytes of binary header. The third one is the Trace Header
window which will display information from the trace header -- only
information from bytes position 1-4 (trace sequence number within
line), 5-8 (trace sequence number within reel), 9-12 (original field
record number), 13-16 (trace number within the original field record),
21-24 (CDP ensemble number), 25-28 (trace number within the CDP
ensemble), 115-116 (number of samples in this trace), and 117-118
(sample interval in microseconds for this trace). You can choose every
N trace to display its trace header, the default is 1.
seismic attributes analyzer
Currently this module only takes input amplitude, frequency
and phase, cut part of it according to the picked horizon input data
which will be center of the window to cut the data. The outputs are
cut amplitude frequency and phase.
seismic attribute analysis
This module performs seismic attribute analysis on input 1D,
2D or 3D 1-vector uniform, byte/short/int/float field data. Analysis
proceeds trace by trace in case of 2D and 3D. For the algorithms used
for attribute analysis, please refer "complex seismic trace analysis"
Geophysics, v44, p1041-1063 by Taner, M. T.
view 3D seismic data
This module is for the viewing of 3D seismic data. The module
has two geometry viewer windows. The first window displays all survey
information of 3D seismic input such as the survey grid. The survey
grid is usually displayed as a rectangle in the window. All objects in
this window will be in real world coordinates. In the window, the
north direction, the scale bar of the survey, and the inline direction
are displayed. The survey grid is labeled by the line and trace
numbers. In the rectangle, there are 8 inlines drawn as lines. All
lines in this display are in red.
convert a 2D 1-vector field to a
2D 4-vector AVS image format
This module converts a 2D uniform 1-vector any data field into
a 2D 4-vector uniform byte AVS image format which can be sent to the
image viewer for display. If the colormap is provided, then
colorization is done according to the range of the data and min and
max for colormap. A data value < min value of the color map will be
set to the min of the color map a data value > max value of color map
will be set to the max value of the color map as well. If no color map
is provided, a gray scale is automatically used. If the dynamic range
of the data is less than the colormap range, then the data are
stretched to this range. This module is written to colorize 2D seismic
sections -- use this module to colorize seismic data instead of
providing a color map directly to the image viewer.
semblence analysis of a 3D seismic data
This module converts a 3D seismic volume into the semblence
volume. The semblence is useful to identify fault even the falut plane
reflection is not recorded also stratigraphical change can be detected
by the semblence.
invalidate the z coordinate, i.e. set it to be special
value such as -999.0
This module sets z coordinate of some data points to be
special value such as -999.0. Coordinate range is defined by min x, y,
z and max x, y, and z coordinate of point array in the input field, if
coordinate (x, y, z) of the input data is in the range of the
specified, then the z coordinate will be set to be "invalid z value".
For example, excluding some points in same depth range on the
interpreted horizon before rendering it.
show color of a (R, G, B) combination
This module displays the color of a (R, G, B) combination. The
only parameter is color choice which contains all the color names in
the color name database of X11, i.e. the color names in the file
$OPENWINHOME/lib/rgb.txt.
extract a skeleton of the 2D image
This module implements the Zhang-Suen algorithm to extract a
skeleton of a 2D image. For example, the skeleton of a circle will be
a point and the skeleton of a rectangle will be a line.
convert a 2-space field to a 3 space field
This module converts a 2D 2 space field into a 2D 3 space
field. The input field must be 2D 2 space, uniform/rectilinear,
byte/short/int/float scalar data. The output field will be a 2D 3
space, irregular, byte/short/int/float scalar field. The z coordinate
will be the data column, i.e. the 2D 2 space data can be displayed in
3D space -- data value will give a topographic look.
power spectrum estimation
This module does power spectrum estimation by using the algorithm
presented in the "Numerical Recipes", section 13.7. The linear predication
algorithm on page 566 through 569 is used to obtain coefficients for
the later spectrum estimate. The number of coefficients must be chosen by
experimenting with the data. A default of 10 is given.
frequency match between two fields
This module matches two fields in the frequency domain, i.e the
same band-pass filter applied to both fields. The band width of the filter
is defined by low cut 1 and 2 and high cut 1 and 2.
draw a sphere
This module draws a sphere with a radius defined by the radius parameter.
The center is defined by the center x, center y and center z parameters.
The color red, color green and color blue parameters will give the color
of the sphere.
apply static correction (shift) to
each trace of the input data
This module statically corrects each trace of the input data
field. The input data are either a 1D, 2D, or 3D AVS field, any data
1-vector. Correction is implemented in terms of shifting the trace,
i.e. pasting zeros to the front of the end of the trace depending on
the shift direction. When the input is a 1D trace (1 trace only) the
shift is either up or down.
statistical analysis of field data
Statistical analysis of the input field data -- input field
can be any data, any coordinate, any vector length.
down size points of a surface geometry by an averaging
neighborhood
This module does smoothing of a 2D input mesh, which is
usually a horizon. Because the horizon is picked from the seismic
volume which is a regular volume, the horizon is a regular mesh. Thus
smoothing is only applied to the z coordinate, ie time. Smoothing is
simply performed by averaging all z coordinates in the specified
window which is is defined by X and Y numbers. The number for X and Y
will be only odd numbers, such as 3, 5, 7, 9, 11, 13. The maximum
smoothing factor for this module is 15.
put a text string at the picked position
This module puts a text string at the picked position. To make
this module work, you need a valid object appearing on a geometry
window, otherwise it will do nothing. The picked (x, y, z) could be
nearest vertex (x, y, z), (x, y, z) in model space, (x, y, z) in
screen space or (x, y, z) in world space. The text color and height
can be chosen. The text is either aligned right, left, or middle.
Font type can also be specified.
put transparency to user specified data point
which has depth value defined by user.
This module puts transparency on some vertices of a mesh
object. The null depth parameter specifies which data points become
transparent that have this given value. The purpose of this module is
to make some vertices disappear by making them transparent. For
example, a 2D mesh object may has some holes inside, these holes are
defined by the data points that have the given depth null value.
Seismic horizons often have holes on their surfaces.
convert the vertical depth to two way travel time
This module converts the vertical depth of the well to the
corresponding two travel time according to the depth-time conversion
table. This is useful when seismic data (in time) is displayed
with well log data together. Generally seismic data is in time
on Z, but the well log data is in depth (feet) on Z, thus
conversion is needed to make them consistent.
extract scatter points which have the same data value
and generating a irregular 1D 3 space field from them
uniform_2_scatter reads in a uniform 3D scatter field data,
extracts data points that have values larger than the threshold
defined by the threshold level. The coordinate (x, y, z) for each
extracted data point (i, j, k) of this data is outputed as 1D
irregular 3 space field data. This module is coded specially for 3D
seismic datasets which are seismic amplitude or reflection strength.
Because the 3D seismic dataset is commonly in a form of uniform field
the data points are index by i, i, k indices. The output scattered
data field can be visualized by the bubble module.
spatial statistics of 3D seismic volume
This module does spatial statistics on the input 3D volume.
Currently, correlelograms, and variograms are implemented. The means
and variances of the head and tails as well are the number of points
are provided as outputs for graphing, etc. This module is based on the
GSLIB methodology.
volume interpolation of a 3D survey
This module does interpolation in inline or cross line direction or both
for a 3D survey by changing line and trace interval. The volume can be desampled
by increasing dx or dy or added traces between traces.
merge two 3D volumes into a single volume
This module does merging of two separate volumes into a big
volume. The volume 1 and 2 are 4D fields. There are 4 inputs for this
modules, data volume 1 and 2, project for volume 1, and project for
volume 2. The module will use those two projects to find out range of
survey grid for the new volume and calculate number of lines and
traces and samples for the new volume. The line and trace interval
will be checked against each other for the two input volumes -- they
must be the same and line and trace direction must be the same too. If
the two input volumes are separated too far away causing too many
empty lines and traces between volumes, the module will warn stating
the dimensions of the output volume are unreasonably huge. In this
case, you have to tell the module to go head or stop.
render a well path into a cylinder representation
This module renders a well path into a cylinder representation. The
purpose of this module is to map teleview data to the well wall and
thus display this data within the seismic data that the well path
is drawn in.
draw a well path in the geometry viewer
This module renders a well path by a polyline -- i.e point n
and n+1 is connected by a linear line. A sphere will be drawn at the
surface location of the well. Thus a radius parameter is provided to
specify sphere size.
viewing of well data such as well paths, or logs
This module is for the viewing and exporting of well data from the
input well data file. Also this module will visualize the well bore,
well log, and mapping data on the well bore, extract data along the
well path, and slice along the well path. The module can take three
inputs, volume data, project for that volume and colormap -- all
inputs are optional. The outputs from this module are well data which
are extracted well log data and extracted slice. Extracted data are
the extracted data along the current well path, slice is the extracted
slice data along the current well path.
wiggle plot of 2D data
This module generates a wiggle plot, i.e. curve plot. The
wiggle is plotted along the y direction -- that is dimension 1 of the input
field. If this is not case, the switch axis module is needed to switch
before plotting.
write out a 3D volume into a file
This module writes a 3D volume into a file which is formatted
like an AVS field, but the output file contains information about this
volume, such as inline, cross line and time range for this volume,
survey grid definition of this volume and various transformation
matrices for coordinate transformation.
writes an image in the gif format
This module writes an image in the gif format from an AVS Network.
output a multi-column ascii file
This module takes a 1-D any coordinate and any data AVS field
and writes out a multi-column ascii file since the multi-column ascii
file is acceptable to many scientific time-series analysis software
packages. Thus, this module is a convenient way to dump a file for other
software.
write project information to a file
output a multi-column spreadsheet ASCII file
This module extracts partial data from a volume and writes to
a output file in a multi-column spreadsheet ASCII file. This module is
written for output data to other software which requires the
spreadsheet ASCII formatted data.
write a field input to a spreadsheet file
write ss reads in a field input, then writes out it into a speadsheet
file. The input data filed must be 2D or 3D scalar any data. User
must specify dimension for trace and sample in case of 2D data. For
3D data, dimension for Line, Trace and sample must be specified. For
3D data input, traces are written out sequentially for each line. All
traces of first line are written out first, then second line, so on and
so forth. The output data format can be one of unsigned char, short,
integer or float. You must be cautious to select output data type which
has size larger than input data type to avoid losing information.
write a 2D irregular AVS field into
an ASCII file
This module outputs a 2D 1-vector 2-space or 3-space irregular
any data into an ASCII file. The output will have formatted
x y data for 2-space input and x y z data for 3-space input.
The dimension 0 is changing fastest in the output file.
write an image in the tiff format from an AVS Network
This module writes an image in the tiff format from an AVS Network.