Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

psEarthOrientation.h File Reference


Detailed Description

Function prototypes for earth orientation calculations transformation.

Author:
Dave Robbins, MHPCC

Robert Daniel DeSonia, MHPCC

Version:
Revision
1.16
Name
rel12
Date:
Date
2006/06/14 01:24:34
Copyright 2005 Maui High Performance Computing Center, University of Hawaii

Definition in file psEarthOrientation.h.

#include "psCoord.h"
#include "psTime.h"
#include "psSphereOps.h"

Include dependency graph for psEarthOrientation.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  psEarthPole
 Structure for respresenting the Earth's pole at any moment or determine velocity at the pole. More...

Enumerations

enum  psPrecessMethod { PS_PRECESS_ROUGH, PS_PRECESS_COMPLETE_A, PS_PRECESS_COMPLETE_B, PS_PRECESS_IAU2000A }
 Method for spherical precession used to specify the level of detail used in calculation. More...

Functions

bool p_psEOCInit (void)
 Initialize EOC.
bool p_psEOCFinalize (void)
 Finalize EOC after using functions that make calls to eocInit for time table data.
psEarthPolepsEarthPoleAlloc (void)
 Allocates a new psEarthPole structure.
psSpherepsAberration (psSphere *apparent, const psSphere *actual, const psSphere *direction, double speed)
 Calculates the apparent position of a star, given its actual position and the velocity vector of the observer.
psSpherepsGravityDeflection (psSphere *apparent, psSphere *actual, psSphere *sun)
 Calculates the apparent position of a star, given its actual position and the position of the sun.
psEarthPolepsEOC_PrecessionModel (const psTime *time)
 Calculates the components of the rotation between the CEO and GCRS frames, X, Y, and s, using the IAU2000A precession & nutation model.
psEarthPolepsEOC_PrecessionCorr (const psTime *time, psTimeBulletin bulletin)
 Provides interpolated corrections to the X and Y components of the polar coordinates from the tables provided by the IERS, just as it does for UT1 and polar motion.
psSphereRotpsSphereRot_CEOtoGCRS (const psEarthPole *pole)
 Constructs the spherical rotation for transforming from CEO to GCRS coordinates.
psSphereRotpsSphereRot_TEOtoCEO (const psTime *time, psEarthPole *tidalCorr)
 Calculates the rotation of the Earth about the CIP.
psEarthPolepsEOC_GetPolarMotion (const psTime *time, psTimeBulletin bulletin)
 Provides interpolated values of the polar motion components extracted from the IERS tables.
psEarthPolepsEOC_PolarTideCorr (const psTime *time)
 Provides tidal corrections to the polar motion components using the Ray model of Simon et al.
psEarthPolepsEOC_NutationCorr (psTime *time)
 Provides the additional corrections due to nutation terms with periods less than or equal to two days, as well as the correction to the s-prime component of polar motion.
psSphereRotpsSphereRot_ITRStoTEO (const psEarthPole *motion)
 Converts the polar motion corrections to a spherical rotation.
psSphereRotpsSpherePrecess (const psTime *fromTime, const psTime *toTime, psPrecessMethod mode)
 Generates the complete spherical rotation to account for precession between two times.


Enumeration Type Documentation

enum psPrecessMethod
 

Method for spherical precession used to specify the level of detail used in calculation.

See also:
psSpherePrecess
Enumerator:
PS_PRECESS_ROUGH  roughest, lowest level of detail
PS_PRECESS_COMPLETE_A  complete level of detail using IERS A
PS_PRECESS_COMPLETE_B  complete level of detail using IERS B
PS_PRECESS_IAU2000A  highest level of detail

Definition at line 40 of file psEarthOrientation.h.


Function Documentation

bool p_psEOCFinalize void   ) 
 

Finalize EOC after using functions that make calls to eocInit for time table data.

Returns:
bool: True if successful, otherwise false.

bool p_psEOCInit void   ) 
 

Initialize EOC.

Parses IERS table data and creates the polynomials used by certain EOC functions.

Returns:
bool: True if successful, otherwise false.

psSphere* psAberration psSphere apparent,
const psSphere actual,
const psSphere direction,
double  speed
 

Calculates the apparent position of a star, given its actual position and the velocity vector of the observer.

The actual and apparent positions are represented as psSphere entries, as is the direction of motion. The speed in that direction is given in units of the speed of light. If the value of apparent is NULL, a new psSphere is allocated, otherwise the point to apparent is used for the result.

