As shown in the question, Now I have a TLE observation data and CPF(Consolidated Prediction Format) data. According to CPF's documentation, CPF predictions are tabulated satellite state vectors generally in the geocentric Earth-fixed coordinate system of date known as the ITRF (International Terrestrial Reference Frame).
So what can I do to convert TLE data into state vectors in ITRF(Both data at the same observation time)?
Here's what I've done so far:
The observation time is 2022-07-12T11:38:00.043871000
The TLE data is:
0 STARLETTE
1 7646U 75010A 22193.48472273 -.00000146 00000-0 -15590-5 0 9998
2 7646 49.8266 11.4131 0205800 0.2699 359.8273 13.82312865395926
The CPF data is(The specific data format can be viewed in CPF_format):
10 0 59772 41880.000000 0 -430956.931 -7170514.708 -0.274
So the Cartesian coordinate of the CPF data point at the observation time in ITRF is:
x = -430956.931, y = -7170514.708, z = -0.274
Then, I converted TLE data into a state vector in ITRF through the following python code:
from tletools import TLE
from astropy import units as u
from astropy.coordinates import GCRS, ITRS, CartesianRepresentation
time = 2022-07-12T11:38:00.043871000
s = '1 7646U 75010A 22193.48472273 -.00000146 00000-0 -15590-5 0 9998'
t = '2 7646 49.8266 11.4131 0205800 0.2699 359.8273 13.82312865395926'
tle = TLE.from_lines('starlette', s, t)
orbit = tle.to_orbit()
r, v = orbit.rv()
gcrs = GCRS(CartesianRepresentation(r[0] * u.m, r[1] * u.m, r[2] * u.m), obstime=time)
itrs = gcrs.transform_to(ITRS(obstime=time))
x_ecef = itrs.x.value
y_ecef = itrs.y.value
z_ecef = itrs.z.value
However, the results are far from the CPF data:
·x_ecef = -387448.4141639284, y_ecef = -7172405.299520155, z_ecef = 23871.227963843405
Later, I also considered precession, nutation, pole shift and other factors. Due to the large amount of code, here it will not be displayed. But maybe my research is not enough, the difference between CPF and TLE data is still obvious.
So, what efforts should I make to solve the above problems? Can I directly consider precession, nutation, pole shift and other factors in astropy.coordinates
?
I will appreciate it for any help!