Program sftahmute | Read Trace And Header (tah) from standard input, MUTE.
[SYNOPSIS]
sftahmute < in.rsf > out.rsf xmute= tmute= verbose=1 ntaper=12
[COMMENTS]

tah is the abbreviation of Trace And Header.  Madagascar programs 
that begin with sftah are a designed to:
1- read trace and headers from separate rsf files and write them to 
standard output (ie sftahread)
2- filter programs that read and write standard input/output and 
process the tah data (eg sftahnmo, sftahstack)
3- read tah data from standard input and write separate rsf files for 
the trace and headers data (ie sftahwrite)

These programs allow Seismic Unix (su) like processing in Madagascar.  
Some programs have su like names.

Some programs in this suite are sftahread, sftahgethw, ftahhdrmath, 
and sftahwrite.

The sftahmute program is designed to mute data. Trace and header data 
(tah) are read from standard input (usually a pipe).  The trace xmute 
and tmute parameter define the mute start time.  They are interpolated 
to determine the start time for the trace using the trace header 
offset.  The ntaper defines the length in samples of the taper.

EXAMPLE:

sftahsort input=shots-receivers-23900_headfix.rsf           \
sort="xline:600,601 offset"                                 \
| sftahnmo tnmo=0,2,6,10.5,16 vnmo=1500,1500,2250,3250,3700 \
| sftahmute                                                 \
xmute=0,20000 tmute=0,20 ntaper=25                          \
| sftahnmo                                                  \
tnmo=0,2,6,10.5,16                                          \
vnmo=1500,1500,2250,3250,3700                               \
inv=y                                                       \
| sftahmakeskey pkey=xline skey=cdpt                        \
| sftahwrite                                                \
verbose=1                                                   \
label2=cdpt  o2=1 n2=100 d2=1                               \
label3=xline o3=600 n3=1 d3=1                               \
output=mutecmps.rsf                                         \
>/dev/null

sfgrey <mutecmps.rsf | sfpen

In this example the shot organized prestack data in the file 
shots-receivers-23900_headfix.rsf are read in xline offset order by 
sftahsort program.  The headers are in the file 
shots-receivers-23900_headfix_hdr.rsf, the headers parameter default.
The headers are merged with the trace amplitudes and the tah data sent 
down the pipe for nmo, mute, and inverse nmo.  This sequence was used 
to apply the mute using times that were selected from a prestack 
gather with moveout applied.

The sftahnmo program uses the velocity function defined by the tnmo, 
vnmo parameters and the offset header to apply normal moveout to 
the traces.  

sftahmute zeros the shallow data.  TLhe time samples above the line 
through (time,offset) pairs (0,0)(20,20000), are set to zero. There 
is a 25 point taper applied below the zero portion of the traces.

A second sftahnmo execution applied inverse nmoout.  Other than inv=yes 
the parameters are the same as in the first sftahnmo. 

The program sftahmakeskey is used to create a secondary key used 
in the following sftahwrite to define the location to wrte the trace 
in the output file. Sftahmakeskey makes a secondary key (skey=cdpt) 
the count the traces starting in the a primary key gather (pkey=xline).
The input traces gathered by xline by sftahsort. Sftahmakeskey sets 
cdpt to 1 when the trace has a new xline.  If the trace has the same 
xline as the previous trace cdpt is incremented

Sftahwrite writes the the trace data to mutecmp.rsf and the headers are 
written to the file mutecmp_hdr.rsf.  The order of the data in the output 
file is defined by the cdpt and xline trace headers, so the  data order
is (time,cmpt,xline).  Finally, the output volume is displayed using
sfgrey.


[PARAMETERS]
int     | ntaper | =12 |   | 	

       number of samples in the taper of the mute.
    
floats  | tmute | = |   | 	

	   List of floats the same length as list of floats in the xmute
	   parameter.  The (xmute,tmute) pairs are interpolated using the
	   trace headers offset to determine trace start time. The mute is
	   NOT moved based on the first live sample.
	   
  [numtmute]
int     | verbose | =1 |   | 	

       flag to control amount of print
       0 terse, 1 informative, 2 chatty, 3 debug
    
floats  | xmute | = |   | 	

	   List of floats the same length as list of floats in the tmute
	   parameter.  The (xmute,tmute) pairs are interpolated using the
	   trace headers offset to determine trace start time.  The mute is
	   NOT moved based on the first live sample.
	   
  [numxmute]
[DIRECTORY]
user/karl
