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