NAME

     rottnsr  -  module  to  rotate   a   tensor   of   multiple-
     source/multiple-component  (MS/MR)  data (2s X 2r) about the
     third axis.  Used to re-orient VSP data, and  also  to  find
     the  "principal time series" for split shear waves in aniso-
     tropic media.


SYNOPSIS

     rottnsr [ -Nroot_ntap ] [ -Oroot_otap ] [ -rsStart_record  ]
     [  -reEnd_record  ]  [  -nsStart_time  ]  [  -neEnd_time ] [
     -axRotnAxis ] [ -rDegrees ] [ -Rfile ] [ -hwindex ] [ -V ] [
     -? ]


DESCRIPTION

     rottnsr  :  This  routine  performs   multi-source/multiple-
     receiver  (MS/MR)rotation  of a tensor of seismic data.   It
     expects four input data files and will produce four  rotated
     output data files [see DISCUSSION below for specifics].

      rottnsr  gets both its data and its parameters from command
     line arguments.  These arguments specify the input and  out-
     put file root names, the start and end  records  and  traces
     for  processing,  the  rotation  axis  orientation, either a
     static rotation angle or a file  of  rotation  angles  as  a
     function  of some index down the line, the index mnemonic to
     associate with said file, and a verbose printout  flag.  You
     may use sticky or non-sticky arguments as you wish.


  Command line arguments
     -N name_root
          Enter the  input  data  set  filename-root  immediately
          after  typing  -N.   This  input  filename-root  should
          include the complete path name if the files reside in a
          different  directory.   For example, -N/b/mc/test tells
          the program to look for files test.21 and  test.22  (or
          files  test.11  and  test.12,  depending  on the source
          index specified with -S), in directory '/b/mc'.

     -O root_otap [optional]
          Enter the output data  set  root  filename  immediately
          after  typing  -O.  This  output  filename-root  should
          include the complete path name if you want the files to
          reside   in   a   different  directory.   For  example,
          -O/b/mc/testout  tells  the  program  to  create  files
          starting in testout in directory '/b/mc'.

     -rs Start_record
          Enter start record number.  Default value is the  first
          record.


     -re End_record
          Enter end record number.  Default value is last record.

     -ns Start_trace
          Enter start trace number.  Default value is  the  first
          trace.

     -ne End_trace
          Enter end trace number.  Default value is last trace.

     -ax axis_index
          Enter the index of the rotation axis.  The default is 3
          (eg vertical).

     -r degrees
          Enter the rotation angle (in + or - degrees  clockwise,
          viewed  from  above,  ie  along  the + direction of the
          rotation axis). The tensor  data  will  be  rotated  to
          refer to new coordinates, rotated from the old ones, by
          this amount.  rottnsr  will unwrap angles  outside  +/-
          90 degrees.  The default is 45.

     -R file
          Enter the fully qualified filename of a flat file  con-
          taining  (index, angle) pairs used to vary the rotation
          angle down the line.  The flat file format is one  pair
          per line.  The program reads them in free format so you
          can either separate the index from  the  angle  with  a
          space or a comma as you wish and use integers or float-
          ing point numbers also as  you  wish.    rottnsr   will
          unwrap  angles outside +/- 90 degrees.  [see DISCUSSION
          below for convention on  measurement  of  angle].   The
          output   dataset  will  have  the  axis  and  component
          appended to the output  root  as  well  as  the  string
          _var_   to  signify  a  variable rotation angle.  If no
          entry is present the static rotation angle input at  -r
          above will be used.

     -hw index
          Enter the trace header mnemonic with which to associate
          the  index  in  the  attached (index, angle) file.  The
          default is  RecNum .

     -V   Enter the command line argument '-V' to get  additional
          printout.

     -V   Enter the command line argument '-IKP' for IKP process-
          ing.

     -?   Enter the command line  argument  '-?'  to  get  online
          help.  The  program terminates after the help screen is
          printed.


