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
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
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
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
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.