HPRNUTANG Name
HPRNUTANG
Author
Craig B. Markwardt, NASA/GSFC Code 662, Greenbelt, MD 20770
craigm@lheamail.gsfc.nasa.gov
UPDATED VERSIONs can be found on my WEB PAGE:
http://cow.physics.wisc.edu/~craigm/idl/idl.html
Purpose
Compute high precision earth precession, nutation and orientation angles
Major Topics
Geometry
Calling Sequence
HPRNUTANG, JDTT, ZETA, THETA, Z, DPSI, DEPS, $
POLAR_X=PMX, POLAR_Y=PMY, JD_UT1=JD_UT1, /USE_EOPDATA, $
TBASE=, FIXED_EPOCH=, FIXED_BASE=, $
/JPL, /NO_UT1, $
MEAN_OBLIQUITY=EPS0, TRUE_OBLIQUITY=EPS, $
GMS_TIME=GMST, GAS_TIME=GAST, EQ_EQUIONOX=EQEQ
Description
The procedure HPRNUTANG computes values of the earth
orientation-related angles, including precession and nutation,
which are used for high precision earth-based astronomy
applications.
It is the goal of this procedure to provide all angles relevant in
determining the position of an earth station, as measured in an
earth-fixed coordinate system, and converting to space-fixed
coordinates. This is useful in applications where observations by
a station in the earth-fixed frame are taken of an astrophysical
object which is in the non-rotating space-fixed frame.
This routine potentially depends on the following external
procedures, which also themselves depend on external data files:
EOPDATA - estimates Earth orientation parameters (if
USE_EOPDATA keyword is set), depends on earth
orientation data file.
TAI_UTC - computes time difference TAI - UTC (leap seconds),
depends on leap seconds file.
This interface is somewhat provisional. See OPEN QUESTIONS below.
The user requests the quantities for a particular set of epoch
times, as measured in Julian days, in the system of Terrestrial
Dynamical Time ( = TDT = TT ).
HPRNUTANG returns several quantities. It is not possible to
describe each of these quantities in full detail in this
documentation. The user is referred to the Explanatory Supplement
to the Astronomical Almanac (Sec 3.2) for more complete
descriptions. The quantities are:
* ZETA, THETA, Z, which are euler angles representing the
precession of the mean celestial ephemeris pole with respect to
the space-fixed coordinate system defined by the FIXED epoch.
For a vector R_MEAN_OFDATE, whose space-fixed coordinates are
referred to the mean pole of date, the transformation to
space-fixed coordinates referred to the mean pole of the fixed
epoch is:
R_FIXED = qtvrot(R_MEAN_OFDATE, $
qteuler(['z','y','z'], -zeta, +theta, -z))
By default the "fixed" epoch is J2000.0. [ See below for
definitions of QTVROT and QTEULER. ]
* DPSI, DEPS, which are the angles representing the nutation in
longitude and obliquity of the true of-date celestial ephemeris
pole with respect to the mean pole of date. For a vector
R_TRUE_OFDATE, whose space-fixed coordinates are referred to
the true pole of date, the transformation to space-fixed
coordinates referred to the mean pole of date is:
R_MEAN_OFDATE = qtvrot(R_TRUE_OFDATE, $
qteuler(['x','z','x'], $
+eps0, -dpsi, -eps0-deps)
where EPS and EPS0 are defined below.
* EPS0, which is the mean obliquity of the ecliptic plane,
referred to the mean equator of date, at the requested epoch.
For a vector, R_ECL_OFDATE, whose space-fixed coordinates are
referred to the mean ecliptic and equinox of date, the
transformation to space-fixed coordinates referred to the mean
equator and equinox of date is:
R_MEAN_OFDATE = qtvrot(R_ECL_OFDATE, $
qteuler(['x'], eps0)
* EPS, which is the true obliquity of the ecliptic plane,
referred to the mean equator of date, at the requested epoch.
* GMST, GAST, which are the mean and apparent Greenwich Sidereal
Times at the requested epoch. For a vector R_TRUE_EARTHFIXED,
whose earth-fixed coordinates are referred to the true pole of
date, the transformation to space-fixed coordinates referred to
the true pole of date are:
R_TRUE_OFDATE = qtvrot(R_TRUE_EARTHFIXED, $
qteuler(['z'], +gast))
* EQEQ, the equation of the equinoxes at the requested epoch.
This quantity may be more commonly known as the "precession of
the equinox."
* PMX, PMY, the coordinates of the celestial ephemeris pole as
measured in the earth-fixed coordinate system (set to zero if
the USE_EOPDATA keyword is not set). For a vector
R_MEAN_EARTHFIXED, whose earth-fixed coordinates are referred
to the International Reference Pole, the transformation to
earth-fixed coordinates referred to the true pole of date are:
R_TRUE_EARTHFIXED = qtvrot(R_MEAN_EARTHFIXED, $
qteuler(['x','y'], -pmy, -pmx))
The vector R_MEAN_EARTHFIXED, could be for example, the
cartesian coordinates of a station on the earth, as determined
from its geodetic/geocentric latitude and longitude.
* JD_UT1, the UT1 time (expressed in Julian days) (set to UTC if
the USE_EOPDATA keyword is not set or if NO_UT1 is set).
Users may select different techniques to compute some of these
quantities. See keywords JPL and USE_EOPDATA.
OPEN QUESTIONS
How will the transition to a new IERS EOP series be accomplished?
Using a keyword? How can users select different nutation series?
How can users select different fundamental arguments for the
planets.
VERIFICATION
The precession and nutation quantities were compared against those
produced by the SLALIB telescope pointing library.
For the epoch JD 2450449 (TT), the precession quantities of
HPRNUTANG agree numerically with SLALIB SLA_PREC to within 0.1
microarcseconds, and the nutation quantities agree SLALIB SLA_NUTC
to within 6 microarcseconds (and 54 microarcseconds in the mean
obliquity). The GMST values agree with SLALIB SLA_GMSTA to better
than 1 nanosecond. Of course this says nothing about the accuracy
of the IAU 1976/1980 precession and nutation models with respect
to the true precession and nutations.
The precession and nutation quantities computed in this procedure
-- ZETA, THETA, Z, DPSI and DEPS -- were also used to compute the
space-fixed coordinates of the Goldstone DSS-63 deep space network
tracking station. These values were compared against values
produced by JPL Horizons ephemeris generator. Agreement was found
at the 60 cm level. Accuracy at that level is probably limited by
the JPL DE406 earth ephemeris used by Horizons.
Polar motion values were estimated at the same epoch using
EOPDATA, and applied to three orthogonal unit vectors. The above
quaternion transformation produces the same coordinate values,
when compared against SLALIB_POLMO.
QTEULER and QTVROT
The functions QTEULER and QTVROT are functions from the Markwardt
quaternion library. QTEULER composes a chain of Euler-like
rotations into a single quaternion. QTVROT applies a quaternion
rotation to a 3-vector.
The user need not use these functions. Any function which
constructs a set of Euler-like rotations, and then applies them to
3-vectors will work fine. Inputs
JDTT - a vector or scalar, the TT epoch time(s) for which high
precision values are to be computed.
For reference, JDTT = JDTAI + 32.184/86400d, where JDTAI is
the international atomic time measured in days. The value
of the keyword TBASE is added to JDTT to arrive at the
actual Julian date.
Outputs
ZETA, THETA, Z - Euler angles of precession of the mean celestial
ephemeris pole, expressed in ANGUNITS units.
DPSI, DEPS - the nutation angles in longitude and obliquity of the
true pole with respect to the mean pole, expressed in
ANGUNITS units. By default the values are based on
the IAU 1980 theory of nutation. The user can select
JPL to interpolate the JPL nutation ephemerides.
When USE_EOPDATA is set, the nutation angles are
augmented by the offset correction terms supplied in
the EOP file. Keyword Parameters
TBASE - scalar or vector, a fixed epoch time (Julian days) to be
added to each value of JDTT. Since subtraction of large
numbers occurs with TBASE first, the greatest precision is
achieved when TBASE is expressed as a nearby julian epoch,
JDTT is expressed as a small offset from the fixed epoch.
Default: 0
FIXED_EPOCH - a scalar or vector number, the fixed epoch (in TT
Julian Days) against which the precession angles of
the mean pole are referred.
Default: JD 2451545.0 TT ( = J2000.0 )
FIXED_BASE - scalar or vector, a fixed epoch time to be added to
FIXED_EPOCH, in much the same way that TBASE is added
to JDTT. Default: 0
POLAR_X, POLAR_Y - upon return, the quantities PMX and PMY, in
ANGUNITS units, if USE_EOPDATA is set. If
USE_EOPDATA is not set then zero is returned
for both PMX and PMY.
JD_UT1 - upon return, the time in the UT1 system at the requested
epoch, if the USE_EOPDATA keyword is set. If the
USE_EOPDATA keyword is not set, or if NO_UT1 is set, then
the time in UTC is returned (which is guaranteed to be
within +/- 0.9 seconds of UT1).
MEAN_OBLIQUITY - upon return, the quantity EPS0, in ANGUNITS
units.
TRUE_OBLIQUITY - upon return, the quantity EPS, in ANGUNITS units.
GMS_TIME - upon return, the quantity GMST in radians.
GAS_TIME - upon return, the quantity GAST in radians.
EQ_EQUINOX - upon return, the quantity EQEQ in ANGUNITS units.
ANGUNITS - scalar string, output units of angular parameters.
Possible values are 'ARCSEC' or 'RADIAN'.
Default value: 'RADIAN'
JPL - a scalar integer or string. If JPL is defined, then the routine
attempts to use the JPL nutation ephemeris to determine the
nutation angle quantities. If JPL is a scalar string, then
it is interpreted as the FITS file name to use (see
JPLEPHREAD). If JPL=1, the JPL ephemeris FITS file must be
present in
$ASTRO_DATA/JPLEPH.405
where ASTRO_DATA is the standard environment variable for
data used by the IDL Astronomy Library.
Default: not set (i.e. do not use JPL ephemeris nutation quantities)
NO_UT1 - if set, then do not compute UT1, but use UTC instead.
USE_EOPDATA - if set, use the EOPDATA procedure to determine earth
orientation parameters at the requested epoch.
These include polar motion values, corrections to
the 1980 IAU nutation theory, and the UT1
correction. Example
Need an example converting topocentric to/from J2000.0
Need an example converting station position earth-fixed
coordinates to/from space-fixed coordinates.
See Also
HPRNUTANG, TAI_UTC (Markwardt Library)
PRECESS, NUTATE, PREMAT, JPRECESS, BPRECESS (IDL Astronomy Library)
References
Aoki, S., Guinot, B., Kaplan, G.H., Kinoshita, H., McCarthy, D.D.,
Seidelmann, P.K., 1982: Astron. Astrophys., 105, 359-361.
HORIZONS, JPL Web-based ephemeris calculator (Ephemeris DE406)
http://ssd.jpl.nasa.gov/horizons.html
McCarthy, D. D. (ed.) 1996: IERS Conventions, IERS T.N. 21.
http://maia.usno.navy.mil/conventions.html
Seidelmann, P.K. 1992, *Explanatory Supplement to the Astronomical
Almanac*, ISBN 0-935702-68-7
Modification History
Written, 30 Jan 2002, CM
Documented, 15 Feb 2002, CM
Added docs about ecliptic; added default of 'RADIAN' to code; 01
Mar 2002, CM
Corrected equation of equinoxes (had DPSI*COS(EPS0), when it
should be DPSI*COS(EPS)), 01 Mar 2002, CM
Added default message, 04 Mar 2002, CM
Added more logic to detect JPL ephemeris file, 17 Mar 2002, CM
Corrected discussion of geodetic coordinates, 26 May 2002, CM
Documentation tweaks, 05 Jan 2004, CM
Some modifications to conserve memory, 22 Dec 2008, CM
Allow TBASE/FBASE to be a vector, 01 Jan 2009, CM
Documentation of the JPL parameter, 02 Dec 2009, CM