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

DOCUMENTATION

SYNOPSIS

PERL PROGRAM NAME: supswigp - PostScript Bit-mapped WIGgle plot of a segy data set AUTHOR: Juan Lorenzo (Perl module only) DATE: DESCRIPTION: Version:

USE

NOTES

Examples

SEISMIC UNIX NOTES

 supswigp - PostScript Bit-mapped WIGgle plot of a segy data set        

 supswigp <stdin [optional parameters] >                                

 Optional parameters:                                                   
 key=(keyword)          if set, the values of x2 are set from header field
                        specified by keyword                            
 n2=tr.ntr or number of traces in the data set  (ntr is an alias for n2)
 d1=tr.d1 or tr.dt/10^6 sampling interval in the fast dimension 
   =.004 for seismic            (if not set)                            
   =1.0 for nonseismic          (if not set)                            
 d2=tr.d2                       sampling interval in the slow dimension 
   =1.0                         (if not set)                            
 f1=tr.f1 or tr.delrt/10^3 or 0.0  first sample in the fast dimension   
 f2=tr.f2 or tr.tracr or tr.tracl  first sample in the slow dimension   
   =1.0 for seismic                 (if not set)                        
   =d2 for nonseismic               (if not set)                        

 style=seismic           normal (axis 1 horizontal, axis 2 vertical) or 
                         vsp (same as normal with axis 2 reversed)      
                         Note: vsp requires use of a keyword            

 verbose=0              =1 to print some useful 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()      

 Note that for seismic time domain data, the "fast dimension" is        
 time and the "slow dimension" is usually trace number or range.        
 Also note that "foreign" data tapes may have something unexpected      
 in the d2,f2 fields, use segyclean to clear these if you can afford    
 the processing time or use d2= f2= to override the header values if    
 not.                                                                   

 If key=keyword is set, then the values of x2 are taken from the header
 field represented by the keyword (for example key=offset, will show   
 traces in true offset). This permit unequally spaced traces to be plotted.
 Type   sukeyword -o   to see the complete list of SU keywords. 

 This program is really just a wrapper for the plotting program: pswigb
 See the pswigb selfdoc for the remaining parameters.                   

 Trace header fields accessed: ns, ntr, tracr, tracl, delrt, trid,     
        dt, d1, d2, f1, f2, keyword (if set)                            

 Credits:

        CWP: Dave Hale and Zhiming Li (pswigb, etc.)
           Jack Cohen and John Stockwell (supswigp, etc.)
      Delphi: Alexander Koek, added support for irregularly spaced traces 

        Modified by Brian Zook, Southwest Research Institute, to honor
         scale factors, added vsp style

 Notes:
        When the number of traces isn't known, we need to count
        the traces for pswigb.  You can make this value "known"
        either by getparring n2 or by having the ntr field set
        in the trace header.  A getparred value takes precedence
        over the value in the trace header.

        When we must compute ntr, we don't allocate a 2-d array,
        but just content ourselves with copying trace by trace from
        the data "file" to the pipe into the plotting program.
        Although we could use tr.data, we allocate a trace buffer
        for code clarity.
        
        

supswigp inherits all the properties of PSWIGP

