DOCUMENTATION
SYNOPSIS
PERL PROGRAM NAME: XIMAGE - X IMAGE plot of a uniformly-sampled function f(x1,x2)
AUTHOR: Juan Lorenzo (Perl module only)
DATE:
DESCRIPTION:
Version:
USE
NOTES
Examples
SEISMIC UNIX NOTES
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)
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 curve 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,... .
Author: Dave Hale, Colorado School of Mines, 08/09/90
Stewart A. Levin, Mobil - Added ps print option
Brian Zook, Southwest Research Institute, 6/27/96, added blank option
Toralf Foerster, Baltic Sea Research Institute, 9/15/96, new colormaps
Berend Scheffers, Delft, colorbar (legend)
Brian K. Macy, Phillips Petroleum, 11/27/98, added curve plotting option
G.Klein, GEOMAR Kiel, 2004-03-12, added cursor scrolling and
interactive change of zoom and clipping.
Zhaobo Meng, ConocoPhillips, 12/02/04, added amplitude display
Garry Perratt, Geocon, 08/04/05, modified perc handling to center colorbar if balance==1.
INTL2B_block - blocky interpolation of a 2-D array of bytes
intl2b_block blocky interpolation of a 2-D array of bytes
Function Prototype: void intl2b_block(int nxin, float dxin, float fxin, int nyin, float dyin, float fyin, unsigned char *zin, int nxout, float dxout, float fxout, int nyout, float dyout, float fyout, unsigned char *zout);
Input: nxin number of x samples input (fast dimension of zin) dxin x sampling interval input fxin first x sample input nyin number of y samples input (slow dimension of zin) dyin y sampling interval input fyin first y sample input zin array[nyin][nxin] of input samples (see notes) nxout number of x samples output (fast dimension of zout) dxout x sampling interval output fxout first x sample output nyout number of y samples output (slow dimension of zout) dyout y sampling interval output fyout first y sample output
Output: zout array[nyout][nxout] of output samples (see notes)
Notes: The arrays zin and zout must passed as pointers to the first element of a two-dimensional contiguous array of unsigned char values.
Constant extrapolation of zin is used to compute zout for output x and y outside the range of input x and y.
Author: James Gunning, CSIRO Petroleum 1999. Hacked from intl2b() by Dave Hale, Colorado School of Mines, c. 1989-1991 =head2 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
sub absclip
sub balance
sub 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
sub curvefile
sub d1
subs d1 and dt and dz
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
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
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)
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)
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)
sub first_distance_tick_num
subs f2num first_distance_tick_num
first tick number in the
slow dimension (distance)
sub first_tick_number_x
subs f2num first_tick_number_x
first tick number in the
slow dimension (e.g., distance)
sub first_time_sample_value
subs f1, first_time_sample_value and first_y
value of the first sample tihat is use
sub first_time_tick_num
subs f1num first_time_tick_num
first tick number in the
fast dimension (e.g., time)
sub first_y
subs f1, first_time_sample_value and first_y
value of the first sample that is used
sub grid1
sub grid2
sub gridcolor
sub hbox
sub hilip
subs hiclip wclip
sub label1
subs xlabel or label2 ylabel or label1
sub label2
subs xlabel or label2 ylabel or label1
sub labelcolor
sub labelfont
sub legend
sub legendfont
sub lheight
sub lwidth
sub loclip
subs loclip bclip
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
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 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
sub units
sub verbose
sub wbox
sub wclip
sub windowtitle
sub wperc
sub x1beg
subs x1beg and tstart_s
minimum value of yaxis (time usually) in seconds
sub x1end
subs x1end and tend_s
minimum value of yaxis (time usually) in seconds
sub x2beg
subs x2beg and
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 xend_m
subs x2end and xend_m
minimum value of yaxis (time usually) in seconds
sub xlabel
subs xlabel or label2 ylabel or label1
sub xstart_m
subs x2beg and xstart_m
minimum value of yaxis (time usually) in seconds
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 label1
sub get_max_index
max index = number of input variables -1