SYNOPSIS

PERL PROGRAM NAME:

AUTHOR:

DATE:

DESCRIPTION:

Version:

USE

NOTES

Examples

SYNOPSIS

SEISMIC UNIX NOTES XPICKER - X wiggle-trace plot of f(x1,x2) via Bitmap with PICKing

 xpicker n1= [optional parameters] <binaryfile				



 X Menu functionality:							

    Pick Filename Window	default is pick_file			

    Load		load an existing Pick Filename			

    Save		save to Pick Filename				

    View only/Pick	default is View, click to enable Picking	

    Add/Delete		default is Add, click to delete picks		

    Cross off/on	default is Cross off, click to enable Crosshairs



 In View mode:								

    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                    

    l 				lock the zoom while moving the coursor	

    u 				unlock the zoom 			



 Notes:								

	Menu selections and toggles ("clicks") are made with button 1	

	Pick selections are made with button 3				

	Edit a pick selection by dragging it with button 3 down	or	

	by making a new pick on that trace				

	Reaching the window limits while moving within changes the zoom	

	factor in this direction. The use of zoom locking(l) disables it



 Other X Mouse functionality:						

 Mouse Button 1	Zoom with rubberbox				

 Mouse Button 2	Show mouse (x1,x2) coordinates while pressed	



 The following keys are active in View Only mode:			



 Required Parameters:							

 n1=		number of samples in 1st (fast) dimension		



 Optional Parameters:							

 mpicks=pick_file	name of output (input) pick file		

 d1=1.0		sampling interval in 1st dimension		

 f1=d1		  first sample in 1st dimension				

 n2=all		 number of samples in 2nd (slow) dimension	

 d2=1.0		 sampling interval in 2nd dimension		

 f2=d2		  first sample in 2nd dimension				

 x2=f2,f2+d2,...	array of sampled values in 2nd dimension	

 bias=0.0	       data value corresponding to location along axis 2

 perc=100.0	     percentile for determining clip			

 clip=(perc percentile) data values < bias+clip and > bias-clip are clipped

 xcur=1.0	       wiggle excursion in traces corresponding to clip	

 wt=1		   =0 for no wiggle-trace; =1 for wiggle-trace		

 va=1		   =0 for no variable-area; =1 for variable-area fill	

                        =2 for variable area, solid/grey fill          

                        SHADING: 2<=va<=5  va=2 light grey, va=5 black 

 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			

 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				

 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)	

 endian=		=0 little endian, =1 big endian			

 interp=0		no sinc interpolation				

			=1 perform sinc interpolation			

 x2file=		file of "acceptable" x2 values		

 x1x2=1		save picks in the order (x1,x2) 		

 			=0 save picks in the order (x2,x1) 		



 Notes:								

 Xpicker will try to detect the endian value of the X-display and will	

 set it to the right value. If it gets obviously wrong information the 

 endian value will be set to the endian value of the machine that is	

 given at compile time as the value of CWPENDIAN defined in cwp.h	

 and set via the compile time flag ENDIANFLAG in Makefile.config.	



 The only time that you might want to change the value of the endian   

 variable is if you are viewing traces on a machine with a different   

 byte order than the machine you are creating the traces on AND if for 

 some reason the automaic detection of the display byte order fails.   

 Set endian to that of the machine you	are viewing the traces on.	



 The interp flag is useful for making better quality wiggle trace for	

 making plots from screen dumps. However, this flag assumes that the	

 data are purely oscillatory. This option may not be appropriate for all

 data sets.								



 If the x2file=  option is set, then the values from the specified file

 will define the set of "acceptable" values of x2 for xpicker to	

 output. The format is a single column of ASCII values. The number of  

 specified values is arbitrary.					



 Such a file can be built from an SU data set via:			

     sugethw < sudata key=offset output=geom > x2example 		



 If the value of x2file= is not set, then				

 xpicker will use the values specified via: x2=.,.,.,. or those that are", 

 computed from the values of f2=  and d2= as being the "acceptible

 values.								



 See the selfdoc of  suxpicker  for information on using key fields from

 the SU trace headers directly. 					







 Author:  Dave Hale, Colorado School of Mines, 08/09/90

 with picking by Wenying Cai of University of Utah.

 Endian stuff by Morten Pedersen and John Stockwell of CWP.

 Interp stuff by Tony Kocurko of Memorial University of Newfoundland

 Modified to include acceptable values by Bill Lutter of the

     Department of Geology, University of Wisconsin 10/96

 MODIFIED:  P. Michaels, Boise State Univeristy  29 December 2000

            Added solid/grey color scheme for peaks/troughs

 

 G.Klein, IFG Kiel University, 2003-09-29, added cursor scrolling and

            interactive change of zoom and clipping.



 NOTES:

 Interactive picker improved to allow x-axis of picks to be

 coordinated with "key=header" parameter set in driver routine

 suxpicker. Multiple picks per trace are now allowed.



  Input:

  The command line of suxpicker is unchanged.  The parameter"key=header"

  set in  suxpicker controls a) trace x-axis  displayed via xpicker and

  b) the header values in the first column of a pick file either read in

     or written out from xpicker c) header values expected in optional file

      or written out from xpicker c) header values expected in optional file

     x2file= which reads into xpicker allowable trace x-axis values.



   a) example command line:  suxpicker key=offset < shot10.plotpik



   b) pick file format:

	x-axis_value_1 time_1

	x-axis_value_2 time_2  

	x-axis_value_3 time_3

	etc.

	x-axis_value_n time_n



	pick file example:

         1000.000000 0.500000

         2000.000000 1.000000

         3000.000000 1.500000

         4000.000000 2.000000

         5000.000000 2.500000



  c)  format of optional file x2file=:

    	   header_value_1

 	   header_value_2

	   etc.

	   header_val_m



       If file "x2file=" exists in directory from which suxpicker is

      invoked, then these trace header x-axis values are the only allowable

      x-axis pick values used in the pick "add" or "delete" menu operation.

      Header values do not need to be sorted or 1 to 1 with input traces.

      Further, pick file x-axis values can be read into xpicker via load

      operation without having to match key_pickx1_val x-axis values and

      can also be rewritten out an output pickfile.  As indicated, only

      the "add" and "delete" pick operations are influenced by existence

       of this file.



      Offset header values for "x2file=" can be generated by the

      command line:



      sugethw < su_segyfile key=offset output=geom >  x2examplefile=



      Output: Only change is in format of pick_file (format described above).

      If x2file= file exists then x-axis value of added picks

      will be forced to nearest allowable trace x-axis value (input values

      of x2file= file). If x2file= is not set, then the values of x2 

      that are either assigned uniformly to the traces via f2 and d2,

      or by the vector of values of x2=.,.,.,.    will be the "acceptable"

      values.



    Strategy:

   a) malloc() and realloc() used to dynamically allocate memory

	  for array of x-axis value read in from optional file

	  x2file=.  This is done in function read_keyval().



	  b) The pick file dimensions are set in main program via malloc()

	  and then initialized (*apick)[i].picked = FALSE) in function

	  init_picks().  The pick file is declared as pick_t **apick, in

	  order to use realloc() as needed in functions load_picks where the

	  pick file is read in and edit_picks where picks are added.  The

	  call to realloc() and further initializing is performed in

	  function realloc_picks().



	  c) If x2file= file exists the mouse derived x-axis value

	  for a pick to be added is checked against allowable x-axis values

	  to find the closest match via function add_pick called from

	  edit_picks.  If the pick is to be deleted, first a search is done

	  to find the closest x-axis value, then the existing pick values

	  are searched to find the closest radial value (x**2 + t**2) via

	  function del_pick() invoked from edit_picks.



	  d) Code modifications are limited to above mentioned functions,

	  except for additional parameters passed to functions edit_picks,

	  load_picks, save_picks, and check_buttons.

 

User's notes (Juan Lorenzo) untested

CHANGES and their DATES

Import packages

instantiation of packages

Encapsulated hash of private variables

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 bias

sub clip

sub d1

sub d1num

sub d2

sub d2num

sub endian

sub f1

sub f1num

sub f2

sub f2num

sub grid1

sub grid2

sub gridcolor

sub hbox

sub interp

sub key

sub label1

sub label2

sub labelcolor

sub labelfont

sub mpicks

sub n1

sub n1tic

sub n2

sub n2tic

sub perc

sub picked

sub style

sub title

sub titlecolor

sub titlefont

sub va

sub verbose

sub wbox

sub wt

sub x1beg

sub x1end

sub x1x2

sub x2

sub x2beg

sub x2end

sub x2file

sub xbox

sub xcur

sub ybox

sub get_max_index

max index = number of input variables -1