PSWIGP - PostScript WIGgle-trace plot of f(x1,x2) via Polygons Best for few traces. Use PSWIGB (Bitmap version) for many traces.

 pswigp n1= [optional parameters] <binaryfile >postscriptfile           

 Required Parameters:                                                   
 n1                     number of samples in 1st (fast) dimension       

 Optional Parameters:                                                   
 d1=1.0                 sampling interval in 1st dimension              
 f1=0.0                 first sample in 1st dimension                   
 n2=all                 number of samples in 2| ...nd (slow) dimension  
 d2=1.0                 sampling interval in 2nd dimension              
 f2=0.0                 first sample in 2nd dimension                   
 x2=f2,f2+d2,...        array of sampled values in 2nd dimension        
 bias=0.0               data value corresponding to location along axis 2
 perc=100.0             percentile for determining clip         
 clip=(perc percentile) data values < bias+clip and > bias-clip are clipped
 xcur=1.0               wiggle excursion in traces corresponding to clip
 fill=1                 =0 for no fill;                         
                                >0 for pos. fill;                       
                                <0 for neg. fill                        
                               =2 for pos. fill solid, neg. fill grey  
                               =-2for neg. fill solid, pos. fill grey  
                       SHADING: 2<=abs(fill)<=5  2=lightgrey 5=black   
 linewidth=1.0         linewidth in points (0.0 for thinest visible line)
 tracecolor=black       color of traces; should contrast with background
 backcolor=none         color of background; none means no background   
 verbose=1              =1 for info printed on stderr (0 for no info)   
 xbox=1.5               offset in inches of left side of axes box       
 ybox=1.5               offset in inches of bottom side of axes box     
 wbox=6.0               width in inches of axes box                     
 hbox=8.0               height in inches of axes box                    
 x1beg=x1min            value at which axis 1 begins                    
 x1end=x1max            value at which axis 1 ends                      
 d1num=0.0              numbered tic interval on axis 1 (0.0 for automatic)
 f1num=x1min            first numbered tic on axis 1 (used if d1num not 0.0)
 n1tic=1                number of tics per numbered tic on axis 1       
 grid1=none             grid lines on axis 1 - none, dot, dash, or solid
 label1=                label on axis 1                         
 x2beg=x2min            value at which axis 2 begins                    
 x2end=x2max            value at which axis 2 ends                      
 d2num=0.0              numbered tic interval on axis 2 (0.0 for automatic)
 f2num=x2min            first numbered tic on axis 2 (used if d2num not 0.0)
 n2tic=1                number of tics per numbered tic on axis 2       
 grid2=none             grid lines on axis 2 - none, dot, dash, or solid
 label2=                label on axis 2                         
 labelfont=Helvetica    font name for axes labels                       
 labelsize=18           font size for axes labels                       
 title=                 title of plot                                   
 titlefont=Helvetica-Bold font name for title                           
 titlesize=24           font size for title                             
 titlecolor=black       color of title                                  
 axescolor=black        color of axes                                   
 gridcolor=black        color of grid                   | ...           
 axeswidth=1            width (in points) of axes                       
 ticwidth=axeswidth     width (in points) of tic marks          
 gridwidth=axeswidth    width (in points) of grid lines         
 style=seismic          normal (axis 1 horizontal, axis 2 vertical) or  
                        seismic (axis 1 vertical, axis 2 horizontal)    

 curve=curve1,curve2,...  file(s) containing points to draw curve(s)   
 npair=n1,n2,n2,...            number(s) of pairs in each file         
 curvecolor=black,..    color of curve(s)                              
 curvewidth=axeswidth   width (in points) of curve(s)                  
 curvedash=0            solid curve(s), dash indices 1,...,11 produce  
                        curve(s) with various dash styles              

 Note:  linewidth=0.0 produces the thinest possible line on the output. 
 device.  Thus the result is device-dependent, put generally looks the  
 best for seismic traces.                                               

 The curve file is an ascii file with the points specified as x1 x2 pairs,
 one pair to a line.  A "vector" of curve files and curve colors may 
 be specified as curvefile=file1,file2,etc. and similarly               
 curvecolor=color1,color2,etc, and the number | ...of pairs of values   
 in each file as npair=npair1,npair2,... .                             

 All color specifications may also be made in X Window style Hex format
 example:   axescolor=#255                                              

 Legal font names are:                                                  
 AvantGarde-Book AvantGarde-BookOblique AvantGarde-Demi AvantGarde-DemiOblique"
 Bookman-Demi Bookman-DemiItalic Bookman-Light Bookman-LightItalic 
 Courier Courier-Bold Courier-BoldOblique Courier-Oblique 
 Helvetica Helvetica-Bold Helvetica-BoldOblique Helvetica-Oblique 
 Helvetica-Narrow Helvetica-Narrow-Bold Helvetica-Narrow-BoldOblique 
 Helvetica-Narrow-Oblique NewCentrySchlbk-Bold"
 NewCenturySchlbk-BoldItalic NewCenturySchlbk-Roman Palatino-Bold  
 Palatino-BoldItalic Palatino-Italics Palatino-Roman 
 SanSerif-Bold SanSerif-BoldItalic SanSerif-Roman 
 Symbol Times-Bold Times-BoldItalic 
 Times-Roman Times-Italic ZapfChancery-MediumItalic 

CHANGES and their DATES

VERSION = '0.0.2'; 02.09.23 Only redirection allowed.

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

 50 + 43 personalized  params
