I'm using the SGP4 model to propagate the orbit, initialized by TLE from celestrak.com

noradId = '40053'
date="2018/3/10 07:48:00"

from sgp4.earth_gravity import wgs84
from sgp4.io import twoline2rv
import requests
import datetime

date = datetime.datetime.strptime(date, "%Y/%m/%d %H:%M:%S")

response = requests.get("https://www.celestrak.com/cgi-bin/TLE.pl?CATNR="+noradId)

tle_data = response.text.split("<PRE>\n")[1].split("\n")

tle = twoline2rv(t1, t2, wgs84)
print (tle.propagate(date.year,date.month, date.day, date.hour, date.minute, date.second)[0])
  1. Is there a way to initialize the propagation by state vector (X,Y,Z,Vx,Vy,Vz) or Keplerian elements?
  2. Is there a way to generate an appropriate TLE file from mentioned data?
  3. Is there any other appropriate, accurate model to propagate using mentioned data?

What I need, is to be able to apply maneuvers. However, SGP4 with TLE doesn't allow that.


1 Answer 1


Indeed, SGP4 is not made to allow you to compute maneuvers. You can get a TLE, propagate up to maneuver time to obtain propagated position and velocity, then assume this instant is the new epoch, and re-generate a new TLE, to do so:

1-Compute a new epoch in TLE format at the maneuver ending time

2-Compute the position and velocity after the maneuver (maybe just add the desired delta-V).

3-Re-generate the elements for the TLE such that the output of SGP4 at zero propagation matches the position and velocity after the maneuver.

There is no simple way I'm aware to perform step 3. But you may use any technique for numerical problem solving you like.

  • $\begingroup$ Is there any other analytic method, initialized by state vector? $\endgroup$ Commented Mar 12, 2018 at 17:37
  • $\begingroup$ If by "state vector" you mean position and velocity, then I'm unaware of any widespread popular method. Also, I'm not sure I understand what you are trying to develop and what your restrictions are. May I suggest though that you take a look on OREkit? It is a Java library that may have what you need, though I never used it myself. $\endgroup$
    – Mefitico
    Commented Mar 12, 2018 at 18:30
  • $\begingroup$ What about TLE generation from state vector? Is there any library/package? $\endgroup$ Commented Mar 12, 2018 at 18:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.