Returns:
psSphere*: the actual position of a star.
Parameters:
apparent  apparent position of star
actual  actual position of star
direction  direction of motion of observer
speed  speed of motion of observer

psEarthPole* psEarthPoleAlloc void   ) 
 

Allocates a new psEarthPole structure.

psEarthPole* psEOC_GetPolarMotion const psTime time,
psTimeBulletin  bulletin
 

Provides interpolated values of the polar motion components extracted from the IERS tables.

Returns:
psEarthPole*: interpolated polar motion components.
Parameters:
time  specified time
bulletin  IERS tables for polar coordinate components.

psEarthPole* psEOC_NutationCorr psTime time  ) 
 

Provides the additional corrections due to nutation terms with periods less than or equal to two days, as well as the correction to the s-prime component of polar motion.

Returns:
psEarthPole*: corrected polar motion components.
Parameters:
time  specified time

psEarthPole* psEOC_PolarTideCorr const psTime time  ) 
 

Provides tidal corrections to the polar motion components using the Ray model of Simon et al.

Returns:
psEarthPole*: corrected polar motion components.
Parameters:
time  specified time

psEarthPole* psEOC_PrecessionCorr const psTime time,
psTimeBulletin  bulletin
 

Provides interpolated corrections to the X and Y components of the polar coordinates from the tables provided by the IERS, just as it does for UT1 and polar motion.

Returns:
psEarthPole*: interpolated corrections to the precession components.
Parameters:
time  specified time
bulletin  IERS tables for polar coordinate components.

psEarthPole* psEOC_PrecessionModel const psTime time  ) 
 

Calculates the components of the rotation between the CEO and GCRS frames, X, Y, and s, using the IAU2000A precession & nutation model.

The input time may be represented in any format other than UT1. This routine must give results identical to the IERS XYS2000A subroutine.

Returns:
psEarthPole*: the calculated components of the rotation.
Parameters:
time  specified time

psSphere* psGravityDeflection psSphere apparent,
psSphere actual,
psSphere sun
 

Calculates the apparent position of a star, given its actual position and the position of the sun.

The actual and apparent positions are represented as psSphere entries, as is position of the sun. If the value of apparent is NULL, a new psSphere is allocated, otherwise the point to apparent is used for the result.

Returns:
psSphere*: the apparent position of a star.
Parameters:
apparent  apparent position of star
actual  actual position of star
sun  position of the sun

psSphereRot* psSpherePrecess const psTime fromTime,
const psTime toTime,
psPrecessMethod  mode
 

Generates the complete spherical rotation to account for precession between two times.

The equinoxes shall be Julian equinoxes.

If NULL is provided for either time, it is assumed to have the reference equinox value of J2000. The mode argument is used to specify the level of detail used in the calculation.

Returns:
psSphere*: the resulting spherical rotation
Parameters:
fromTime  equinox of coords input
toTime  equinox of coords output
mode  level of detail to use

psSphereRot* psSphereRot_CEOtoGCRS const psEarthPole pole  ) 
 

Constructs the spherical rotation for transforming from CEO to GCRS coordinates.

The resulting psSphereRot may be used to determine the rotation from CIP/CEO to GCRS. This function must give results identical to the IERS BPN2000.

Returns:
psSphereRot*: spherical rotation for CEO to GCRS transformation.
Parameters:
pole  input coordinates to transform

psSphereRot* psSphereRot_ITRStoTEO const psEarthPole motion  ) 
 

Converts the polar motion corrections to a spherical rotation.

This function should give identical results to the IERS POM2000 subroutine.

Returns:
psSphereRot*: ITRS to TEO sphere rotation.
Parameters:
motion  corrected polar motion components

psSphereRot* psSphereRot_TEOtoCEO const psTime time,
psEarthPole tidalCorr
 

Calculates the rotation of the Earth about the CIP.

If tidalCorr is non-NULL, use the S-component to provide tidal corrections to the UT1 time. If tidalCorr is NULL, no corrections are made & this step is skipped.

Returns:
psSphereRot*: spherical rotation of the Earth about the CIP.
Parameters:
time  specified time
tidalCorr  UT1 polar tide correction or NULL


Generated on Mon Jul 3 14:13:58 2006 for Pan-STARRS Foundation Library by  doxygen 1.4.4