pxform

 Procedure Abstract Required_Reading Keywords Declarations Brief_I/O Detailed_Input Detailed_Output Parameters Exceptions Files Particulars Examples Restrictions Literature_References Author_and_Institution Version

#### Procedure

```      PXFORM ( Position Transformation Matrix )

SUBROUTINE PXFORM ( FROM, TO, ET, ROTATE )

```

#### Abstract

```     Return the matrix that transforms position vectors from one
specified frame to another at a specified epoch.
```

```      FRAMES
```

#### Keywords

```      FRAMES
```

#### Declarations

```
IMPLICIT NONE

INCLUDE               'zzctr.inc'

CHARACTER*(*)         FROM
CHARACTER*(*)         TO
DOUBLE PRECISION      ET
DOUBLE PRECISION      ROTATE  ( 3, 3 )

```

#### Brief_I/O

```     VARIABLE  I/O  DESCRIPTION
--------  ---  --------------------------------------------------
FROM       I   Name of the frame to transform from.
TO         I   Name of the frame to transform to.
ET         I   Epoch of the rotation matrix.
ROTATE     O   A rotation matrix
```

#### Detailed_Input

```     FROM        is the name of some reference frame in which
a position vector is known.

TO          is the name of a reference frame in which it
is desired to represent a position vector.

ET          is the epoch in ephemeris seconds past the epoch
of J2000 (TDB) at which the position transformation
matrix ROTATE should be evaluated.
```

#### Detailed_Output

```     ROTATE      is the matrix that transforms position vectors from
the reference frame FROM to the frame TO at epoch ET.
If (x, y, z) is a position relative to the frame FROM
then the vector ( x', y', z') is the same position
relative to the frame TO at epoch ET.  Here the
vector ( x', y', z' ) is defined by the equation:

-   -       -        -     -  -
| x'  |     |          |   | x  |
| y'  |     |  ROTATE  |   | y  |
| z'  |  =  |          |   | z  |
-   -       -        -     -  -
```

#### Parameters

```     None.
```

#### Exceptions

```     1) If sufficient information has not been supplied via loaded
SPICE kernels to compute the transformation between the
two frames, the error will be diagnosed by a routine
in the call tree to this routine.

2) If either frame FROM or TO is not recognized the error
'SPICE(UNKNOWNFRAME)' will be signaled.
```

#### Files

```     None.
```

#### Particulars

```     This routine provides the user level interface to computing
position transformations from one reference frame to another.

Note that the reference frames may be inertial or non-inertial.
However, the user must take care that sufficient SPICE kernel
information is loaded to provide a complete position
transformation path from the FROM frame to the TO frame.
```

#### Examples

```     Suppose that you have geodetic coordinates of a station on the
surface of the earth and that you need the inertial (J2000)
position of this station.  The following code fragment
illustrates how to transform the position of the station to a
J2000 position.

CALL BODVRD ( 'EARTH', RADII, 3, N, ABC  )

EQUATR   =  ABC(1)
POLAR    =  ABC(3)
F        = (EQUATR - POLAR) / EQUATR

CALL GEOREC ( LONG, LAT, 0.0D0,  EQUATR, F, EPOS )

CALL PXFORM ( 'IAU_EARTH', 'J2000', ET,  ROTATE  )
CALL MXV    (  ROTATE,      EPOS,   JPOS         )

The state JPOS is the desired J2000 position of the station.
```

#### Restrictions

```     None.
```

#### Literature_References

```      None.
```

#### Author_and_Institution

```     C.H. Acton      (JPL)
N.J. Bachman    (JPL)
B.V. Semenov    (JPL)
W.L. Taber      (JPL)
```

#### Version

```    SPICELIB Version 1.1.0, 23-SEP-2013 (BVS)

Updated to save the input frame names and POOL state counters
and to do frame name-ID conversions only if the counters have
changed.

SPICELIB Version 1.0.3, 27-FEB-2008 (BVS)

`Wed Apr  5 17:47:06 2017`