SYNOPSIS
PERL PROGRAM NAME:
AUTHOR: Juan Lorenzo (Perl module only)
DATE:
DESCRIPTION:
Version:
USE
NOTES
Examples
SYNOPSIS
SEISMIC UNIX NOTES SUMUTE - MUTE above (or below) a user-defined polygonal curve with ",
the distance along the curve specified by key header word
sumute <stdin >stdout xmute= tmute= [optional parameters]
Required parameters:
xmute= array of position values as specified by
the `key' parameter
tmute= array of corresponding time values (sec)
in case of air wave muting, correspond to
air blast duration
... or input via files:
nmute= number of x,t values defining mute
xfile= file containing position values as specified by
the `key' parameter
tfile= file containing corresponding time values (sec)
... or via header:
hmute= key header word specifying mute time
Optional parameters:
key=offset Key header word specifying trace offset
=tracl use trace number instead
ntaper=0 number of points to taper before hard
mute (sine squared taper)
mode=0 mute ABOVE the polygonal curve
=1 to zero BELOW the polygonal curve
=2 to mute below AND above a straight line. In this case
xmute,tmute describe the total time length of
the muted zone as a function of xmute the slope
of the line is given by the velocity linvel=
=3 to mute below AND above a constant velocity hyperbola
as in mode=2 xmute,tmute describe the total time
length of the mute zone as a function of xmute,
the velocity is given by the value of linvel=
=4 to mute below AND above a user defined polygonal line
given by xmute, tmute pairs. The widths in time ",
of the muted zone are given by the twindow vector
linvel=330 constant velocity for linear or hyperbolic mute
tm0=0 time shift of linear or hyperbolic mute at
\'key\'=0
twindow= vector of mute zone widths in time, operative only in mode=4
... or input via file:
twfile=
Notes:
The tmute interpolant is extrapolated to the left by the smallest time
sample on the trace and to the right by the last value given in the
tmute array.
The files tfile and xfile are files of binary (C-style) floats.
In the context of this program "above" means earlier time and
"below" means later time (above and below as seen on a seismic section.
The mode=2 option is intended for removing air waves. The mute is
is over a narrow window above and below the line specified by the
the line specified by the velocity "linvel". Here the values of
tmute, xmute or tfile and xfile define the total time width of the mute.
If data are spatial, such as the (z-x) output of a migration, then
depth values are used in place of times in tmute and tfile. The value
of the depth sampling interval is given by the d1 header field
You must use the option key=tracl in sumute in this case.
Caveat: if data are seismic time sections, then tr.dt must be set. If
data are seismic depth sections, then tr.trid must be set to the value
of TRID_DEPTH and the tr.d1 header field must be set.
To find the value of TRID_DEPTH:
type:
sukeyword trid
and look for the entry for "Depth-Range (z-x) traces
Credits:
SEP: Shuki Ronen
CWP: Jack K. Cohen, Dave Hale, John Stockwell
DELPHI: Alexander Koek added airwave mute.
CWP: John Stockwell added modes 3 and 4
USBG: Florian Bleibinhaus added hmute + some range checks on mute times
Trace header fields accessed: ns, dt, delrt, key=keyword, trid, d1
Trace header fields modified: muts or mute
User's notes (Juan Lorenzo)
V 0.0.2
Normally, sumute can only apply one set muting coordinates to one gather at a time.
In this manner you would use a "par_file" e.g.,
tmute=0.128544,0.245747
xmute=73.2464,95.6714
In this particular case, the mute pick coordinates in the "x" direction are tracr values.
sumute sp_fldr4.su par=par_file key=tracr mode=0 | sugain agc=1 wagc=0.1 | suxwigb clip=1.5 &
Now, we have added some options to allow the user to mute a file that contains many gathers at one time. You will need to supply a "multi-gather", mute-type parameter file. That is, sumute.pm can use a concatenated collection of the contents of these individual parfiles. The name of this file is called the "multi_gather_par_file"".
Generate the "parfiles" (x,t values in SUnix "par" format) using the iTopMute Tool. iTopMute saves the picked values into individual "parfiles" named according to their corresponding gather.
To create a multi-gather parameter file this composite "parfile" can be concatenated from individual parfiles using the Tool: Sucat
We now have added the following options to sumute:
gather_type = ep (shotpoint),cdp (cdp gathers),fldr(field data gathers)
multi_gather_par_file = a concatenated file of the individual parfiles
multi_gather_su_file = the su file which was muted interactively to create each of the parfiles, while using the Tool: iTop_Mute
A multi-parameter-file looks as follows:
cdp=1,2
tmute=0.141777,0.251418 xmute=73,96
tmute=0.131777,0.241418 xmute=85,96
Internally, sumute uses "susplit" to break a large multi-gather file into individual shotpoint gathers (ep), or cdp gathers or fldr (gathers) according to Segy key header words.
An example:
Data consists of a single CDP gather, digitized in iTopMute as a function of tracr (x-co-ordinate)
The parameter values in sumute are: gather_type=cdp
header-word=tracr
multi_gather_par_file=list
multi_gather_su_file=sp_fldr4
the file "list" is as follows:
cdp=1
tmute=0.141777,0.251418
xmute=73,96
Note, DO NOT include a separate "data_in" file in the flow. The "data_in" is not necessary because the new option in sumute reads multi_gather_su_file automatically.
CHANGES and their DATES
Nov. 2022, V 0.0.2 June 2023, split files are read from DATA_SEISMIC_SU directory March, 2024, V 0.0.3 corrected error in removal of extra ".su" in output muted file name
Import packages
instantiation of packages
Encapsulated hash of private variables
sub _get_par_sets
instantiate classes
private definitions
read i/p file
capture errors
share values with namespace Use splice to remove the first element (index =0) which is not a number but a gather type of gather name, e.g. cdp or ep or gather
collect tmute and xmute for each gather
sub Step
collects switches and assembles bash instructions by adding the program name
Keeps track of actions for execution in the system collects switches and assembles bash instructions by adding the program name
CASE
with multi_gather_su_file
local definitions
get modules
instantiate modules
declare local variables
Set up
susplit parameter values
clear past temporary, past
single-gather split from composite su file
DEFINE
Collect FLOW(s) Run flow in system independently of sumute
RUN FLOW(s)
LOG FLOW(s)
to screen and FILE
collect output split file names from the DATA_SU_SEISMIC directory
prepare sumute with split files
local error check
get the temporary, single-gather
parameter files that match split data files
error check
get match to an existing split file
First case
i=0
intermediate muting cases
last case
concatenate muted results
create concatenated output file name
cat first case and then the rest in a loop
finish concatenation
Subroutine Steps
Keeps track of actions for execution in the system
when more that one gather is being processed in the flow
at a time
Place contents of each line of the mute tables (t and index)
array into either a tmute or an xmute array for each file
print("$output[$line]\n\n");
print ("tmute is $sumute->{_tmute}\n\n");
print ("$sumute->{_Steps}\n\n");
#print (" sub Steps shows: $sumute->{_Steps_array}[$i]\n\n");
sub note
collects switches and assembles bash instructions by adding the program name
sub clear
sub gather_type
for example, can be ep cdp and refers to the types of gathers that are being muted.
sub header_word_mute
sub hmute
sub key
sub linvel
sub mode
sub multi_gather_par_file
sumute can only handle one set of mute picks per file so a multi-gather file has to be split.
A multi-gather par file for muting assembles these picks into one file using the same format as sunmo par files.
However, currently sumute can not read multi-gather-par files. The user is unaware of this in SeismicUnixGui
multi-gather_par_files are written like sunmo files with cdp numbers on the first line and tnmo and vnmo alternating on successive lines
instantiate classes
module definitions
$sumute->{_par_gather_number_aref}
sub multi_gather_su_file
sub nmute
sub ntaper
sub offset_word
sub par
sub par_directory
selection of arbitrary
parfile directory
sub par_file
sub tfile
sub tm0
sub tmute
sub twindow
sub type
sub xfile
sub xmute
sub get_max_index
max index = number of input variables -1