DISCUSSION

     : This  routine  performs  multiple-source/multiple-receiver
     rotation  of  a  tensor  of seismic data.  It is used in two
     contexts:

     1) As a simple re-orientation of  tensor  seismic  data,  as
     when  a 9C VSP dataset must be rotated from the survey coor-
     dinate system into a system aligned with the downgoing ray.

     2) To find the "principal directions", and  "principal  time
     series"  for  shear  waves  split  by propagation through an
     anisotropic medium    (sometimes  called  "Alford"  rotation
     (cf  T86-E-24,  Azimuthal  Anisotropy:  Determination of the
     Principal Time-Series).  In this way, one can  separate  the
     two  pure  modes  of shear-wave propagation, which travel at
     different speeds (unless by chance the medium happens to  be
     isotropic),  and  interfere with one another (and hence with
     interpretation) on any single recorded component (unless  by
     chance  both  source  and  receiver  happen  to be favorably
     oriented).

     Strictly speaking, the algorithm should be applied  only  to
     traces  resulting from a single raypath; a stacked trace may
     be an acceptable noise-reduced surrogate for a  vertical-ray
     trace  under  certain  (poorly-understood)  conditions.  The
     algorithm assumes that, for rays in this  single  direction,
     the  directions  of the principal axes do not vary with dis-
     tance.

     In order to eliminate the need for you to input manually all
     filenames  (four  input  and  four output), a MULTICOMPONENT
     NAMING CONVENTION is used  (see  below).  Hence,  the  input
     files are identified on the command line (after "-N") by the
     root of their filenames only, as with a matrix. (BUT see IKP
     exception, below!)

     rottnsr rotates the data about  one  of  the  (right-handed)
     coordinate  vectors, specified on the command line (after "-
     AX") by 1, 2, or 3; the default is 3.

     rottnsr rotates the  data  with  one  angle  only  (for  all
     times);  different  rotation  angles  for different times is
     unphysical, in a split-shear wave context.  (If the  princi-
     pal axes have different directions in different layers, then
     there will be multiple splitting (at each such  layer),  and
     the  output of the rotation will not conform to the descrip-
     tion below.  See USP routine mctshift to address this  prob-
     lem.)   The  rotation angle is specified on the command line
     (after "-R").

     For split shear-wave  data,  finding  the  optimum  rotation
     angle requires multiple applications of rottnsr, followed by
     a selection among the various results.  The  selection  cri-
     terion  is:  that  rotation  angle is best for which the two
     off-diagonal output traces contain the  lowest  signal/noise
     ratio  (usually  measured  as  the  lowest continuity on the
     corresponding  off-diagonal  sections).   The  two  diagonal
     traces  should  then resemble each other closely, except for
     smooth stretching, and possibly non-smooth amplitude differ-
     ences.  (By  contrast,  before rotation, all four traces may
     have similar signal/noise ratios,  because  of  interference
     between  the two pure modes of shear propagation.) This cri-
     terion is currently implemented only by eyeball; quantifica-
     tion and automation will come later.

     The two diagonal output traces,  rotated  with  the  optimum
     split-shear  angle,  are  called the "principal time-series"
     (cf T86-E-24), because they contain the two  pure  modes  of
     shear-wave propagation (the eigen-modes, or principal modes)
     when the assumptions of the algorithm (see above) are met.

     The results of rotating 4 files test.ij about the z-axis  by
     angle 75 degrees are written in 4 files named test.R3+75.ij,
     stored in the directory from  which  rottnsr  was  executed.
     (BUT see IKP exception, below!)



MULTICOMPONENT NAMING CONVENTION

     All multicomponent files are stored as  SEPARATE  COMPONENTS
     in  SIS  format,  and conform to all conventions established
     for single- component seismic data (including headers,  his-
     torical  line  headers,  etc.).  The tie between the various
     components is established  in  their  names,  which  end  in
     '.ij',  like subscripts on a matrix.  The subscripts i and j
     are taken as integers (1, 2,  or  3)  following  the  normal
     algebraic  convention  (also  adapted in the proposed multi-
     component data standards of the SEG) as follows:

     * The FIRST subscript (i) refers to the orientation  of  the
     source,  since  the source action occurs prior to the recep-
     tion.

     * The SECOND subscript (j) refers to the orientation of  the
     receiver.

     * The indices refer to  a  RIGHT-HANDED  coordinate  system,
     which may be either:
       # line-oriented (if only a single line is under considera-
     tion), or
       # map-consistent (if multiple lines are  considered,  then
     most multicomponent situations require that a single coordi-
     nate system be used throughout, in order to avoid error).
       As long as one is consistent, some flexibility  is  avail-
     able,  but  it  is  easy  to err; the best advice is to just
     follow the "most natural" choices defined below.   Use  your
     creativity somewhere else!

     * The POLARITY of the signals must conform to the coordinate
     system,  so  that  a  positive  trace value on any component
     implies motion in the positive direction of that axis.  With
     multicomponent  data,  it  is  much  easier  to screw up the
     polarities than with single-component data (roughly 3**2 = 9
     times  easier!); take care (in both acquisition and process-
     ing)!

     In some contexts (eg in an offset  VSP),  the  indexing  may
     correspond  to  another  right-handed  coordinate system (eg
     with the z-axis aligned with the downgoing ray, and  the  x-
     axis  lying  in  the  saggital plane).  In such a case, this
     coordinate system should be derived from the foregoing by  a
     proper rotation, using rottnsr.

     * The numerical identifiers are:

       1 = x-axis (horizontal)  If line-oriented,  this  is  most
     naturally  the  INLINE direction (since we are accustomed to
     drawing x-z cross-sections); the polarity must be  the  same
     on  both  sides  of  the source.  If map-consistent, this is
     most naturally EAST, or aligned with the long-axis of a mul-
     tiline or 3D survey.

       2 = y-axis (horizontal)  If line-oriented,  this  is  most
     naturally  the  CROSSLINE direction, and (right-handed) care
     must be used in the polarity.  If  map-consistent,  this  is
     most naturally SOUTH, rather than north, or (for a multiline
     or 3D survey) 90  degrees  clockwise  from  +x  viewed  from
     above, (as with a matrix), rather than counter-clockwise (as
     with a graph); see below.

       3 =  z-axis  (vertical)   Whether  line-oriented  or  map-
     consistent,  the  SEG  convention  is to take positive DOWN,
     rather than up, as a physicist might prefer.  (This  conven-
     tion,  along  with +x = East, is what forces +y to be South,
     or 90 degrees clockwise, as discussed above.  If you  insist
     on North (or 90 degrees counter-clockwise), the right-handed
     convention means that +z is UP; this may get you into  trou-
     ble later... )


