SYNOPSIS

PERL PROGRAM NAME:

AUTHOR: Juan Lorenzo (Perl module only)

DATE:

DESCRIPTION:

Version:

USE

NOTES

Examples

SYNOPSIS

SEISMIC UNIX NOTES SUKDMIG3D - Kirchhoff Depth Migration of 3D poststack/prestack data

	sukdmig3d datain= dataout= [parameters] 			



Required parameters:							

ttfile=file for input tttables			       	



Optional Parameters:							



datain=stdin	 file for input seismic traces				

dataout=stdout file for common offset migration output		

crfile=NULL    file for cos theta and ray paths                       



  The following 17 parameters describe tttables: (from ttfile header)	

fxgd= or from header (f1)		first x-sample in tttable	

nxt= or from header (ns)		number of x-samples in tttable	

dxgd= or from header (d1)		x-interval in tttable 		

fygd= or from header (f2)		first y-sample in tttable 	

nyt= or from header (ntr)		number of y-samples in tttable	

dygd= or from header (d2)		y-interval in tttable		

ixsf= or from header (sdel) 	        x in dxgd of first source	

nxs= or from header (nhs) 		number of sources in x		

ixsr= or from header (swdep) 	        ratio of source & gd spacing    

iysf= or from header (gdel)	        y in dygd of first source 	

nys= or from header (nvs)		number of sources in y          

iysr= or from header (gwdep)	        ratio of source & gd spacing    

fzs= or from header (sdepth/1000)	first depth sample in tttable	

nzs= or from header (duse) 		number of depth samples in tttable

dzs= or from header (ep/1000)		depth interval in tttable	

nxgd= or from header (selev)		x size of the traveltime region 

nygd= or from header (gelev)		y size of the traveltime region 

multit= or from header (scalel)       number of multivalued traveltime



  The following two parameters are from data header			

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

ft= or from header (ft)	first time sample of input data		

dxm= or from header (d2)      mid point spacing of input data         



Default: output is 5 times finer in depth and 2 times finer in lateral

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

dzo=0.2*dzs	vertical spacing of output trace (5 times finer)	

nzo=5*(nzs-1)+1 number of points in output trace (5 times finer)	",	

fxo=fxgd	x-coordinate of first output trace	 		

dxo=0.5*dxgd	horizontal spacing of output trace (2 times finer)	

nxo=2*(nxgd-1)+1 number of output traces (2 times finer)		

fyo=fygd	y-coordinate of first output trace			

dyo=0.5*dygd	horizontal spacing of output trace (2 times finer)	

nyo=2*(nygd-1)+1 number of output traces (2 times finer)		



Default: poststack migration						",	

fxoffset=0		first offest in output in x			

fyoffset=0		first offest in output in y			

dxoffset=99999	offset increment in output in x	 		

dyoffset=99999	offset increment in output in y			

nxoffset=1		number of offsets in output in x		

nyoffset=1		number of offsets in output in y		",	

xoffsetmax=99999	x-maximum absolute offset allowed in migration 	

yoffsetmax=99999	y-maximum absolute offset allowed in migration  

xaper=nxt*dxgd/2.5	migration lateral aperature in x		

yaper=nyt*dygd/2.5	migration lateral aperature in y		

angmax=60             max angle to handle                             

fmax=0.25/dt          max frequency in the data                       

jpfile=stderr		job print file name 				

pptr=100		print verbal information at every pptr traces	

ntrmax=100000		maximum number of input traces to be migrated	

ls=0                  point =0 line source =1                         



Notes:								

1. Traveltime tables were generated by program SUTETRARAY (or other	

   ones) on very sparse tetrahedral model, with dimension nys*nxs*nzs 

   *nyt*nxt.                                                          

2. Input seismic traces must be SU format and can be any type of 	

   gathers (common shot, common offset, common CDP, and so on).	", 

3. Migrated traces are output in CDP gathers if velocity analysis	

   is required, with dimension nyoffset*nxoffset*nyo*nxo*nzo.		", 

4. If the offset value of an input trace is not in the offset array 	

   of output, the nearest one in the array is chosen. 		

5. Memory requirement for this program is about			

   [nys*nxs*nzs*nyt*nxt+nyoffset*nxoffset*nxo*nyo*nzo+	       	

   nys*nxo*nzo*nyt*nxt]                                               

6. Input traces must specify source and receiver positions via header	

   fields tr.sx and tr.gx, as well as tr.sy and tr.gy. Offset is 	

   computed automatically.						



Disclaimer:								

This is a research code that will take considerable work to get into	

the form of a a production level 3D migration code. The code is	

offered as is, along with tetramod and sutetraray, to provide a starting

point for researchers who wish to write their own 3D migration codes.







Author:  Zhaobo Meng, 01/10/97,  Colorado School of Mines 



Trace header fields accessed: ns, dt, delrt, d2

Trace header fields modified: sx, gx

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 angmax

sub crfile

sub datain

sub dataout

sub dt

sub dxgd

sub dxm

sub dxo

sub dxoffset

sub dygd

sub dyo

sub dyoffset

sub dzo

sub dzs

sub fmax

sub ft

sub fxgd

sub fxo

sub fxoffset

sub fygd

sub fyo

sub fyoffset

sub fzo

sub fzs

sub ixsf

sub ixsr

sub iysf

sub iysr

sub jpfile

sub ls

sub multit

sub ntrmax

sub nxgd

sub nxo

sub nxoffset

sub nxs

sub nxt

sub nygd

sub nyo

sub nyoffset

sub nys

sub nyt

sub nzo

sub nzs

sub pptr

sub ttfile

sub xaper

sub xoffsetmax

sub yaper

sub yoffsetmax

sub get_max_index

max index = number of input variables -1