I am working on developing a user friendly SGP4 orbit propagator in C on a PIC24.
I have extensively read Revisiting Spacetrack Report #3 and celestrak - there are a few outstanding questions I have.
I have the SGP4 portion working. I can pass in TLE's and get the expected results from the Appendix of Revisiting Spacetrack Report #3. However, TLE's are not intuitive, nor are they easy to type out without making an error. They also have superfluous information. Needless to say, I don't want to use TLE's.
The users will have access to GPS telemetry; so instead, I would like to pass in ECI position and velocity, time 1, time 2 and Earth Orientation Parameters. But there seems to be a disconnect in my understanding of the various coordinate frames involved.
My current plan of attack is to make the following transformations:
ECI to ECEF by GMST
ECEF to PEF by EOP
PEF to TEME by GMST
TEME to orbital elements (in TEME) by standard methods
Propagate via SGP4 (over t2-t1, resultant vectors are TEME)
TEME to PEF by GMST (now at time 2)
PEF to ECEF by EOP (now at time 2)
ECEF to ECI by GMST (time 2)
Then I would output the position and velocity vectors.
I have several questions, and would appreciate any help or pointers to resources:
- Does this seem like the right approach? To me it seems like going in circles from an inertial frame (ECI) through Earth fixed frames (ECEF, PEF) then back to inertial (TEME).
- Can I do the standard position/velocity to Keplerian orbital elements in the TEME frame (and vice/versa)? I've taken TLE's from Revisiting Spacetrack Report #3's appendix D, used those orbital elements to produce positing velocity vectors and compared those to the original state in appendix E corresponding to that TLE. Doing so causes errors on the order of 5-10km in any direction and 0.005 km/s in velocities.
- Finally, is even speaking about frame ECI incorrect? That is, is ECI a class of coordinate frames that are pseudo-inertial and fixed at the center of the Earth? TEME would be one of these frames, GCRF another?
Thanks in advance for any help. I know this is a long post - I've spent quite a bit of time trying to ensure the correct implementation.
- TEME: True Equator Mean Equinox (The TEME frame is the coordinate frame of the output of SGP4)
- GMST: Greenwich Mean Sidereal Time
- EOP: Earth Orientation Parameters
- PEF: Pseudo Earth Fixed
- ECI: Earth-Centered Inertial
- GCRF: Geocentric Celestial Reference Frame
- SGP4: Simplified General Perturbations 4