Main Content

ecef2eci

Position and velocity vectors in Earth-centered inertial mean-equator mean-equinox

Description

example

[r_eci] = ecef2eci(utc,r_ecef) calculates the position vector in the Earth-centered inertial (ECI) coordinate system for a given position vector in the Earth-centered Earth-fixed (ECEF) coordinate system at a specific Coordinated Universal Time (UTC). For more information on the Earth-centered Earth-fixed coordinate system, see Algorithms.

[r_eci,v_eci] = ecef2eci(___,v_ecef) calculates the position and velocity vectors for given position and velocity vectors.

[r_eci,v_eci,a_eci] = ecef2eci(___,a_ecef) calculates the position, velocity, acceleration vectors for given position, velocity, and acceleration vectors.

[r_eci,v_eci,a_eci] = ecef2eci(___,Name,Value) calculates the position, velocity, and acceleration vectors at a higher precision using Earth orientation parameters.

Examples

collapse all

Convert the ECEF position and velocity to ECI at 12:00 on January 4, 2019.

r_ecef = [-5762640 -1682738 3156028];
v_ecef = [3832 -4024 4837];
utc = [2019 1 4 12 0 0];
[r_eci, v_eci] = ecef2eci(utc, r_ecef, v_ecef);
r_eci =
   1.0e+06 *
   -2.9818
    5.2070
    3.1616

v_eci =
   1.0e+03 *
   -3.3837
   -4.8870
    4.8430

Convert the ECEF position to ECI at 12:00 on January 4, 2019, including the effects of polar motion.

r_ecef = [-5762640 -1682738 3156028];
utc = [2019 1 4 12 0 0];
mjd = mjuliandate(utc);
pm = polarMotion(mjd, 'action', 'none')*180/pi;
r_eci = ecef2eci(utc, r_ecef, 'pm', pm);
r_eci = 
   1.0e+06 * 
   -2.9818 
   5.2070 
   3.1616

Input Arguments

collapse all

UTC in the order year, month, day, hour, minutes, and seconds, specified as 1-by-6 array of UTC values:

Time ValueEnter
YearDouble value that is a whole number greater than 1, such as 2013.
MonthDouble value that is a whole number greater than 0, within the range 1 to 12.
DayDouble value that is a whole number greater than 0, within the range 1 to 31.
HourDouble value that is a whole number greater than 0, within the range 1 to 24.
Minute and secondDouble value that is a whole number greater than 0, within the range 1 to 60.

Example: [2000 1 12 4 52 12.4]

Data Types: double

Array of ECEF position components, specified as a 3-by-1 array.

Data Types: double

ECEF velocity components, specified as a 3-by-1 array.

Data Types: double

ECEF acceleration components, specified as a 3-by-1 array.

Data Types: double

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside quotes. You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: 'dUT1',0.234

Difference between International Atomic Time (TAI) and UTC, specified as a scalar, in seconds.

Example: 32

Data Types: double

Difference between UTC and Universal Time (UT1), specified as a scalar, in seconds.

Example: 0.234

Data Types: double

Polar displacements due to the motion of Earth crust along the x- and y-axis, in degrees.

Tip

To calculate the displacement, use the polarMotion function.

Example: pm = polarMotion(mjd, 'action', 'none')*180/pi;

Data Types: double

Adjustment to the location of the Celestial Intermediate Pole (CIP), in degrees, specified as a comma-separated pair consisting of dCIP and an M-by-2 array. This location (dDeltaX, dDeltaY) is along the x- and y- axes. By default, this function assumes a 1-by-2 array of zeroes.

For historical values, see the International Earth Rotation and Reference Systems Service Web site (https://www.iers.org) and navigate to the Earth orientation data Data/Products page.

  • M-by-2 array

    Specify an M-by-2 array of location adjustment values, where M is the number of direction cosine or transformation matrices to be converted. Each row corresponds to one set of dDeltaX and dDeltaY values.

Example: [-0.2530e-6 -0.0188e-6]

Data Types: double

Excess length of day (difference between astronomically determined duration of day and 86400 SI seconds), specified as a scalar, in seconds.

Example: 32

Data Types: double

Output Arguments

collapse all

ECI position components, specified as a 3-by-1 array.

ECI velocity components, specified as a 3-by-1 array.

ECI acceleration components, specified as a 3-by-1 array.

Algorithms

The ecef2eci function uses these Earth-centric coordinate systems:

  • Earth Centered Inertial Frame (ECI) — The inertial frame used is the International Celestial Reference Frame (ICRF). This frame can be treated as equal to the ECI coordinate system realized at J2000 (Jan 1 2000 12:00:00 TT). For more information, see ECI Coordinates.

  • Earth-centered Earth-fixed Frame (ECEF) — The fixed-frame used is the International Terrestrial Reference Frame (ITRF). This reference frame is realized by the IAU2000/2006 reduction from the ICRF coordinate system. For more information, see ECEF Coordinates.

References

[1] Vallado, D. A. Fundamentals of Astrodynamics and Applications. alg. 4. New York: McGraw-Hill, 1997.

[2] Gottlieb, R. G., "Fast Gravity, Gravity Partials, Normalized Gravity, Gravity Gradient Torque and Magnetic Field: Derivation, Code and Data," Technical Report NASA Contractor Report 188243, NASA Lyndon B. Johnson Space Center, Houston, Texas, February 1993.

[3] Konopliv, A. S., S. W. Asmar, E. Carranza, W. L. Sjogen, D. N. Yuan., "Recent Gravity Models as a Result of the Lunar Prospector Mission, Icarus", Vol. 150, no. 1, pp 1–18, 2001.

[4] Lemoine, F. G., D. E. Smith, D.D. Rowlands, M.T. Zuber, G. A. Neumann, and D. S. Chinn, "An improved solution of the gravity field of Mars (GMM-2B) from Mars Global Surveyor", Journal Of Geophysical Research, Vol. 106, No. E10, pp 23359-23376, October 25, 2001.

[5] Seidelmann, P.K., Archinal, B.A., A’hearn, M.F. et al. Report of the IAU/IAG Working Group on cartographic coordinates and rotational elements: 2006. Celestial Mech Dyn Astr 98, 155–180 (2007).

Introduced in R2019a