IERS Rapid Service / Prediction Center

General Matrix Calculator Information

What is the Earth Orientation Matrix Calculator?

For a given set of epoch time inputs, the Earth Orientation (EO) Matrix Calculator will generate a corresponding set of direction cosine matrices (or quaternions) which relate vectors whose components are written in the terrestrial frame to the celestial frame.

Suppose one has a vector, r_itrf, whose components are written in the ITRF (International Terrestrial Reference Frame). That same vector can have components written in the ICRF (Internation Celestial Reference Frame), r_icrf. The equation relating r_itrf to r_icrf is as follows:

   r_icrf =  [C_itrf2icrf] * r_itrf
The quantity C_itrf2icrf is the direction cosine matrix which transforms the components of r_itrf to r_icrf. The Earth Orientation Matrix Calculator will generate the C_itrf2icrf at each requested epoch time.

Considering Leap Seconds

The user should not notice any discontinuities in Earth Orientation due to leap seconds. However, the code will not produce an Earth Orientation result at UTC 23:59:60 seconds. If you require that result, please produce results for the second before and after the leap second and interpolate between the two.

For example, If there is a leap second on June 30th at UTC 23:59:60 seconds, then calculate a result for June 30 at 23:59:59 UTC and July 1 at 00:00:00 UTC and then interpolate between the two results for Earth Orientation at the leap second.

Validating the Matrix Calculator

The matrix calculator may be validated using the following process. Other relevant validation information.

Useful Utilities

  1. concat FORTRAN program.
    This FORTRAN code will take calculator results stored in eocalc.inp and parse the results and store them into existing files called t2cdcm.out, pmdcm.out, gmstdcm.out, eedcm.out, nudcm.out, prdcm.out, and pbndcm.out. This will help users who are hindered by the limitation of a maximum 100 intervals.
    1. Compile and link this FORTRAN code to generate an executable. (Note, the program concat code, which is listed below, will need to be copied and pasted into an editor.)
    2. Check all the check-boxes for intermediate matrix quantities, (e.g., polar motion, GMST, etc). After picking their range of dates and times and then intervals, hit submit.
    3. Copy and paste the entire calculator output to the file eocalc.inp on their local computer.
    4. Run the code which should generate t2cdcm.out, pmdcm.out, gmstdcm.out, eedcm.out, nudcm.out, prdcm.out, and bpndcm.out.
    5. For the next set of intervals, repeat steps b) thru d). The next set of results will be appended to the end of the files listed in d).

Note. This code has been tested on a Linux operating system. It should work on MAC Leopard and Snow Leopard operating system. It has not yet been tested on a Windows operating system.

Descriptions of Terms from the Matrix Calculator

Date and Time

To enter February 10, 2021 UTC at 14:25:10.1234 into the matrix calculator form, one would enter 2021 2 10 14 25 10.1234 into the input box fields. (Note that an integer or float may be entered into the seconds field.)


Coordinated Universal Time, derived from atomic time follows

"UT1 within +/-0.9 seconds. UTC is the basis of civil time systems...This definition of UTC was introduced in January, 1972, as a convenient approximation of UT1 [which is a measure of the Earth's rotation]. It is sometimes called Zulu time."

[Vallado, David, A.; "Fundamentals of Astrodynamics and Applications", Second Edition, Microcosm Press, El Segundo California, 2001, page 185.]


The number of desired intervals must be less than or equal to 100. To illustrate the use of intervals: If 4 intervals are chosen with

  Start Date and Time:   2021  2  1  0  0  10.0 
  Stop Date and Time:    2021  2  4  0  0  10.0 
then the output will be,
  MJD    MJD fraction   YR    Month   Day     Hour    Min    Sec
  59246    1.16E-04    2021     2      1       0       0   10.0E+01
        <---   I N T E R V A L (1)  --->
  59247    1.16E-04    2021     2      2       0       0   10.0E+01
        <---   I N T E R V A L (2)  --->
  59248    1.16E-04    2021     2      3       0       0   10.0E+01
        <---   I N T E R V A L (3)  --->
  59249    1.16E-04    2021     2      4       0       0   10.0E+01

NOTE: The last epoch is dropped for the Equinox calculator.

For the Equinox calculator, if 3 intervals are chosen with

  Start Date:            2005  1  5  0  0  0.0
  Stop Date and Time:    2005  1  8  0  0  0.0
then the result will be
     YR    Month   Day     Hour   Min   Sec
   2005      1      5       12     0   0.0E+01
        <---   I N T E R V A L (1)  --->
   2005      1      6       12     0   0.0E+01
        <---   I N T E R V A L (2)  --->
   2005      1      7       12     0   0.0E+01
        <---   I N T E R V A L (3)  --->


For defintions of MJD and JD, see the IERS Conventions glossary. Both JD and MJD have associated time scales; if no qualifier is present, then the time scale is assumed to be TT (i.e., MJD(TT)). Conversely, MJD(UTC), indicates that the epoch is given in Coordinated Universal Time (UTC). The Calculator software assumes MJD and JD are given in TT.

A UTC day is 86400 SI or atomic seconds, except for the days in which a leap second occurs. In the case of a leap second, a UTC day is 86401 SI seconds in length. TT days are always 86400 SI seconds long.

