Hello everyone,
I’m constructing an orbit as Keplerian with some input values and I want to get the position and velocity coordinates in EME2000 and TEME at the specific epoch described below.
The input values are:
utc = TimeScalesFactory.getUTC()
epochDate = AbsoluteDate(2023, 3, 29, 11, 12, 3.634272, utc)
a = 6806442.630251932
e = 0.0017767159957931275
i = 2.4679562062536506
omega = -24.3674662951819
raan = 132.2416001288443
lv = 24.36755660511185
With the previously initial values I will construct two different orbits, the first one in TEME and the second one in EME2000.
The first orbit construction is:
initialOrbit = KeplerianOrbit(a, e, radians(i), radians(omega), radians(raan), radians(lv), PositionAngle.TRUE,
FramesFactory.getTEME(), epochDate, Constants.EIGEN5C_EARTH_MU)
From here, I get the desired PV coordinates in different frames as following
print("First TEME: ", initialOrbit.getPVCoordinates(FramesFactory.getTEME()))
print("First EME2000: ", initialOrbit.getPVCoordinates(FramesFactory.getEME2000()))
print("First ITRF: ", initialOrbit.getPVCoordinates(FramesFactory.getITRF(IERSConventions.IERS_2010, True)))
print("First: ", initialOrbit.getPVCoordinates())
And the results are:
First TEME: {2023-03-29T11:12:03.634272, P(-4568287.401654992, 5030757.993413726, 0.4612218682054066), V(-5673.0223876590735, -5143.931818859062, 330.05955050944124), A(5.802854457811161, -6.3903064500000735, -5.858658045433246E-7)}
First EME2000: {2023-03-29T11:12:03.634272, P(-4542070.228175603, 5054431.094736552, 10006.162951999846), V(-5698.924698349422, -5114.369346106107, 342.98739037187636), A(5.769552166405908, -6.420377141088569, -0.012710279942680786)}
First ITRF: {2023-03-29T11:12:03.634272, P(-5020030.940281255, 4580072.611971112, 10.341906761050755), V(-4831.525667112401, -5287.315958253192, 330.0499563195239), A(5.578872212663001, -5.088829246870734, -1.1685881501117132E-5)}
First: {2023-03-29T11:12:03.634272, P(-4568287.401654992, 5030757.993413726, 0.4612218682054066), V(-5673.0223876590735, -5143.931818859062, 330.05955050944124), A(5.802854457811161, -6.3903064500000735, -5.858658045433246E-7)}
If I construct the second orbit with EME2000 as the input frame, as below
initialOrbit = KeplerianOrbit(a, e, radians(i), radians(omega), radians(raan), radians(lv), PositionAngle.TRUE,
FramesFactory.getEME2000(), epochDate, Constants.EIGEN5C_EARTH_MU)
I get the desired PV coordinates in different frames as following
print("Second TEME: ", initialOrbit.getPVCoordinates(FramesFactory.getTEME()))
print("Second EME2000: ", initialOrbit.getPVCoordinates(FramesFactory.getEME2000()))
print("Second ITRF: ", initialOrbit.getPVCoordinates(FramesFactory.getITRF(IERSConventions.IERS_2010, True)))
print("Second: ", initialOrbit.getPVCoordinates())
And the results are:
Second TEME: {2023-03-29T11:12:03.634272, P(-4594358.726227621, 5006949.407492181, -10064.68905254887), V(-5646.937913493328, -5173.358711065354, 317.1887788986339), A(5.835971485124607, -6.36006365995777, 0.01278462257415556)}
Second EME2000: {2023-03-29T11:12:03.634272, P(-4568287.401654992, 5030757.993413726, 0.4612218682054066), V(-5673.0223876590735, -5143.931818859062, 330.05955050944124), A(5.802854457811161, -6.3903064500000735, -5.858658045433246E-7)}
Second ITRF: {2023-03-29T11:12:03.634272, P(-5043754.075765256, 4553923.527628424, -10054.856027123442), V(-4804.702781765595, -5312.4364432837465, 317.1791303468782), A(5.605216678627669, -5.059664404388718, 0.012773575320505033)}
Second: {2023-03-29T11:12:03.634272, P(-4568287.401654992, 5030757.993413726, 0.4612218682054066), V(-5673.0223876590735, -5143.931818859062, 330.05955050944124), A(5.802854457811161, -6.3903064500000735, -5.858658045433246E-7)}
As can be seen, the results in TEME for the first orbit are different from the results in TEME for the second orbit case. Shouldn’t they be the same?
Moreover, the results in TEME of the first case are the same as the results in EME2000 in the second case. How can that be? Is it something that I’m doing wrong?
Many thanks for your time,
Verónica