SYNOPSIS

PERL PROGRAM NAME:

AUTHOR: Juan Lorenzo (Perl module only)

DATE:

DESCRIPTION:

Version:

USE

NOTES

Examples

SYNOPSIS

SEISMIC UNIX NOTES SUFRAC -- take general (fractional) time derivative or integral of

	    data, plus a phase shift.  Input is CAUSAL time-indexed	

	    or depth-indexed data.					



 sufrac power= [optional parameters] <indata >outdata 			



 Optional parameters:							

	power=0		exponent of (-i*omega)	 			

			=0  ==> phase shift only			

			>0  ==> differentiation				

			<0  ==> integration				



	sign=-1			sign in front of i * omega		

	dt=(from header)	time sample interval (in seconds)	

	phasefac=0		phase shift by phase=phasefac*PI	

	verbose=0		=1 for advisory messages		



 Examples:								

  preprocess to correct 3D data for 2.5D migration			

         sufrac < sudata power=.5 sign=1 | ...				

  preprocess to correct susynlv, susynvxz, etc. (2D data) for 2D migration

         sufrac < sudata phasefac=.25 | ...				

 The filter is applied in frequency domain.				

 if dt is not set in header, then dt is mandatory			



 Algorithm:								

		g(t) = Re[INVFTT{ ( (sign) iw)^power FFT(f)}]		

 Caveat:								

 Large amplitude errors will result if the data set has too few points.



 Good numerical integration routine needed!				

 For example, see Gnu Scientific Library.				





 Credits:

	CWP: Chris Liner, Jack K. Cohen, Dave Hale (pfas)

      CWP: Zhenyue Liu and John Stockwell added phase shift option

	CENPET: Werner M. Heigl - added well log support



 Trace header fields accessed: ns, dt, trid, d1

/

User's notes (Juan Lorenzo) untested

CHANGES and their DATES

Import packages

instantiation of packages

Encapsulated hash of private variables

sub Step

collects switches and assembles bash instructions by adding the program name

sub note

collects switches and assembles bash instructions by adding the program name

sub clear

sub dt

sub phasefac

sub power

sub sign

sub verbose

sub get_max_index

max index = number of input variables -1