ahmilb@houu64$bhpinterp

                                                                      

 BHPINTERP - interpolate traces using automatic event picking         

  This code has been adapted from the Seismic UNIX SUINTERP program   

  and the DELPHI INTHDRS program                                      

                                                                      

           suinterp < stdin > stdout                                  

                                                                       

 ntmax=all    Number of samples per trace to get                      

 key=fldr     Ensemble key                                            

 nxmax=350    Maximum ensemble size in traces                         

                                                                       

 ninterp=1    number of traces to output between each pair of input traces

 freq1=4.     starting corner frequency of unaliased range            

 freq2=20.    ending corner frequency of unaliased range              

 deriv=0      =1 means take vertical derivative on pick section       

              (useful if interpolating velocities instead of seismic) 

 linear=0     =0 means use 8 point sinc temporal interpolation        

              =1 means use linear temporal interpolation              

              (useful if interpolating velocities instead of seismic) 

 lent=5       number of time samples to smooth for dip estimate       

 lenx=1       number of traces to smooth for dip estimate             

 lagc=400     number of ms agc for dip estimate                       

 xopt=0       0 compute spatial derivative via FFT                    

                 (assumes input traces regularly spaced and relatively

                  noise-free)                                         

              1 compute spatial derivative via differences            

                 (will work on irregulary spaced data)                

 iopt=0     0 = interpolate

            1 = output low-pass model: useful for QC if interpolator failing

            2 = output dip picks in units of samples/trace            

                                                                      

 verbose=0     verbose = 1 echoes information                          

                                                                      

 tmpdir=        if non-empty, use the value as a directory path       

                prefix for storing temporary files; else if the       

                the CWP_TMPDIR environment variable is set use        

                its value for the path; else use tmpfile()

                                                                      

 Notes:                                                                

 This program outputs 'ninterp' interpolated traces between each pair of

 input traces.  The values for lagc, freq1, and freq2 are only used for

 event tracking. The output data will be full bandwidth with no agc.  The

 default parameters typically will do a satisfactory job of interpolation

 for dips up to about 12 ms/trace.  Using a larger value for freq2 causes

 the algorithm to do a better job on the shallow dips, but to fail on the

 steep dips.  Only one dip is assumed at each time sample between each pair

 of input traces.                                                     

                                                                      

 The key assumption used here is that the low frequency data are unaliased

 and can be used for event tracking. Those dip picks are used to interpolate

 the original full-bandwidth data, giving some measure of interpolation

 at higher frequencies which otherwise would be aliased.  Using iopt equal

 to 1 allows you to visually check whether the low-pass picking model is

 aliased.                                                             

                                                                      

 Trace headers for interpolated traces are also interpolated.         

 NOTE: The trid header must be =1 when traces are interpolated.       

       The trace interpolator sets the trid of interpolated traces    

       to zero, and the header interpolator interpolates all headers  

       whose trid is zero and sets the trids of the infill headers to 

       900.

 The original input traces are passed through this module without     

 modification.                                                        

                                                                       

 The place this code is most likely to fail is on the first breaks.   

                                                                      

 Example run:    suplane | suinterp | suxwigb &