Tst39 Documentation

Synopsis

This is an IDL program that tests the routine GetSlowness and prints out the condition number of the volumetric tensor (which is inverted during the process), the slowness vector of the event (which gives its speed and direction), and the difference between the calculated and provided time delays.

PURPOSE

This IDL procedure calls an IDL subroutine GetSlowness.pro, which \ in turn uses an array of satellite locations to make a volumetric tensor that is \ in turn used with a provide array of relative time delays to make an estimate of \ the slowness vector. Finally, we use that slowness vector to \ plot a time delay array.

CATEGORY

Tensor Time Delays

CALLING SEQUENCE

This test program is called from idl as follows
IDL> tst39, myCase, tdSeed, tdMat, satLoc
where myCase is the test case you wish.

The other items are explained in the INPUTS section below.

INPUTS

All inputs are optional, but to get to the second input, you have to provide the first.

If you do not provide inputs, we use our current favorites.

OUTPUTS

A listing of the calculated slowness vector, which is a 3d vector

Here is a typical test run:

IDL> tst39,1
Case =        1
Z-incident case, seed =       1.00000
The condition number is:       1.00000
The slowness vector is:       0.00000      0.00000      1.00000
This calculated time delay - original time delay is:
      0.00000      0.00000      0.00000      0.00000
      0.00000      0.00000      0.00000      0.00000
      0.00000      0.00000      0.00000      0.00000
      0.00000      0.00000      0.00000      0.00000
IDL> tst39,2
Case =        2
X-incident case, seed =       1.00000
The condition number is:       1.00000
The slowness vector is:       1.63299      0.00000      0.00000
This calculated time delay - original time delay is:
      0.00000      0.00000      0.00000      0.00000
      0.00000      0.00000      0.00000      0.00000
      0.00000      0.00000      0.00000      0.00000
      0.00000      0.00000      0.00000      0.00000
IDL>
Notice that in the z-direction case the slowness vectro is (0,0,1), while in the x-direction case the slowness vector is (1.63299,0,0). This is because we set the base of our height one tetrahedron in the (x,y) plane. Thus the distance (height) in the z-direction is 1, while if a wave comes in the x-direction, there is less length. Hence the same time delay will be "slower" in the (shorter) x-direction.

Test Cases

We provide several test cases for your enjoyment. (The input value of tdSeed has a default value of 1.) They are :
  1. Case 1: Z-incident case. We make a perfect tetrahedron, (height of 1, all sides the same length), and build the time differences so that a slowness vector of (0,0,tdSeed) should be calculated.
  2. Case 2: X-incident case. We make a perfect tetrahedron, (height of 1, all sides the same length), and build the time differences so that a slowness vector of (tdSeed,0,0) should be calculated.
  3. Case 3: Y-incident case. We make a perfect tetrahedron, (height of 1, all sides the same length), and build the time differences so that a slowness vector of (0,tdseed,0) should be calculated.
  4. Case 4: Negative Y-incident case. We make a perfect tetrahedron, (height of 1, all sides the same length), and build the time differences so that a slowness vector of (0,-tdSeed,0) should be calculated.
  5. Case 5: You provide the tdSeed, we provide a perfect tetrahedron, and a slowness vector of (1,2,3). We make the correct time delay matrix, and hope we get the same slowness vector back.
  6. Case 6: You provide the tdSeed, we provide a perfect tetrahedron, and a slowness vector of (-1,1,10). We make the correct time delay matrix, and hope we get the same slowness vector back.
  7. Case 7: You provide the tdSeed, we provide a perfect tetrahedron, and a slowness vector of (-1,1,10). We make the correct time delay matrix, corrupt it, and hope we do not get the same slowness vector back.
  8. Case 8: This is the roll your own. You have to provide all the input arguments, i.e. myCase, tdSeed, tdMat, satLoc.

    If you want to make your own test case, here is how to do it:

    Set the slowness vector, ms, and the satellite vectors, x, y, z, and w. Then execute the following IDL code:

            xt = total ( ms*x)
            yt = total ( ms*y)
            zt = total ( ms*z)
            wt = total ( ms*w)
            tdMat = [ $
                     [xt-xt,xt-yt,xt-zt,xt-wt], $
                     [yt-xt,yt-yt,yt-zt,yt-wt], $
                     [zt-xt,zt-yt,zt-zt,zt-wt], $
                     [wt-xt,wt-yt,wt-zt,wt-wt] $
                    ]
    

    This code calculated the location in time of the event at x, y, z, w as xt, yt, zt, wt, and then it builds the time delay array.

SIDE EFFECTS

None.

RESTRICTIONS

None.

MODIFICATION HISTORY

Written July 7, 2002 WMPK IAGP
Wm P. Kamp