The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

DOCUMENTATION

SYNOPSIS

 PERL PROGRAM NAME:  SUPHASEVEL - Multi-mode PHASE VELocity dispersion map computed
AUTHOR: Juan Lorenzo, Derek Goff (Perl module only)
 DATE:   OCT 24 2013
 DESCRIPTION: A package that makes using and understanding suphasevel easier
 Version: 

USE

NOTES This Program derives from suphasevel in Seismic Unix '_note' keeps track of actions for use in graphics '_Step' keeps track of actions for execution in the system

Examples

SEISMIC UNIX NOTES

 SUPHASEVEL - Multi-mode PHASE VELocity dispersion map computed
              from shot record(s)                               

 suphasevel <infile >outfile [optional parameters]              

 Optional parameters:                                           
 fv=330 minimum phase velocity (m/s)                    
 nv=100 number of phase velocities                      
 dv=25          phase velocity step (m/s)                       
 fmax=50        maximum frequency to process (Hz)               
                =0 process to nyquist                           
 norm=0 do not normalize by amplitude spectrum          
                =1 normalize by amplitude spectrum              
 verbose=0      verbose = 1 echoes information                  

 Notes:  Offsets read from headers.                             
  1. output is complex frequency data                           
  2. offset header word must be set (signed offset is ok)       
  3. norm=1 tends to blow up aliasing and other artifacts       
  4. For correct suifft later, use fmax=0                       
  5. For later processing outtrace.dt=domega                    
  6. works for 2D or 3D shots in any offset order               

 Using this program:                                            

 First: use                                                     
        suspecfx < shotrecord.su | suximage                     
 to see what the maximum bandwidth is in your data. This will   
 give you an idea about the possible value for fmax.            

 Second: Plot your data or some subset of your data via:        
     suxwigb < shotrecord.su key=offset                 

 You can then estimate the range of phase velocities by looking
 at the maximum and minimum slopes of arrivals in your data.    
 This will allow you do set first velocity fv and the increment
 in velocity dv, that make sense for your data.         

 You can pick values of offset and time by placing the cursor  
 on the desired location on the plot and pressing the \'s\' key
 The picks will appear in your terminal window.                 

 When displaying, don't forget to use suamp to compute the      
 modulus of the complex values that this program puts out.      

   suphasevel < shotrecord.su [parameters] | suamp | suximage   



 Credits:

        UHouston: Chris Liner June2008 (cloned from suspecfk)

  This code implements the following integral transform
             _
            /
  u(w,v) = / k(w,x,v) u(w,x) dx
         _/
  where
        u(w,v) is the phase velocity dispersion image
        k(w,x,v) is the transform kernel.... exp(-i w x / v)
        u(w,x) = FT[u(t,x)] is the input shot record(s) 
         _/
 Reference: Park, Miller, and Xia (1998, SEG Abstracts)

 Trace header fields accessed: dt, offset, ns
 Trace header fields modified: nx,dt,trid,d1,f1,d2,f2,tracl
 
  Before this can be run, the trace offset must be set
 This is done by using the command 'sushw' to adjust
# the headers

User's notes

In the following case where shotpoint lies inthe middle of the data set Change from: sx=100 offset= -100 to 99

Change to gx=-100 to 99 sx=0 offset=-100 to 99

CHANGES and their DATES

sub Step

collects switches and assembles bash instructions by adding the program name Keeps track of actions for execution in the system

sub note

collects switches and assembles bash instructions by adding the program name Keeps track of actions for possible use in graphics

sub clear

        Sets all variable strings to '' (nothing) 

sub dt

sub dv

        Defines the step size between phase velocities while
        performing the integral transformation

sub fmax

        Defines maximum frequency to process
        (or =0 for nyquist)

sub fv

        Defines the minimum phase velocity to process
        AKA first phase velocity
        

sub key

sub norm

        Determine whether to use amplitude spectrum to normalize
        =0 is off (do not normalize by amplitude spectrum)
        =1 is on (normalize by amplitude spectrum)

sub nv

        Defines the number of phase velocities to test
        AKA total number of steps to take

sub verb

        Decide whether to echo information

sub verbose

        Decide whether to echo information

sub get_max_index

max index = number of input variables -1