ALGORITHM

     rottnsr implements the following equation at every time t:

          y.ij(t)    =    sum-over-m,n:    R[iaxis].im(degs)    *
     R[iaxis].jn(degs) * x.mn(t)

     where y(t) is the output tensor,  x(t) is the input  tensor,
     and  R[iaxis](degrees)  is  the rotation matrix for rotation
     about iaxis.

     rottnsr gets both its data and its parameters  from  command
     line arguments. These arguments specify the input, the start
     and end records, the start  and  end  traces,  the  rotation
     axis,  the  rotation angle, and the IKP and verbose printout
     flags.


IKP processing
     If rottnsr is run inside IKP,  the  input  and  output  com-
     ponents  are  connected  via the process box, rather than by
     the command line argument -N.  The connections are specified
     in  the  following  manner:  spigots 0,3, 5, 7 are for input
     components IN THIS ORDER (using  here  the  above  MULTICOM-
     PONENT NAMING CONVENTION):

     For rotation about the x-axis: 22, 23, 32, 33.

     For rotation about the y-axis: 11, 13, 31, 33.

     For rotation about the z-axis: 11, 12, 21, 22.

     You must specify the FULL identifier for each spigot; ie NOT
     just  the  name-root,  as is done outside IKP (consequently,
     the names need not conform to  the  CONVENTION).  Similarly,
     spigots  1,  4,  6, 8 are for the  output components (in the
     same order as the input).  Again, you must specify fully the
     desired destination of these outputs.


BUGS

     None known; please notify the AUTHOR if you find any.


SEE ALSO

     rotvctr(1) mctshift(1)


AUTHOR

      Leon Thomsen (APR x 3920; zlat02)
      USP updates by P.G.A. Garossino
      (APR x3932; pgarossino@trc.amoco.com )


COPYRIGHT

     copyright 2001, Amoco Production Company
               All Rights Reserved
          an affiliate of BP America Inc.








Man(1) output converted with man2html