Is there some code or a library out there that can take orbital elements, add a known delta-v component and then compute a new TLE? I found this one https://apps.dtic.mil/dtic/tr/fulltext/u2/a289281.pdf from 1994 but it's written in FORTRAN.

I already use the SGP4 package from Brandon Rhodes1 to get position and velocity from the TLE so I just need to figure out how to generate a TLE after I add the new velocity. I understand there will probably be some inaccuracy but I really only care about GEO satellites and very small delta-v so maybe the inaccuracy won't be as big of a deal. Python is preferred but any modern language would work.


  • $\begingroup$ Making a real, proper, accurate TLE is quite a challenge. But it's not terribly hard to get close. Will your delta-v be a vector in an arbitrary direction, or a scalar and in the same direction as the spacecraft's current velocity vector? btw here is my advice against making TLEs and yet I still do it. One example: How to correctly make a fake, counter-propagating TLE? $\endgroup$
    – uhoh
    Commented Feb 1, 2021 at 19:13
  • $\begingroup$ I think you might consider dropping the TLE part of your question, and instead just ask how to modify a set of Keplerian orbital elements after a given impulse vector. You can then apply the answer to a TLE. $\endgroup$
    – uhoh
    Commented Feb 1, 2021 at 19:17
  • 1
    $\begingroup$ Haha, I did find your "do not make fake TLEs" post when I was researching. $\endgroup$
    – dreed75
    Commented Feb 1, 2021 at 23:33

1 Answer 1


Do you really want to compute a new TLE, or just a new orbit? The TLE format itself is a significant problem, so it's best to avoid if possible. If you just need to look for changes in the orbit state, you should use SGP4 to convert into position and velocity, propagate the state with and without the maneuver using something other than SGP4, and convert each of those to some orbital elements that aren't the excessively complicated mean elements used for TLEs.

If you are committed to TLE generation, I must reaffirm uhoh's answer of please don't do this, especially the part that says "There is nothing involved in doing a better job now that would be harder than understanding the process that is used to determine the parameters in TLEs that give the best results when interpreted through SGP4."

If your delta-V is small enough, then the change may be less than the error built into the TLE itself, which is on the order of several kilometers and several meters per second. Only use TLEs if you have no other source of data available.

The only guaranteed way to compute a new, self-consistent TLE is to use the same software the US Air Force did to compute the original TLE in the first place. This is possible if you are engaged in official business for the US government on an approved contract, but even they don't get to see the real data from which the TLE (or the other format they actually distribute to the people who have completed the official approval process) was created.

I stress needing to use the USAF batch differential corrector because there are several important fields in the TLE that don't exist in any other format, and only the official software knows how to compute those extra terms. I'm talking partly about the derivatives of the mean motion, but mainly the problem is the "B star" term. Most references on the internet give a formula for calculating the atmospheric drag, but that is only the starting point. The actual value appearing in the TLE is not the result of that formula, because it is used by the orbit determination process as a dumping ground for lots of other effects which are not modeled well (or at all) by SGP4. There is a wonderful footnote in Vallado's Fundamentals of Astrodynamics and Applications (page 106 in the 4th edition), which says:

Be aware that the value of B* is always modified. It’s really an arbitrary free parameter in differential correction. Chapter 10 will introduce how to estimate a drag parameter. The estimated value of B* may be completely unrelated to drag effects in the presence of satellite maneuvers, significant solar pressure and atmospheric perturbations, large third-body effects from the Sun or Moon, or large deflections caused by mismodeling of the Earth’s gravitational field. B* can even appear as a negative number!

Even people who do have access to all the right tools struggle with this, as in this master's thesis from the Air Force Institute of Technology.

  • 1
    $\begingroup$ Wow, thank you for that info. I think you're right and I should not try to generate a TLE. I can probably propagate a given TLE and then just use the delta-v to compute a new orbit. I'm curious to see how that could fill a gap in TLE-derived orbits. Ideally, the next real TLE after a burn should pick up where the delta-v-derived orbit left off but I think the error of TLEs in general is too large. $\endgroup$
    – dreed75
    Commented Feb 3, 2021 at 5:39
  • 2
    $\begingroup$ @dreed75 Ideally, yes, but that depends on how busy the CSpOC is at the time it happens, and how long it is until the next measurements they receive. How interesting to them is the object that you care about? Some objects get updates several times a day, while others only get once every several days. If they expect, or detect, a maneuver, and configure the differential corrector to solve for it, then the state should show an approximately correct change; but if they don't realize the delta-V happened and just fit right through it, the state will be averaged into crap both before and after. $\endgroup$
    – Ryan C
    Commented Feb 3, 2021 at 6:13

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.