NAME
picker - do auto-flattening/picking/phase rotating within a
window centered on a specified time
SYNOPSIS
picker [ -Nntap ] [ -Ootap ] [ -Qqtap ] [ -Cetap ] [ -Tttap
] [ -titime ] [ -swrrecwrd ] [ -wiwind ] [ -phase ] [ -pamp
] [ -sclscl ] [ -liminlimin ] [ -limaxlimax ] [ -dimindimin
] [ -dimaxdimax ] [ -initer ] [ -lnlags ] [ -flfl ] [ -fcfc
] [ -fhfh ] [ -bthr ] [ -rmindmin ] [ -rmaxdmax ] [ -Pptap ]
[ -swistawrdi ] [ -uiuniti ] [ -swostawrdo ] [ -uounito ] [
-dtdatum ] [ -rsnrst ] [ -renred ] [ -S ] [ -oiord ] [ -pick
] [ -scor ] [ -F ] [ -snstk ] [ -sign ] [ -med ] [ -maa ] [
-E ] [ -D ] [ -D3 ] [ -QCT ] [ -V ] [ -vV ] [ -? ]
DESCRIPTION
For the statics option picker looks at each input seismic
record within a zone defined by a window center time and a
window length (the assumption here is that either some rough
flattening, e.g. a bdnmo, a vred or a flatten has been done
or a file of records & window times is supplied) and itera-
tively computes either a (1) set of static shifts or (2) a
set of phase rotations or (3) a set of trace amplitudes.
Static shifts are determined by building reference stack,
cross-correlating the traces within the zone to extract
shifts which are then applied for each interation. The
method is quite similar to the mechanism used by pickusp
except that the shifts are applied within the program as
well as being stored in the trace headers.
The window center time can be defined for each trace (1)
globally, (2) from an xsd style flat file, or (3) from times
defined in the trace headers. If the times are defined in
the trace headers then as each gather is read the times for
the individual traces in that gather are averaged and the
average time is used for the window center time. For 3D
applications it is recommended that option (3) be used since
there are more sophisticated tools available to insert trace
header times than those internal to picker, e.g. tim2hed3d.
For the phase rotation option picker currently examines each
waveform within the analysis window (defined the same way as
for the statics option above) and extracts the response
phase for each peak (see asig). The maximum envelope peak
is then determined and the associated phase response written
to the headers and used to rotate the input gathers unless
the scor option is flagged in which case an event tape is
written with the rotations taking the place of the statics.
This can be input to scorusp or sc3d depending on whether
the data is 2D or 3D. The program normally expects the line
header to contain the min & max LIs & DIs of the survey,
although these can be overridden. The event tape can be
scan'd and the samples printed out (unlike old-style event
tapes).
For the amplitude options each trace is windowed according
to the options available and then the amplitude is computed
based on either the maximum or average absolute amplitude.
The output will be a modern scor-type event tape where the
first sample will be the amplitude. This can be input to
sc3d for computation of the surface consistent gain correc-
tions for each trace. These can be applied using storeit.
For static or time picking options as much as possible the
window should isolate a single event since this will help
prevent cycle skipping. A cosine bell weight is applied to
the windowed data prior to each iteration. Only the outer
1/4 of the window in time is affected by the window taper.
There are two basic methods used in the statics algorithm:
1. For each iteration the shifted record is windowed. Then
the cross-correlation is computed between all pair combina-
tions of the individual traces. A peak picker finds the
maximum positive correlation and a shift is computed (can be
fraction valued) and applied to the entire record which is
then ready for the next iteration. 2. For each iteration
the shifted record is windowed then stacked to create a new
reference trace. Then the cross-correlation is computed
between the reference trace and the individual traces. A
peak picker finds the maximum positive correlation and a
shift is computed (can be fraction valued) and applied to
the entire record which is then ready for the next itera-
tion.
An addition to the above mechanisms is the hi-cut filter
which varies with the iteration. Often within the window an
event wanders considerably so that when stacked does not
produce a reference trace that has a wavelet similar to the
individual traces of the stack. This results in false peaks
and troughs which in turn cause the cross-correlation peak
picker to skip legs breaking the continuity of the event.
By starting with a very low frequency version of the input
the stack produces a wavelet that has such false peaks
blurred into one another so that the cross-correlation will
produce an approximate but appropriate shift. As the itera-
tions progress the idea is to raise the hi-cut point more
and more as the shifts home in on the true solution.
Note that the filtering operation is for the correlation
procedure only and has no frequency effect on the output
data.
Note also that for micro second data all times must be in
microsecs and frequencies in Hz. The input sample interval
must then be in microsecs.
Note also that within each gather picker will ignore dead
traces. The output will contain the original dead traces in
their original order within each gather.
In most cases picker will be greatly superior to pickusp and
can be used instead.
picker gets both its data and its parameters from command
line arguments. These arguments specify the input, output,
the window parameters, number of lags, iterations, hi-cut
points, the start and end records, and verbose printout, if
desired.
Command line arguments
-N ntap
Enter the input data set name or file immediately after
typing -N unless the input is from a pipe in which case
the -N entry must be omitted. This input file should
include the complete path name if the file resides in a
different directory. Example -N/b/vsp/dummy tells the
program to look for file 'dummy' in directory '/b/vsp'.
-O otap
Enter the output data set name or file immediately
after typing -O. This output file is not required when
piping the output to another process. The output data
set also requires the full path name (see above).
-Q qtap
Enter the QC output seismic data set name or file
immediately after typing -Q. This must be a disk file
and cannot be piped. The QC output consists of single
trace records of the final reference stack within the
time gate defined below. This output can also be used
for wavelet processing (e.g. shaping using shape2 or
inverse filtering using lsqinv). The total number of QC
traces will be equal to the number of records picked.
The default is no QC output.
-C etap
Enter the QC pick output data set name or file immedi-
ately after typing -C. This must be a disk file and
cannot be piped. This QC output consists of one line
per input trace containing the line index (LinInd), the
depth index (DphInd), and the pick value. This can be
used in any XYZ display program as a QC tool.
-t itime
Enter the global center time of the window (ms). Or,
optionally...
-T ttap
Enter the name of a flat file containing record-
time(ms) pairs or an xsd pick file picked on a stack.
2D applications: for the flat file format the first
column is the control record numbers and the second
column is the window center times at those records
(trace record numbers and pick file record number must
correspond -> see -swr[] entry below); for the xsd file
the records must be in the record column (anything can
be in the trace column). Linear interpolation is done
between records. 3D applications: the flat file format
has 3 columns - LI, DI, and time; the xsd pick file
(it's a good idea to pick segments for each record or
LI) must have LIs in the record column and DIs in the
trace column (user ufh or trched to force this). The
program determines the file format internally. However
for 3D applications where the data are not flattened on
the zone of interest it is recommended that a tool such
as tim2hed3d be used to insert trace header times (see
-WH flag below).
-WH Enter the command line argument '-WH' to trace header
times to define a window center time. For each input
gather read the individual trace times stored in header
word -swr[] below are averaged to arrive at a single
window center time for that gather.
-swr recwrd
For method (2) trace header extraction of window center
times enter the trace header mnemonic containing the
times (default = none); for method (3) 2D pick file
entry of window center times enter the trace header
mnemonic containing the record numbers keyed to the
pick file (default = RecNum.) Note: for 3D application
it is recommended that trace header times be inserted
using a program like tim2hed3d.
-w iwind
Enter the length of the window (ms). No default.
-phase
Enter the command line argument '-phase' to look for
phase rotation angles, otherwise the program will look
for static shifts.
-amp Enter the command line argument '-amp' to compute
amplitude of each trace
-scl scl
Enter the % 2047 scale factor. Default = 15
-limin limin
Enter the minimum LI of the stack (if not in the line
header). Default is to use the line header value.
-limax limax
Enter the maximum LI of the stack (if not in the line
header). Default is to use the line header value.
-dimin dimin
Enter the minimum DI of the stack (if not in the line
header). Default is to use the line header value.
-dimax dimax
Enter the maximum DI of the stack (if not in the line
header). Default is to use the line header value.
-i niter
Enter the number of iterations desired. This should be
the result of examining a test record. Default = 5.
Not used for phase rotations.
-b thr
Enter the correlation threshold to accept. Correla-
tions used in picker are normalized so the the maximum
possible value is 1 (say if both the reference trace
and the current trace to be shifted were identical).
Any interation for any trace falling below this corre-
lation threshold value will be ignored (although all
iterations will be completed). Default is 0.0. Not
used for phase rotations.
-rmin dmin
Enter the minimum range to pick. Default is to use the
minimum range of the input gather.
-rmax dmax
Enter the maximum range to pick. Default is to use the
maximum range of the input gather.
-l nlags
Enter number of positive (or negative) lags in the
cross-correlation (given in samples). This is analo-
gous to the large lag window in pickusp. The value
should be the result of examining a test record. The
total number of lags in the correlation function will
be 2*nlags+1. Default = 10. Not used for phase rota-
tions.
-fl fl
Enter the fixed low cut frequency (Hz). This is the
fixed low side of a Butterworth filter and represents
the 6db down point of the rolloff. Default = 1.0
-fc fc
Enter the starting hi-cut frequency (Hz). The hi-cut
Butterworth filter applied to both the reference trace
and the windowed, shifted traces of the current itera-
tion is varied linearly between fl and fh (see below)
from interation 1 to iteration niter. Default = fh
(ending hi-cut). Not used for phase rotations.
-fh fh
Enter the ending hi-cut frequency (Hz). Default = 1/2
Nyquist.
-swo stawrdo
Enter the optional header word menemonic to store the
cumulative shift for each trace. Default for statics
is StaCor; default for phase rotations is SGRNum.
NOTE: If the mnemonic refers to a float or fake float
word, the shift will actually be stored as a floating
point number. If the mnemonic refers to a short or
long integer word, the shift will actually be stored as
an integer.
-uo unito
Enter the scale factor to apply to the output shifts.
This is used to store fractional valued shifts, e.g.
unit=10 allows 1/10 ms shifts to be stored. Programs
like rest which can be used to unapply these shifts
have comparable scaling input to decode the proper
values. For the scor option the residual shifts writ-
ten into the event tape are scaled up by unito (default
here is 100) and this factor is written into the line
header word ReSpFm which is read by scorusp. Default =
1.0
-pick
Enter the command line argument '-pick' to output total
pick time into the above trace header and/or the pick
file below, else only the residual shifts will be out-
put. The total pick time is defined below for ptap.
-P ptap
Enter optional pick file name. This file will capture
the total pick time in a variety of formats (see below)
using the formula: pick_time = tdatum-start+stor,
where tdatum is user specified on the command line
(see below), start is picked up from the input trace
headers in the header word specified on the command
line by -swi[], and stor is the current computed resi-
dual shift. If flattening of the input data was done
using flatten then tdatum will be the value used in the
flattening run; if the flattening was done using vred
then tdatum=0. (This all assumes that the flattening
programs use the same header mnemonic as picker.)
-d tdatum
Enter the time (ms) datum to compute the total pick
time. Default = 0. Not used for phase rotations.
-swi stawrdi
Enter the header word menemonic to retrieve the shifts
applied using flatten or vred. Remember we use these
programs in effect as guide functions since when the
data is "sort of" flat we can use a single window in
picker. This option is only valid if the pick file is
specified on the command line ( -P[]) but then you must
enter something. Not used for phase rotations.
NOTE: If the mnemonic refers to a float or fake float
word, the shift will actually be read as a floating
point number. If the mnemonic refers to a short or
long integer word, the shift will actually be read as
an integer.
-ui uniti
Enter the scale factor to apply to the input shifts.
This is used to retrieve fractional valued shifts, e.g.
unit=10 allows 1/10 ms shifts to be retrieved. Pro-
grams like rest which can be used to unapply these
shifts have comparable scaling input to decode the
proper values. Default = 1.0. Not used for phase rota-
tions.
-xsd Enter the command line argument '-xsd' to output pick
file in xsd format, else
-gli enter the command line argument '-gli' to output pick
file in gli format, else
the output pick file consists of one line per input
trace with rec#,trc#,pick(ms)
-rs nrst
Enter start record number. Default value is the first
record.
-re nred
Enter end record number. Default value is last record.
-scor
Enter the command line argument '-scor' to output an
event tape format to -O[] (or a pipe) suitable for
scorusp. Unlike the old event tape format this one is
in ordinary seismic format and can be scan'd and the
samples printed out. Note: the pick option and the scor
option are mutually exclusive.
-sign
Enter the command line argument '-sign' to do sign bit
correlation. This really invokes phase correlation and
minimizes the effect of weak vs strong amplitudes.
Within the analysis window the input data is first con-
verted to 1's and -1's based on whether the data ampli-
tude is > 1 or <= 1. Througout the rest of the comput-
tations everything else is the same. Not used for phase
rotation.
-S Enter the command line argument '-S' to smooth the
residual picks using the iterative reweighted least
squares approach of Mike Bush's (Amoco London). This
has no effect on any flattening done by picker but will
affect shifts output to either trace headers or to pick
files. Smoothing static shifts is something of an art
form and caution is advised - at the very least some
parameter testing of the smoothing order below is
advised. Not used for phase rotation.
-o iord
Enter the smoothing order. Choosing this governs how
smooth the picks become. In general the smaller the
order the more detail left in the picks. Default =
#traces per rec/10. Not used for phase rotation.
-F For static picking or event picking enter the command
line argument '-F' to use the first nstk live traces as
the reference trace and do a single pass correlation of
this on the gather to compute the shifts.
-s nstk
Enter the number of live traces, starting from trace 1,
to stack as reference for option -F. Default = 1
-med For static picking or event picking enter the command
line argument '-med' to use median correlation matrix
(of all trace pairs in gather) method which uses as a
shift the median of the matrix diagonal. The default
method for static picking or event picking builds a
reference trace by stacking the gather then correlating
the gather traces with the reference trace to obtain
the shifts for that iteration. Not used for phase rota-
tion.
-maa For the amplitude picking option enter the command line
argument '-maa' to flag maximum absolute amplitude,
else average absolute amplitude is assumed.
-E Enter the command line argument '-E' to use the
envelope of the traces instead of the traces them-
selves. This has the up-side of desensitizing the
correlation process to the efects of phase, but has the
downsize of reducing the character of the waveforms
raising the proabability of cycle skips. Not used for
phase rotation.
-D Enter the command line argument '-D' to turn on auto
datuming. This is useful when inputting vred data for
which the time datum is unknown, i.e. a default first
break vred will put the f.b. energy not at time zero
but at some delayed time which the user might not know
(if you do use -d{tdatum} above). A fin al reference
stack is computed over the time window, envelope calcu-
lated, and the delay time picked on the maximum envelop
amplitude. The auto datum may change with each record
(the tdatum value above is global). Not used for phase
rotation.
-D3 Enter the command line argument '-D3' to flag 3D input
data. For window center times input in a file this
tells whether to interpolate in a 2D or 3D sense (i.e.
linear or areal interpolation of the times).
-QCT Enter the command line argument '-QCT' to output the
window center times into the printout file. Each line
is tageed at the beginning with the string 'rtldt' so
that the printout file can be grep'd. Each line con-
tains RecNum, TrcNum, LinInd, DphInd, window time.
-V Enter the command line argument '-V' to get additional
printout.
-vV Enter the command line argument '-vV' to get very ver-
bose printout.
-? Enter the command line argument '-?' to get online
help. The program terminates after the help screen is
printed.
EXAMPLES
A. After picking a rough first break (the xsd pick file
called flat.pik) we run
flatten -Nindata -Pflat.pik -HwSGRDat -t1000 |
rest -Oflat_data -SWSGRDat
where the output file flat_data now has been approximately
flattened on the first breaks. The times are all written
into the trace header word SGRDat. We run the picking pro-
gram:
picker -Nflat_data -Otrimmed_data -swiSGRDat -d1000
-w500 -t1000 -i5 -fl1 -fc10 -fh50 -S -xsd -Pshifts -pick
where we have written the picked times out to an xsd pick
file that can be loaded into an xsd display of the data.
The pick file contains the total pick time not the residual
picks and they have been smoothed.
B. Choosing an average refraction velocity (by running test
velocities on some control records along the line) we run
vred -Nindata -vred3500 -swSGRDat |
picker -Otrimmed_data -swiSGRDat -w200 -i5
-fl2 -fc5fR -fh50 -S -xsd -Pshifts -pick -D
where we have used the -D auto time datum option with the
vred refraction run to apply the proper delay time to the
shifts in each record.
C. Estimating phase rotations on 3D data:
picker -Nindata -Orot_data -w200 -Ttimes_file -phase -w100
-D3
D. Picking amplitudes on 3D data (for surface consistent
amplitude corrections)
picker -Nn_data -Oo_data -w2800 -t1400 -scor -amp -maa
Here we are centering a 2800ms window at 1400ms and picking
maximum absolute amplitudes over this zone and storing the
scale factors into an event tape format ready for sc3d. D.
Trim statics on input NMO corrected CDP gathers:
picker -Nidata -Oodata -w200 -swrSGRDat -WH
The output gathers will be trimmed based on the event center
times extracted fromt he trace header word SGRDat
BUGS
unknown
SEE ALSO
pickusp, scorusp, sc3d, flatten, recshift, tim2hed3d, vred,
rest
AUTHOR
Paul Gutowski, APR, x3146, zprg03@trc.amoco.com or
TRCVM(ZPRG03)
COPYRIGHT
copyright 2001, Amoco Production Company
All Rights Reserved
an affiliate of BP America Inc.
Man(1) output converted with
man2html