DOCUMENTATION
SYNOPSIS
SUXIMAGE also inherits parameters from XIMAGE (See below)
PERL PROGRAM NAME: SUXIMAGE - X-windows IMAGE plot of a segy data set
AUTHOR: Juan Lorenzo (Perl module only)
DATE:
DESCRIPTION:
Version:
USE$new_dt_s
NOTES
Examples
SEISMIC UNIX NOTES
SUXIMAGE - X-windows IMAGE plot of a segy data set
suximage infile= [optional parameters] | ... (direct I/O)
or
suximage <stdin [optional parameters] | ... (sequential I/O)
Optional parameters:
infile=NULL SU data to be ploted, default stdin with sequential access
if 'infile' provided, su data read by (fast) direct access
with ftr,dtr and n2 suximage will pass a subset of data
to the plotting program-ximage:
ftr=1 First trace to be plotted
dtr=1 Trace increment to be plotted
n2=tr.ntr (Max) number of traces to be plotted (ntr is an alias for n2)
Priority: first try to read from parameter line;
if not provided, check trace header tr.ntr;
if still not provided, figure it out using ftello
d1=tr.d1 or tr.dt/10^6 sampling interval in the fast dimension
=.004 for seismic (if not set)
=1.0 for nonseismic (if not set)
d2=tr.d2 sampling interval in the slow dimension
=1.0 (if not set or was set to 0)
key= key for annotating d2 (slow dimension)
If annotation is not at proper increment, try
setting d2; only first trace's key value is read
f1=tr.f1 or tr.delrt/10^3 or 0.0 first sample in the fast dimension
f2=tr.f2 or tr.tracr or tr.tracl first sample in the slow dimension
=1.0 for seismic (if not set)
=d2 for nonseismic (if not set)
verbose=0 =1 to print some useful information
tmpdir= if non-empty, use the value as a directory path
prefix for storing temporary files; else if the
the CWP_TMPDIR environment variable is set use
its value for the path; else use tmpfile()
Note that for seismic time domain data, the "fast dimension" is
time and the "slow dimension" is usually trace number or range.
Also note that "foreign" data tapes may have something unexpected
in the d2,f2 fields, use segyclean to clear these if you can afford
the processing time or use d2= f2= to override the header values if
not.
See the ximage selfdoc for the remaining parameters.
Credits:
CWP: Dave Hale and Zhiming Li (ximage, etc.)
Jack Cohen and John Stockwell (suximage, etc.)
MTU: David Forel, June 2004, added key for annotating d2
ConocoPhillips: Zhaobo Meng, Dec 2004, added direct I/O
Notes:
When provide ftr and dtr and infile, suximage can be used to plot
multi-dimensional volumes efficiently. For example, for a Offset-CDP
dataset with 32 offsets, the command line
suximage infile=volume3d.su ftr=1 dtr=32 ... &
will display the zero-offset common offset data with ranrom access.
It is highly recommend to use infile= to view large datasets, since
using stdin only allows sequential access, which is very slow for
large datasets.
When the number of traces isn't known, we need to count
the traces for ximage. You can make this value "known"
either by getparring n2 or by having the ntr field set
in the trace header. A getparred value takes precedence
over the value in the trace header.
When we must compute ntr, we don't allocate a 2-d array,
but just content ourselves with copying trace by trace from
the data "file" to the pipe into the plotting program.
Although we could use tr.data, we allocate a trace buffer
for code clarity.
The parameters of the following seismic unix programs
also applies to the current package suximage
XIMAGE - X IMAGE plot of a uniformly-sampled function f(x1,x2)
ximage n1= [optional parameters] <binaryfile
X Functionality:
Button 1 Zoom with rubberband box
Button 2 Show mouse (x1,x2) coordinates while pressed
q or Q key Quit
s key Save current mouse (x1,x2) location to file
p or P key Plot current window with pswigb (only from disk files)
a or page up keys enhance clipping by 10%
c or page down keys reduce clipping by 10%
up,down,left,right keys move zoom window by half width/height
i or +(keypad) zoom in by factor 2
o or -(keypad) zoom out by factor 2
... change colormap interactively
r install next RGB - colormap
R install previous RGB - colormap
h install next HSV - colormap
H install previous HSV - colormap
H install previous HSV - colormap
(Move mouse cursor out and back into window for r,R,h,H to take effect)
Required Parameters: #
n1 number of samples in 1st (fast) dimension
Optional Parameters:
d1=1.0 sampling interval in 1st dimension
f1=0.0 first sample in 1st dimension
n2=all number of samples in 2nd (slow) dimension
d2=1.0 sampling interval in 2nd dimension
f2=0.0 first sample in 2nd dimension
mpicks=/dev/tty file to save mouse picks in
perc=100.0 percentile used to determine clip
clip=(perc percentile) clip used to determine bclip and wclip
bperc=perc percentile for determining black clip value
wperc=100.0-perc percentile for determining white clip value
bclip=clip data values outside of [bclip,wclip] are clipped
wclip=-clip data values outside of [bclip,wclip] are clipped
balance=0 bclip & wclip individually
=1 set them to the same abs value
if specified via perc (avoids colorbar skew)
cmap=hsv'n' or rgb'm' 'n' is a number from 0 to 13
'm' is a number from 0 to 11
cmap=rgb0 is equal to cmap=gray
cmap=hsv1 is equal to cmap=hue
(compatibility to older versions)
legend=0 =1 display the color scale
units= unit label for legend
legendfont=times_roman10 font name for title
verbose=1 =1 for info printed on stderr (0 for no info)
xbox=50 x in pixels of upper left corner of window
ybox=50 y in pixels of upper left corner of window
wbox=550 width in pixels of window
hbox=700 height in pixels of window
lwidth=16 colorscale (legend) width in pixels
lheight=hbox/3 colorscale (legend) height in pixels
lx=3 colorscale (legend) x-position in pixels
ly=(hbox-lheight)/3 colorscale (legend) y-position in pixels
x1beg=x1min value at which axis 1 begins
x1end=x1max value at which axis 1 ends
d1num=0.0 numbered tic interval on axis 1 (0.0 for automatic)
f1num=x1min first numbered tic on axis 1 (used if d1num not 0.0)
n1tic=1 number of tics per numbered tic on axis 1
grid1=none grid lines on axis 1 - none, dot, dash, or solid
label1= label on axis 1
x2beg=x2min value at which axis 2 begins
x2end=x2max value at which axis 2 ends
d2num=0.0 numbered tic interval on axis 2 (0.0 for automatic)
f2num=x2min first numbered tic on axis 2 (used if d2num not 0.0)
n2tic=1 number of tics per numbered tic on axis 2
grid2=none grid lines on axis 2 - none, dot, dash, or solid
label2= label on axis 2
labelfont=Erg14 font name for axes labels
title= title of plot
titlefont=Rom22 font name for title
windowtitle=ximage title on window
labelcolor=blue color for axes labels
titlecolor=red color for title
gridcolor=blue color for grid lines
style=seismic $ normal (axis 1 horizontal, axis 2 vertical) or
seismic (axis 1 vertical, axis 2 horizontal)
blank=0 This indicates what portion of the lower range
to blank out (make the background color). The
value should range from 0 to 1.
plotfile=plotfile.ps filename for interactive ploting (P)
curve=curve1,curve2,... file(s) containing points to draw curve(s)
npair=n1,n2,n2,... number(s) of pairs in each file
curvecolor=color1,color2,... color(s) for curve(s)
blockinterp=0 whether to use block interpolation (0=no, 1=yes)
curvewidth
NOTES:
The curve file is an ascii file with the points specified as x1 x2
pairs separated by a space, one pair to a line. A "vector" of curve
files and curv$e colors may be specified as curvefile=file1,file2,etc.
and curvecolor=color1,color2,etc, and the number of pairs of values
in each file as npair=npair1,npair2,... .
JML:9-1-19 curvefile=file1,file2,file3 fails
Perl wrapper automatically substitutes with: curve=file1,file2,file3
SUXIMAGE - X-windows IMAGE plot of a segy data set
suximage infile= [optional parameters] | ... (direct I/O)
or
suximage <stdin [optional parameters] | ... (sequential I/O)
Optional parameters:
infile=NULL SU data to be ploted, default stdin with sequential access
if 'infile' provided, su data read by (fast) direct access
with ftr,dtr and n2 suximage will pass a subset of data
to the plotting program-ximage:
ftr=1 First trace to be plotted
dtr=1 Trace increment to be plotted
n2=tr.ntr (Max) number of traces to be plotted (ntr is an alias for n2)
Priority: first try to read from parameter line;
if not provided, check trace header tr.ntr;
if still not provided, figure it out using ftello
d1=tr.d1 or tr.dt/10^6 sampling interval in the fast dimension
=.004 for seismic (if not set)
=1.0 for nonseismic (if not set)
d2=tr.d2 sampling interval in the slow dimension
=1.0 (if not set or was set to 0)
key= key for annotating d2 (slow dimension)
If annotation is not at proper increment, try
setting d2; only first trace's key value is read
f1=tr.f1 or tr.delrt/10^3 or 0.0 first sample in the fast dimension
f2=tr.f2 or tr.tracr or tr.tracl first sample in the slow dimension
=1.0 for seismic (if not set)
=d2 for nonseismic (if not set)
verbose=0 =1 to print some useful information
tmpdir= if non-empty, use the value as a directory path
prefix for storing temporary files; else if the
the CWP_TMPDIR environment variable is set use
its value for the path; else use tmpfile()
Note that for seismic time domain data, the "fast dimension" is
time and the "slow dimension" is usually trace number or range.
Also note that "foreign" data tapes may have something unexpected
in the d2,f2 fields, use segyclean to clear these if you can afford
the processing time or use d2= f2= to override the header values if
not.
See the ximage selfdoc for the remaining parameters.
CHANGES and their DATES
sub Step
collects switches and assembles bash instructions by adding the program name
sub note
collects switches and assembles bash instructions by adding the program name
sub clear
56 +2 items
sub dtr
sub ftr
sub infile
sub key
sub absclip
determine the absolute clip for data
sub balance
sub bclip
subs loclip bclip
sub blank
sub blockinterp
sub box_X0
sub box_Y0
sub box_height
sub box_width
sub bperc
sub clip
determine the absolute clip for data
sub cmap
sub curve
sub curvecolor
color of curves
sub curvefile
name of ascii file containing plotting points
sub curvewidth
name of ascii file containing plotting points
sub d1
subs d1 and dt and dz and dt_s
increment in fast dimension
usually time and equal to dt
sub d1num
subs d1num , y_tick_increment dy_major_divisions dt_major_divisions
numbered tick interval in fast dimension(t)
sub d2
subs d2 and trace_in
only the first trace is read in
if an increment is not 1 between traces
you should indicate here
sub dt_major_divisions
subs d1num , y_tick_increment dy_major_divisions dt_major_divisions
numbered tick interval in fast dimension(t)
sub dx
only the first trace is read in
if an increment is not 1 between traces
you should indicate here
sub dy_major_divisions
subs d1num , y_tick_increment dy_major_divisions dt_major_divisions
numbered tick interval in fast dimension(t)
sub d2num
subs d2num dx_major_divisions and x_tick_increment
numbered tick interval
sub dt
subs d1 and dt and dz and dt_s
increment in fast dimension
usually time and equal to dt
sub dt_s
subs d1 and dt and dz and dt_s
increment in fast dimension
usually time and equal to dt
sub dx_major_divisions
subs d2num dx_major_divisions and x_tick_increment
numbered tick interval
sub dy_minor_divisions
subs dy_minor_divisions n1tic and num_minor_ticks_betw_time_ticks
n1tic=1 number of minor ticks shwon between each
of the numbered ticks on axis 1 (usually time and pointing down)
sub dz
subs d1 and dt and dz and dt_s
increment in fast dimension
usually time and equal to dt
sub f1
subs f1, first_time_sample_value and first_y
value of the first sample tihat is use
sub f1num
subs f1num first_time_tick_num
first tick number in the
fast dimension (e.g., time)
$f1num >= 0 &&
sub f2
subs f2 and first_distance_sample_value first_x
value of the first sample tihat is used
first value in the second dimension (X)
sub f2num
subs f2num first_tick_number_x
first tick number in the
slow dimension (e.g., distance)
sub first_distance_sample_value
subs f2 and first_distance_sample_value first_x
value of the first sample tihat is used
first value in the second dimension (X)
$f2 >=0 &&
sub first_x
subs f2 and first_distance_sample_value first_x
value of the first sample tihat is used
first value in the second dimension (X)
$f2 >=0 &&
sub first_distance_tick_num
subs f2num first_distance_tick_num
first tick number in the
slow dimension (distance)
$f2num >=0 &&
sub first_tick_number_x
subs f2num first_tick_number_x
first tick number in the
slow dimension (e.g., distance)
$f2num >=0 &&
sub first_time_sample_value
subs f1, first_time_sample_value and first_y
value of the first sample tihat is use
$f1 >=0 &&
sub first_time_tick_num
subs f1num first_time_tick_num
first tick number in the
fast dimension (e.g., time)
$f1num >=0 &&
sub first_y
subs f1, first_time_sample_value and first_y
value of the first sample that is used
$f1 >=0 &&
sub grid1
sub grid2
sub gridcolor
sub hbox
sub hiclip
subs hiclip or wclip
sub label1
subs xlabel or label2 ylabel or labe1
sub label2
subs xlabel or label2 ylabel or labe1
sub labelcolor
sub labelfont
sub legend
sub legendfont
sub lheight
sub loclip
subs loclip bclip
sub lwidth
sub lx
sub ly
sub mpicks
sub mpicks picks
automatically generates a pick file
sub n1
n1 number of samples in 1st (fast) dimension
sub n1tic
subs dy_minor_divisions n1tic and num_minor_ticks_betw_time_ticks
n1tic=1 number of minor ticks shwon between each
of the numbered ticks on axis 1 (usually time and pointing down)
sub n2
sub n2tic
subs n2tic and num_minor_ticks_betw_distance_ticks
n2tic=1 number of minor ticks shwon between each
of the numbered ticks on axis 1 (usually time and pointing down)
sub npair
number of T-Vel pairs
sub num_minor_ticks_betw_distance_ticks
subs n2tic and num_minor_ticks_betw_distance_ticks
n2tic=1 number of minor ticks shwon between each
of the numbered ticks on axis 1 (usually time and pointing down)
sub num_minor_ticks_betw_time_ticks
subs dy_minor_divisions n1tic and num_minor_ticks_betw_time_ticks
n1tic=1 number of minor ticks shwon between each
of the numbered ticks on axis 1 (usually time and pointing down)
sub orientation
subs style orientation
whether the time axis is vertical (seismic stlye)
or the time axis is horizontal (normal style)
sub perc
subs perc percent4clip percentile used to determine clip
sub percent4clip
subs perc percent4clip percentile used to determine clip
sub picks
sub mpicks picks
automatically generates a pick file
sub plotfile
sub style
subs style orientation
whether the time axis is vertical (seismic stlye)
or the time axis is horizontal (normal style)
sub tend_s
subs x1end and tend_s
minimum value of yaxis (time usually) in seconds
sub title
sub title allows for a graph title at the top of the
window
sub titlecolor
sub titlefont
sub tmpdir
sub trace_inc
subs d2 and trace_inc
only the first trace is read in
if an increment is not 1 between traces
you should indicate here
sub tstart_s
subs x1beg and tstart_s
minimum value of yaxis (time usually) in seconds
$x1beg >=0 &&
sub units
sub verbose
sub wbox
sub wclip
subs hiclip wclip
sub windowtitle
sub wperc
sub x1beg
subs x1beg and tstart_s
minimum value of yaxis (time usually) in seconds
$x1beg >=0 &&
sub x1end
subs x1end and tend_s
minimum value of yaxis (time usually) in seconds
sub x2end
subs x2end and xend_m
minimum value of yaxis (time usually) in seconds
sub xbox
sub x2beg
subs x2beg and
minimum value of yaxis (time usually) in seconds
$x2beg >=0 &&
sub xend_m
subs x2end and xend_m
minimum value of yaxis (time usually) in seconds
sub xlabel
subs xlabel or label2 ylabel or labe1
sub xstart_m
subs x2beg and xstart_m
minimum value of yaxis (time usually) in seconds
$x2beg >=0 &&
sub x_tick_increment
subs d2num dx_major_divisions and x_tick_increment
numbered tick interval
sub ybox
sub ylabel
subs xlabel or label2 ylabel or labe1
sub y_tick_increment
subs d1num , y_tick_increment dy_major_divisions dt_major_divisions
numbered tick interval in fast dimension(t)
sub get_max_index
max index = number of input variables -1