GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > ATT / V1-1-1

Constituent: att     Tag: rad750


Interface   Data Structures   File List   Data Fields   Globals  

ATT_math.c File Reference

LAT attitude processing mathematical functions. More...

#include "math.h"
#include "ATT/ATT.h"
#include "ATT_private.h"

Include dependency graph for ATT_math.c:

Include dependency graph

Vector Transform Functions

void ATT_xform_vec_by_quat (double *Ve, const double *Q, const double *Vl)
 Tranform vector coordinates from LAT to J2000.


Quaternion Utility Functions

void ATT_quat_multiply (double *Qr, const double *Qa, const double *Qb)
 Multiply two quaternions.

double ATT_quat_magnitude (const double *Q)
 Get a quaternion magnitude.

void ATT_quat_normalize (double *Q)
 Normallize a quaternion.

void ATT_quat_conjugate (double *Qr, const double *Qa)
 Get a quaternion conjugate.


Vectory Utility Functions

double ATT_vec_magnitude (const double *V)
 Get a vector magnitude.

void ATT_vec_normalize (double *V)
 Normallize a vector.


Functions

void vector_2_longlat (const double *v, double *longitude, double *latitude)
 Routine to convert cartesian coordinates to longitude-latitude like angular coordinates.

void ATT_vec_cart_to_sphr_deg (const double *Vc, double *Vs)
 Transform a cartesian vector to spherical (ra,dec) coordinates (degrees).

void ATT_vec_cart_to_sphr_rad (const double *Vc, double *Vs)
 Transform a cartesian vector to spherical (ra,dec) coordinates (radians).


Detailed Description

LAT attitude processing mathematical functions.

Author:
D.L. Wood

Function Documentation

void ATT_quat_conjugate double *  Qr,
const double *  Qa
 

Get a quaternion conjugate.

Returns the conjugate of quaternion Qa in Qr.

Parameters:
Qa Input quaternion.
Qa[0] = q1 (x)
Qa[1] = q2 (y)
Qa[2] = q3 (z)
Qa[3] = q4 (w)
Qr Output conjugate quaternion.
Qr[0] = q1 (x)
Qr[1] = q2 (y)
Qr[2] = q3 (z)
Qr[3] = q4 (w)

double ATT_quat_magnitude const double *  Q  ) 
 

Get a quaternion magnitude.

Returns the magnitude of quaternion Q.

Parameters:
Q Input quaternion.
Q[0] = q1 (x)
Q[1] = q2 (y)
Q[2] = q3 (z)
Q[3] = q4 (w)
Returns:
The magnitude of Q.

void ATT_quat_multiply double *  Qr,
const double *  Qa,
const double *  Qb
 

Multiply two quaternions.

Multilplies the quaternion Qa by quaternion Qb and stores the result in Qr. Qr = Qb x Qa. This operation is not commutative.

Parameters:
Qa Input quaternion.
Qa[0] = q1 (x)
Qa[1] = q2 (y)
Qa[2] = q3 (z)
Qa[3] = q4 (w)
Qb Input quaternion.
Qb[0] = q1 (x)
Qb[1] = q2 (y)
Qb[2] = q3 (z)
Qb[3] = q4 (w)
Qr Output quaternion product.
Qr[0] = q1 (x)
Qr[1] = q2 (y)
Qr[2] = q3 (z)
Qr[3] = q4 (w)

void ATT_quat_normalize double *  Q  ) 
 

Normallize a quaternion.

Modifies quaternion Q so that the result has magnitude '1'. This function works in place.

Parameters:
Q Input quaternion.
Q[0] = q1 (x)
Q[1] = q2 (y)
Q[2] = q3 (z)
Q[3] = q4 (w)

Here is the call graph for this function:

void ATT_vec_cart_to_sphr_deg const double *  Vc,
double *  Vs
 

Transform a cartesian vector to spherical (ra,dec) coordinates (degrees).

Transforms the vector Vc in (x,y,z) cartesian coordinates into the vector Vs in (ra,dec) spherical coordinates. Vs is returned in degrees.

Parameters:
Vc The input vector in cartisian coordinates.
Vc[0] = x
Vc[1] = y
Vc[2] = z
Vs The output vector in spherical coordinates.
Vs[0] = ra
Vs[1] = dec

Here is the call graph for this function:

void ATT_vec_cart_to_sphr_rad const double *  Vc,
double *  Vs
 

Transform a cartesian vector to spherical (ra,dec) coordinates (radians).

Transforms the vector Vc in (x,y,z) cartesian coordinates into the vector Vs in (ra,dec) spherical coordinates. Vs is returned in radians.

Parameters:
Vc The input vector in cartisian coordinates.
Vc[0] = x
Vc[1] = y
Vc[2] = z
Vs The output vector in spherical coordinates.
Vs[0] = ra
Vs[1] = dec

Here is the call graph for this function:

double ATT_vec_magnitude const double *  V  ) 
 

Get a vector magnitude.

Returns the magnitude of vector V.

Parameters:
V Input vector.
V[0] = x
V[1] = y
V[2] = z
Returns:
The magnitude of V.

void ATT_vec_normalize double *  V  ) 
 

Normallize a vector.

Modifies vector V so that the result has magnitude '1'. This function works in place.

Parameters:
V Input vector.
V[0] = x
V[1] = y
V[2] = z

Here is the call graph for this function:

unsigned int ATT_xform_vec_by_quat double *  Ve,
const double *  Q,
const double *  Vl
 

Tranform vector coordinates from LAT to J2000.

Performs coordinate transformation on the vector Vl, which is assumed to be a cartiesian vector in LAT instrument local coordinates (SC body coordinates). The information in quaternion Q is used to transform the vector coordinates into J2000 (ECI) coordinates. The resulting vector coordinates are stored in Ve.

Parameters:
Q Input quaternion.
Q[0] = q1 (x)
Q[1] = q2 (y)
Q[2] = q3 (z)
Q[3] = q4 (w)
Vl Input vector in LAT coordinates.
Vl[0] = x
Vl[1] = y
Vl[2] = z
Ve Output vector in J2000 coordinates.
Ve[0] = x
Ve[1] = y
Ve[2] = z

Here is the call graph for this function:

void vector_2_longlat const double *  v,
double *  longitude,
double *  latitude
[static]
 

Routine to convert cartesian coordinates to longitude-latitude like angular coordinates.

Adopted from ARGOS/USA ground processing code.

Parameters:
v The input vector in cartisian coordinates.
Vc[0] = x
Vc[1] = y
Vc[2] = z
longitude Stores the output "longitude" coordinate.
latitude Stores the output "latitude" coordinate.


Generated on Fri Mar 25 20:23:43 2005 by doxygen 1.3.3