clear global variables from the memory

sub absclip

 define min and max plotting values
 define min and max plotting values
 

sub bclip

sub bias

G. Bonot 091718 Only shows data to the right (along axis 2) of each sample data value. Data accounts for the right side of waveform amplitude and is adjusted on input

sub box_X0_inch

sub box_Y0_inch

sub box_height_inch

sub box_width_inch

sub clip

 define min and max plotting values

sub cmap define min and max plotting values

sub curve

sub curvecolor

sub curvefile

sub d1

 increment in fast dimension
 usually time and equal to dt

subs d1 and dt

 increment in fast dimension
 usually time and equal to dt 

sub dt_major_divisions

subs d1num, y_tick_increment dy_major_divisions dt_major_divisions

 numbered tick increments along x axis 
 usually in m and only for display 
 
 Kenny Lau
 16 Sept 2018
 Changes the interval between ticks

subs trace_inc trace_inc_m, dx and d2

 increment in fast dimension
 usually time and equal to dt

     only the first trace is read in
     if an increment is not 1 between traces
     you should indicate here
     
     distance increment between traces

sub dy_major_divisions

subs d1num, y_tick_increment dy_major_divisions dt_major_divisions

 numbered tick increments along x axis 
 usually in m and only for display 
 
 Kenny Lau
 16 Sept 2018
 Changes the interval between ticks

sub d1num

subs d1num, y_tick_increment dy_major_divisions dt_major_divisions

 numbered tick increments along x axis 
 usually in m and only for display 
 
 Kenny Lau
 16 Sept 2018
 Changes the interval between ticks

subs trace_inc trace_inc_m, dx and d2

 increment in fast dimension
 usually time and equal to dt

     only the first trace is read in
     if an increment is not 1 between traces
     you should indicate here
     
     distance increment between traces

subs d2num dx_major_divisions and x_tick_increment

 numbered tick increments along x axis 
 usually in m and only for display

sub endian

subs f1, first_time_sample_value and first_y

 value of the first sample tihat is used

sub f1num

subs f1num and first_time_tick_num

 first number at the first tick
 
  Kenny Lau
 16 Sept 2018
 Changes the first number at the first tick

sub f2

 subs f2 and first_distance_sample_value first_x

 value of the first sample tihat is used

 first value in the second dimension (X)
 
 G. Bonot 091718
 Shifts first sample data to right by amount input
 i.e., f2=5 makes data befin at 5 on the x axis.

sub f2num subs f2num and first_distance_tick_num

 first number at the first tick
 
 GTL18
 First number of x axis. Not incremental; only represents the 
 single first vale. X- axis increments ( d2num not equal to 0)
 must be created to use this feature; strictly for visual representation

subs f2 and first_distance_sample_value first_x

 value of the first sample tihat is used

 first value in the second dimension (X)

sub first_distance_tick_num subs f2num and first_distance_tick_num

 first number at the first tick
 
 GTL18
 First number of x axis. Not incremental; only represents the 
 single first vale. X- axis increments ( d2num not equal to 0)
 must be created to use this feature; strictly for visual representation

subs f1, first_time_sample_value and first_y

 value of the first sample tihat is used

sub first_time_tick_num

subs f1num and first_time_tick_num

 first number at the first tick
 
  Kenny Lau
 16 Sept 2018
 Changes the first number at the first tick

subs f2 and first_distance_sample_value first_x

 value of the first sample tihat is used

 first value in the second dimension (X)

subs f1, first_time_sample_value and first_y

 value of the first sample tihat is used

sub ftr

sub grid1

 Kenny Lau
 16 Sept 2018
 Changes the type of line on the first axis

sub grid2

   A. Sivil 091718
   Adds grid lines above x axis as either a dot, dash or a solid line
   

sub gridcolor

sub hbox

sub headerword

sub header_word

sub hiclip

sub hi_clip

sub interp

sub key

sub label1

sub label2

   A. Sivil 091718
   Adds label above x axis in top-right corner

sub labelcolor

sub labelfont

   A. Sivil 091718
   Changes font for label

sub lo_clip

sub loclip

sub mpicks

G. Bonot 091718 Input a file name to which your mouse clicks are to be saved. No visible change observed in xwigb

sub n1

sub n1tic

