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