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