>  Docs Center  >  Libraries  >  Markwardt  >  HPRNUTANG






  Craig B. Markwardt, NASA/GSFC Code 662, Greenbelt, MD 20770
  UPDATED VERSIONs can be found on my WEB PAGE:


  Compute high precision earth precession, nutation and orientation angles

Major Topics


Calling Sequence

              TBASE=, FIXED_EPOCH=, FIXED_BASE=, $
              /JPL, /NO_UT1, $


  The procedure HPRNUTANG computes values of the earth
  orientation-related angles, including precession and nutation,
  which are used for high precision earth-based astronomy
  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:
                              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:
                                  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.
  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
  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.
  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.


  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.


  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
  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
        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


  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)


  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)
  McCarthy, D. D. (ed.) 1996: IERS Conventions, IERS T.N. 21.
  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

© 2020 Harris Geospatial Solutions, Inc. |  Legal
My Account    |    Store    |    Contact Us