XPICKER - X wiggle-trace plot of f(x1,x2) via Bitmap with PICKing xpicker n1= [optional parameters] 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.