ahmilb@houu64$bhp3dnmo

                                                     

 BHP3DNMO - NMO for multiple lines, using user-specified arbitrary velocity

            functions                                                      

 bhp3dnmo is a multi-line adaptation of the SU sunmo program.                       

                                                    

 bhp3dnmo <stdin >stdout [optional parameters]            

                                                    

 Optional Parameters:                               

 veltype=par3d         Velocity file type. Use veltype=su for velocities

                       from seismic traces. It is assumed that velocity

                       traces are in correct line,cdp order, and that each

                       trace has the same sampling interval and trace length

                       as the seismic data being corrected. Within a line,

                       velocity traces will be linearly interpolated for

                       missing CDPs.                                       

 velfile=vels.su       Velocity traces if veltype=su.                      

 pardir=3dvels         Directory containing par file for each line, where  

                       files are named line_'num'.par3d. 'num' corresponds 

                       to 3D line number, which is matched against         

                       lhdr value in trace data. Not used if veltype=su.   

 lhdr=ep               Header used to locate par3d file containing correct 

                       vnmo,tnmo,anis1,anis2, and cdp parameters. If       

                       veltype=su, velocity trace header to use for line.  

 tnmo=0                NMO times corresponding to velocities in vnmo      

 vnmo=                 NMO velocities corresponding to times in tnmo      

 anis1=0               two anisotropy coefficients making up quartic term  

 anis2=0               in traveltime curve, corresponding to times in tnmo 

 cdp=                  CDPs for which vnmo & tnmo are specified (see Notes)

 smute=1.5             samples with NMO stretch exceeding smute are zeroed 

 lmute=25              length (in samples) of linear ramp for stretch mute 

 sscale=1              =1 to divide output samples by NMO stretch factor   

 invert=0              =1 to perform (approximate) inverse NMO              

 ixoffset=0            do not consider cross-line offset                   

                       =1 read cross-line offset from trace header         

                                                    

 Notes:                                     

                                                    

 For constant-velocity NMO, specify only one vnmo=constant and omit tnmo.  

                                                    

 The anisotropy coefficients anis1, anis2 permit non-hyperbolicity due      

 to layering, mode conversion, or anisotropy. Default is isotropic NMO.    

                                                    

 For NMO with a velocity function of time only, specify the arrays      

     vnmo=v1,v2,... tnmo=t1,t2,...                  

 where v1 is the velocity at time t1, v2 is the velocity at time t2, ...   

 The times specified in the tnmo array must be monotonically increasing.   

 Linear interpolation and constant extrapolation of the specified velocities

 is used to compute the velocities at times not specified.        

 The same holds for the anisotropy coefficients as a function of time only.

                                                    

 For NMO with a velocity function of time and CDP, specify the array      

     cdp=cdp1,cdp2,...                              

 and, for each CDP specified, specify the vnmo and tnmo arrays as described

 above. The first (vnmo,tnmo) pair corresponds to the first cdp, and so on.

 Linear interpolation and constant extrapolation of 1/velocity^2 is used   

 to compute velocities at CDPs not specified.            

 The same holds for the anisotropy coefficients as a function of time and  

 CDP.                                                

                                                    

 Moveout is defined by                              

                                                    

   1     anis1                                               

  --- x^2 + ------------- x^4.                      

  v^2       1 + anis2 x^2                           

                                                    

 Note: In general, the user should set the cdp parameter.  The default is  

  to use tr.cdp from the first trace and assume only one cdp.         

 Caveat:                                            

 Nmo cannot handle negative moveout as in triplication caused by      

 anisotropy. But negative moveout happens necessarily for negative anis1 at

 sufficiently large offsets. Then the error-negative moveout- is printed.  

 Check anis1. An error (anis2 too small) is also printed if the      

 denominator of the quartic term becomes negative. Check anis2. These errors

 are prompted even if they occur in traces which would not survive the      

 NMO-stretch threshold. Chop off enough far-offset traces (e.g. with suwind)

 if anis1, anis2 are fine for near-offset traces.          

                                                     

 NMO interpolation error is less than 1% for frequencies less than 60% of  

 the Nyquist frequency.                     

                                                    

 Exact inverse NMO is impossible, particularly for early times at large    

 offsets and for frequencies near Nyquist with large interpolation errors.