Bias, Precession, Nutation Direction

The Technical Note (TN) 36 SOFA subroutines and Astronomical Almanac define bias, precession, and nutation transforming from a celestial to a terrestrial reference frame. However, previous SOFA subroutines, and the TN 32 USNO calculator, have defined those quantities as transforming from the terrestrial to the celestial frame. To be consistent with TN 32, bias, precession, and nutation are defined as transforming from terrestrial to celestial. I.e.,

y_GCRF =  [B][PR][NU][GST][PM]*y_ITRF
where, y_ITRF is a position vector whose components are written in the ITRF frame, and y_GCRS is a position vector whose components are written in the GCRF frame. For reference, the following equation, as given in the Astronomical Almanac, defines the transformation from terrestrial to celestial frame:
y_ITRF =  [PM][GST][NU][PR][B]*y_GCRF
Effectively, the EO matrix calculator definitions of [PM],[GST],[NU],[PR], and [B] are taken from the Astronomical Almanac.

Celestial Pole Offsets

For a definition of celestial pole offsets, see the IERS Conventions glossary.

Diurnal and Subdiurnal Tides

Including diurnal and subdiurnal tides in the EO terrestrial to celestial transformation increases the accuracy of that resulting matrix. The observational EOP data are updated daily and weekly in finals2000A.daily and, respectively. The observational data for polar motion, UT1-UTC, and celestial pole offsets (CPO) are reported at daily intervals at midnight UTC.

An interpolation scheme, such as Lagrange interpolation, should be used to estimate the values of polar motion and UT1-UTC to compute the terrestrial to celestial transformation matrix at times between the midnight intervals. Short-period (subdiurnal and diurnal), small-amplitude tidal effects can be included to obtain an even more accurate estimate of Polar Motion and UT1-UTC at the interpolated times.

More details can be found in Chapter 8 of the IERS Conventions.


Luni-solar torques exerted on the Earth produce two types of high-frequency small variations in the orientation of the Earth including a semidiurnal libration in spin and a prograde diurnal libration in polar motion. The former has a maximum amplitude of 0.90 milliarcseconds, and the latter has a maximum amplitude of 0.06 milliarcseconds.

More details can be found in Chapter 5 of the IERS Conventions.


All Earth orientation calculations are performed using direction cosine matrices. Quaternion outputs are derived from direction cosine matrices using equations 157 through 168 from [Shuster]. Quaternions are also referred to as Euler parameters or Euler symmetric parameters, among other aliases.

On page 462, equation 159 of [Shuster], a quaternion is defined as:

    eta1 = sin(ph/2)*nhat1
    eta2 = sin(ph/2)*nhat2
    eta3 = sin(ph/2)*nhat3
    eta4 = cos(ph/2),
where, ph is the euler rotation axis angle and
       nhat is the euler rotation axis direction.
(The output of the EO matrix calculator quaternions adheres to this convention listed by Malcolm Shuster).

Shuster, Malcom; "A Survey of Attitude Representations", Journal of Astronautical Sciences, Vol. 41, pp 439-517, 1993.

Hughes, Peter; "Spacecraft Attitude Dynamics", Copyright 2004, John Wiley and Sons.

EOP Input File

EOP quantities required for the matrix calculator cannot be mathematically computed with models to the accuracy that is typically required. Unless another file is designated, the file, updated weekly on Thursdays, will be used to supply the polar motion, UT1-UTC, and celestial pole offsets (EOP quantities) to the matrix calculator.

If a MJD is entered in this field, the matrix calculator will use EOP quantities from the corresponding finals2000A.daily file that was generated on the provided date, instead of the latest available file. A daily file for a given date provides the best estimate of EOP quantities on that date. For past dates, the file will have improved EOP estimates over the finals2000A.daily file.

Additional Information

Version Information

Current version: m2a_1.0

Note: m2a refers to the Method 2A implementation (Equinox-based) discussed in Reference 1.



  1. IERS Conventions (2010). Gérard Petit and Brian Luzum (eds.). (IERS Technical Note 36) Frankfurt am Main: Verlag des Bundesamts für Kartographie und Geodäsie, 2010. 179 pp., ISBN 3-89888-989-6
  2. (All software and material associated with IERS Conventions (2010) can be found at the IERS Conventions Center.

  3. Kaplan, G.H., The IAU Resolutions on Astronomical Reference Systems, Time Scales, and Earth Rotation Models (2005), U.S. Naval Observatory Circular 179.
  4. Barker, Lee; Dorsey, Art; Stamatakos, Nick; "Validation of IAU2000A/IAU2006 Frame Transformations Implementations", 33nd Annual AAS Guidance and Control Conference; AAS 10-054, February 6-10, 2010.


The developers of the USNO Earth Orientation Matrix calculator would like to acknowledge the help of the following:

  1. Lee Barker of Lockheed Martin Space Systems Company, who has helped greatly with validation and documentation of the need for the calculator.
  2. Professor Christian Bizouard of the Paris Observatory, SYRTE, Paris, France, who has helped greatly with validation and guidance on using html and php to make the initial web based calculator.