dcmeci2ecef
Convert Earth-centered inertial (ECI) to Earth-centered Earth-fixed (ECEF) coordinates
Syntax
Description
uses the difference between International Atomic Time and UTC to calculate the
position direction cosine matrix.dcm
= dcmeci2ecef(reduction
,utc
,deltaAT
)
uses the difference between UTC and Universal Time (UT1).dcm
= dcmeci2ecef(reduction
,utc
,deltaAT
,deltaUT1
)
uses the polar displacement.dcm
= dcmeci2ecef(reduction
,utc
,deltaAT
,deltaUT1
,polarmotion
)
uses additional options specified by one or more Name,Value pair arguments.dcm
= dcmeci2ecef(reduction
,utc
,deltaAT
,deltaUT1
,polarmotion
,Name,Value
)
Examples
Convert Using IAU-2000/2006 Reduction
Convert Earth-centered inertial (ECI) to Earth-centered Earth-fixed (ECEF) coordinates for January 12, 2000, at 4 hours, 52 minutes, 12.4 seconds and January 12, 2000, at 4 hours, 52 minutes, and 13 seconds. Use the IAU-2000/2006 reduction. Specify only the reduction method and UTC.
dcm = dcmeci2ecef('IAU-2000/2006',[2000 1 12 4 52 12.4;2000 1 12 4 52 13])
dcm = dcm(:,:,1) = -0.9975 -0.0708 -0.0000 0.0708 -0.9975 -0.0000 -0.0000 -0.0000 1.0000 dcm(:,:,2) = -0.9975 -0.0709 -0.0000 0.0709 -0.9975 -0.0000 -0.0000 -0.0000 1.0000
Convert Using IAU-76/FK5 Reduction
This example shows how to convert Earth-centered inertial (ECI) to Earth-centered Earth-fixed (ECEF) coordinates for January 12, 2000, at 4 hours, 52 minutes, 12.4 seconds. Use the IAU-76/FK5 reduction. Specify all arguments, including optional ones such as polar motion.
dcm = dcmeci2ecef('IAU-76/FK5',[2000 1 12 4 52 12.4],32,0.234,[-0.0682e-5 ... 0.1616e-5],'dNutation',[-0.2530e-6 -0.0188e-6])
dcm = 3×3
-0.9975 -0.0708 -0.0000
0.0708 -0.9975 -0.0000
-0.0000 -0.0000 1.0000
Convert Using IAU-76/FK5 Reduction and datetime Arrays
This example shows how to convert Earth-centered inertial (ECI) to Earth-centered Earth-fixed (ECEF) coordinates using the IAU-2000/2006 reduction, for two UTC dates represented as datetime arrays utcDT. All other parameters default to null arrays.
utcDT = datetime([2000 1 12 4 52 12.4;2000 1 12 4 52 13])
utcDT = 2x1 datetime
12-Jan-2000 04:52:12
12-Jan-2000 04:52:13
DCM = dcmeci2ecef('IAU-2000/2006', utcDT)
DCM = DCM(:,:,1) = -0.9975 -0.0708 -0.0000 0.0708 -0.9975 -0.0000 -0.0000 -0.0000 1.0000 DCM(:,:,2) = -0.9975 -0.0709 -0.0000 0.0709 -0.9975 -0.0000 -0.0000 -0.0000 1.0000
Input Arguments
reduction
— Reduction method
'IAU-76/FK5'
| 'IAU-2000/2006'
Reduction method to calculate the direction cosine matrix, specified as one of the following:
IAU-76/FK5
Reduce the calculation using the International Astronomical Union (IAU)-76/Fifth Fundamental Catalogue (FK5) (IAU-76/FK5) reference system. Choose this reduction method if the reference coordinate system for the conversion is FK5. You can use the
'dNutation'
Name,Value pair with this reduction.Note
This method uses the IAU 1976 precession model and the IAU 1980 theory of nutation to reduce the calculation. This model and theory are no longer current, but the software provides this reduction method for existing implementations. Because of the polar motion approximation that this reduction method uses,
dcmeci2ecef
calculates the transformation matrix rather than the direction cosine matrix.IAU-2000/2006
Reduce the calculation using the International Astronomical Union (IAU)-2000/2005 reference system. Choose this reduction method if the reference coordinate system for the conversion is IAU-2000. This reduction method uses the P03 precession model to reduce the calculation. You can use the
'dCIP'
Name,Value pair with this reduction.
utc
— Coordinated Universal Time
scalar | 1-by-6 array | M-by-6 matrix | scalar 1-by-1 datetime
array | M-by-1 datetime
array
Coordinated Universal Time (UTC) in the order year, month, day, hour, minutes, and seconds, for which the function calculates the direction cosine matrix, specified as one of the following.
For the year value, enter a double value that is a whole number greater than 1, such as
2013
.For the month value, enter a double value that is a whole number greater than 0, within the range
1
to12
.For the day value, enter a double value that is a whole number greater than 0, within the range
1
to31
.For the hour value, enter a double value that is a whole number greater than 0, within the range
1
to24
.For the minute and second values, enter a double value that is a whole number greater than 0, within the range
1
to60
.
Specify these values in one of the following formats:
1-by-1 array
Specify a 1-row-by-6-column array of datetime arrays.
M-by-6 matrix
Specify an M-by-6 array of UTC values, where M is the number of direction cosine or transformation matrices to calculate. Each row corresponds to one set of UTC values.
1-by-1 array
Specify a 1-row-by-1-column array of
datatime
arrays. To create the array, use thedatetime
function.M-by-1 array
Specify an M-by-1 array of
datatime
arrays for M transformation matrices, one for each UTC date. To create the array, use thedatetime
function.
Example: [2000 1 12 4 52 12.4]
is a one row-by-6 column array
of UTC values.
Example: [2000 1 12 4 52 12.4;2010 6 5 7 22 0]
is an
M-by-6 array of UTC values, where M is
2.
Data Types: double
deltaAT
— Difference between International Atomic Time and UTC
scalar | one-dimensional array
Difference between International Atomic Time (IAT) and UTC, in seconds, for which the function calculates the direction cosine or transformation matrix. By default, the function assumes an M-by-1 array of zeroes.
scalar
Specify one difference-time value to calculate one direction cosine or transformation matrix.
one-dimensional array
Specify a one-dimensional array with M elements, where M is the number of direction cosine or transformation matrices to calculate. Each row corresponds to one set of UTC values.
Example: 32
Specify 32
seconds as the difference between
IAT and UTC.
Data Types: double
deltaUT1
— Difference between UTC and Universal Time (UT1)
scalar | one-dimensional array
Difference between UTC and Universal Time (UT1) in seconds, for which the function calculates the direction cosine or transformation matrix. By default, the function assumes an M-by-1 array of zeroes.
scalar
Specify one difference-time value to calculate one direction cosine or transformation matrix.
one-dimensional array
Specify a one-dimensional array with M elements of difference time values, where M is the number of direction cosine or transformation matrices to be calculated. Each row corresponds to one set of UTC values.
Example: 0.234
Specify 0.234
seconds as the difference between
UTC and UT1.
Data Types: double
polarmotion
— Polar displacement
1-by-2 array | M-by-2 array
Polar displacement of the Earth, in radians, from the motion of the Earth crust, along the x- and y-axes. By default, the function assumes an M-by-2 array of zeroes.
1-by-2 array
Specify a 1-by-2 array of the polar displacement values to convert one direction cosine or transformation matrix.
M-by-2 array
Specify an M-by-2 array of polar displacement values, where M is the number of direction cosine or transformation matrices to convert. Each row corresponds to one set of UTC values.
Example: [-0.0682e-5 0.1616e-5]
Data Types: double
Name-Value Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose
Name
in quotes.
Example: [-0.2530e-6 -0.0188e-6]
dNutation
— Adjustment to longitude (dDeltaPsi) and obliquity (dDeltaEpsilon)
M-by-2 array
Adjustment to the longitude (dDeltaPsi) and
obliquity (dDeltaEpsilon), in radians, as the comma-separated
pair consisting of dNutation
and an M-by-2
array. Use this Name,Value pair with the IAU-76/FK5 reduction. By
default, the function assumes an M-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 M-by-2 array of adjustment values, where M is the number of direction cosine or transformation matrices to be converted. Each row corresponds to one set of longitude and obliquity values.
Data Types: double
dCIP
— Adjustment to the location of the Celestial Intermediate Pole (CIP)
M-by-2 array
Adjustment to the location of the Celestial Intermediate Pole
(CIP), in radians, specified as the comma-separated pair consisting
of dCIP
and an M-by-2 array.
This location (dDeltaX, dDeltaY)
is along the x- and y- axes.
Use this argument with the IAU-200/2006 reduction. By default, this
function assumes an M-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 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
Output Arguments
dcm
— Direction cosine or transformation matrix
3-by-3-M array
Direction cosine or transformation matrix, returned as a 3-by-3-M array.
Version History
Introduced in R2013b
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)