SYNOPSIS

PERL PROGRAM NAME:

AUTHOR: Juan Lorenzo (Perl module only)

DATE:

DESCRIPTION:

Version:

USE

NOTES

Examples

SYNOPSIS

SEISMIC UNIX NOTES SUINVCO3D - Seismic INVersion of Common Offset data with V(X,Y,Z) velocity

	     function in 3D							



     suinvco3d <infile >outfile [optional parameters] 				



 Required Parameters:								

 vfile=		  file containing velocity array v[nvy][nvx][nvz]	

 nzv=		   number of z samples (1st dimension) in velocity		

 nxm=			number of midpoints of input traces			

 nym=			number of lines 					

 geo_type=		geometry type						

			1 ---- general velocity distribution v(x,y,z)		

			2 ---- v(x,z) medium					

			3 ---- v(z) medium					

 com_type=		computation type, determines what tables are needed	

			1 ---- only needs traveltime,	   weight=1.0		

			2 ---- traveltime, propagation angles,  weight=ctheta	

			3 ---- traveltime, angle and amplitude,			

						  weight = det/as/ag/(1+ctheta)	

 nzt=		   number of z samples (1st dimension) in traveltime		

 nxt=		   number of x samples (2nd dimension) in traveltime		

 nyt=		   number of y samples (3rd dimension) in traveltime		

 tfile=		  file containing traveltime array t[nyt][nxt][nzt]		

 ampfile		file containing amplitude array amp[nyt][nxt][nzt]	

 d21file=		file containing Beylkin determinant component array	

 d22file=		file containing Beylkin determinant component array	

 d23file=		file containing Beylkin determinant component array	

 d31file=		file containing Beylkin determinant component array	

 d32file=		file containing Beylkin determinant component array	

 d33file=		file containing Beylkin determinant component array	

 a1file=		 file containing ray propagation angle (polar) array	

 b1file=		 file containing ray propagation angle (azimuth) array	



 Optional Parameters:								

 dt= or from header (dt) 	time sampling interval of input data		

 offs= or from header (offset) 	source-receiver offset 			

 dxm= or from header (d2) 	x sampling interval of midpoints 		

 fxm=0		  first midpoint in input trace					

 dym=50.0		y sampling interval of midpoints 			

 fym=0		  y-coordinate of first midpoint in input trace			

 nxv=		   number of x samples (2nd dimension) in velocity		

 nyv=		   number of y samples (3rd dimension) in velocity		

 dxv=50.0		x sampling interval of velocity				

 fxv=0.0		first x sample of velocity				

 dyv=50.0		y sampling interval of velocity				

 fyv=0.0		first y sample of velocity				

 dzv=50.0		z sampling interval of velocity				

 fzv=0.0		first z sample of velocity				

 nxb=nx/2		band centered at midpoints (see note)			

 fxo=0.0		x-coordinate of first output trace 			

 dxo=15.0		horizontal spacing of output trace 			

 nxo=101		number of output traces 				",	

 fyo=0.0		y-coordinate of first output trace			

 dyo=15.0		y-coordinate spacing of output trace			

 nyo=101		number of output traces in y-direction			

 fzo=0.0		z-coordinate of first point in output trace 		

 dzo=15.0		vertical spacing of output trace 			

 nzo=101		number of points in output trace			",	

 dxt=100.0		x-coordinate spacing of input tables(traveltime, etc)	

 dyt=100.0		y-coordinate spacing of input tables(traveltime, etc)	

 dzt=100.0		z-coordinate spacing of input tables(traveltime, etc)	

 xt0=0.0		x-coordinate of first input tables			

 xt1=0.0		x-coordinate of last input tables			

 yt0=0.0		y-coordinate of first input tables		 	

 yt1=0.0		y-coordinate of last input tables			

 fmax=0.25/dt		Maximum frequency set for operator antialiasing		

 ang=180		Maximum dip angle allowed in the image			

 apet=45		aperture open angle for summation			

 alias=0		=1 to set the anti-aliasing filter			

 verbose=1		=1 to print some useful information			



 Notes:									



 The information needed in the computation of the weighting factor		

 in Kirchhoff inversion formula includes traveltime, amplitude, 		

 and Beylkin determinant at each grid point for each source/receiver		

 point. For a 3-D nonzero common-offset inversion, the Beylkin			

 determinant is computed from a 3x3 matrix with each element 			

 containing a sum of quantities from the source and the receiver.		

 The nine elements in the Beylkin matrix for each source/receiver		

 can be determined by eight quantities. These quantities can be		

 computed by the dynamic ray tracer. Tables of traveltime, amplitude,		

 and Beylkin matrix elements from each source and receiver are			

 pre-computed and stored in files.						



 For each trace, tables of traveltime, amplitude and Beylkin matrix		

 at the source and receiver location are input or interpolated from		

 neighboring tables. For the computation of weighting factor, linear		

 interpolation is used to determine the weighting factor at each		

 output grid point, and weighted diffraction summation is then 		

 applied. For each midpoint, the traveltimes and weight factors are		

 calculated in the horizontal range of (xm-nxb*dx-z*tan(apet),			

 xm+nxb*dx+z*tan(apet)).							



 Offsets are signed - may be positive or negative. 				", 







 This algorithm is based on the inversion formulas in chaper 5 of

 _Mathematics of Multimensional Seismic Migration, Imaging and Inversion_ 

 (Springer-Verlag, 2000), by Bleistein, N., Cohen, J.K.

 and Stockwell, Jr., J. W.

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 a1file

sub alias

sub ang

sub apet

sub b1file

sub com_type

sub d21file

sub d22file

sub d23file

sub d31file

sub d32file

sub d33file

sub dt

sub dxm

sub dxo

sub dxt

sub dxv

sub dym

sub dyo

sub dyt

sub dyv

sub dzo

sub dzt

sub dzv

sub fmax

sub fxm

sub fxo

sub fxv

sub fym

sub fyo

sub fyv

sub fzo

sub fzv

sub geo_type

sub nxb

sub nxm

sub nxo

sub nxt

sub nxv

sub nym

sub nyo

sub nyt

sub nyv

sub nzo

sub nzt

sub nzv

sub offs

sub tfile

sub verbose

sub vfile

sub weight

sub xt0

sub xt1

sub yt0

sub yt1

sub get_max_index

max index = number of input variables -1