subs n1tic and num_minor_ticks_betw_time_ticks

 n1tic=1 number of minor ticks shwon between each
   of the numbered ticks on axis 1 (usually time and pointing down)
   
  Kenny Lau
 16 Sept 2018
 Breaks down one tick into X number of minor ticks 

sub n2

ssubs n2tic and num_minor_ticks_betw_distance_ticks

 n2tic=1 number of minor ticks shwon between each
   of the numbered ticks on axis 1 (usually time and pointing down)

   A. Sivil 091718
   Adds minor ticks between each numbered tick on axis 1   

sub npair

ssubs n2tic and num_minor_ticks_betw_distance_ticks

 n2tic=1 number of minor ticks shwon between each
   of the numbered ticks on axis 1 (usually time and pointing down)

   A. Sivil 091718
   Adds minor ticks between each numbered tick on axis 1   

sub num_minor_ticks_betw_time_ticks

subs n1tic and num_minor_ticks_betw_time_ticks

 n1tic=1 number of minor ticks shwon between each
   of the numbered ticks on axis 1 (usually time and pointing down)
   
  Kenny Lau
 16 Sept 2018
 Breaks down one tick into X number of minor ticks 

sub orientation

  seismic style of plotting (time axis pointing down)
  versus mathematical ( y axis up)

sub perc

sub percent

sub picks

 automatically generates a pick file
 

sub plotfile

sub shading plot data using a variable area scheme also sub shading Rachel Gnieski 091718 Plot data using a variable area scheme: Should change the shading of the plot background by inputting a value between 2 and 5 but could not get it to function

sub style

  seismic style of plotting (time axis pointing down)
  versus mathematical ( y axis up)

sub title

 allows for a default graph title ($on) or
 a user-defined title

sub titlecolor

 allows for a default graph title ($on) or
 a user-defined title

sub titlefont

sub tmpdir

subs trace_inc trace_inc_m, dx and d2

 increment in fast dimension
 usually time and equal to dt

     only the first trace is read in
     if an increment is not 1 between traces
     you should indicate here
     
     distance increment between traces

subs trace_inc trace_inc_m, dx and d2

 increment in fast dimension
 usually time and equal to dt

     only the first trace is read in
     if an increment is not 1 between traces
     you should indicate here
     
     distance increment between traces

sub tend_s

minimum value of yaxis (time usually) in seconds

sub tstart_s

  minimum value of yaxis (time usually) in seconds

sub va plot data using a variable area scheme also sub shading Rachel Gnieski 091718 Plot data using a variable area scheme: Should change the shading of the plot background by inputting a value between 2 and 5 but could not get it to function

sub verbose

sub wbox

sub wclip

sub wigclip

sub windowtitle

sub wt

sub x1beg

  minimum value of yaxis (time usually) in seconds

sub x1end

minimum value of yaxis (time usually) in seconds

sub x2

G. Bonot 091718 Lists array of values in the second dimension; displays one isolated sample value in different of the input value

sub x2beg

 minimum value of x axis (time usually) in seconds
 First value shown on x axis GTL18
 

sub x2end

  max value of xaxis (distance or traces, usually) in seconds
  Last value for data shown on x axis GTL18

sub xbox

  Rachel Gnieski 091718
  x pixels fo the upper corner of the window: Changing this value determines where the 
  graph will open up on the screen based on the horizontal row of pixels

sub xcur

how many adjacent wiggles can be overploted

sub xend_m

subs xlabel or label2 ylabel or label1

sub xstart_m

subs d2num dx_major_divisions and x_tick_increment

 numbered tick increments along x axis 
 usually in m and only for display

sub ybox

  Rachel Gnieski 091718
  y pixels for the upper left corner of the window. Changing this value determines
  where the graph will open up on the screen based on the vertical column of pixes.

subs ylabel or label1

sub y_tick_increment

subs d1num, y_tick_increment dy_major_divisions dt_major_divisions

 numbered tick increments along x axis 
 usually in m and only for display 
 
 Kenny Lau
 16 Sept 2018
 Changes the interval between ticks

sub axescolor

sub axeswidth

sub backcolor

sub curvedash

sub fill

sub gridwidth

sub labelsize

sub linewidth

sub ticwidth

sub titlesize

sub tracecolor

sub get_max_index

max index = number of input variables -1