I am currently writing a C++ program to show asteroids in 3D, and find close approaches or collisions. I got my orbital elements from JPL https://ssd.jpl.nasa.gov/sbdb_query.cgi. So far so good, with over a million asteroids drawn in 5ms with my old Quadro GPU

But the problem is the variation of the elements over time. For example, CERES:


After only 4 months, the eccentricity and all other elements have changed as seen on the second line.

How can I compute the change in the parameters without knowing their derivatives?

Or where to get those derivatives?

I searched all JPL small bodies site and their telnet access or email, but could not find a way to download orbital elements with derivatives or a way to compute the change.

I am aware that the difference might be just a pixel on the screen but it represents hundreds of thousands of kilometres. What I want to do is study the close approach between the asteroids themselves and eventually near collision. I already did that for artificial satellites using SGP4 propagator using OpenCL running on GPU video card. I can propagate 20,000 satellites (include debris) in a few milliseconds and get results exact to 1 kilometre. Compare with Celestrak Socrate. A prediction of a 1,000-kilometre approach must be possible.

Does anybody know how?

  • 2
    $\begingroup$ few quick questions: 1) if you are drawing a million asteroids will anybody know that a few are a half-pixel off? 2) wait you downloaded orbital elements for a million asteroids from JPL? 3) what are the uncertainties on those osculating orbital elements? 4) if you had all their derivatives, are you confident you would know how to use them to propagate correctly? 5) could there be a reason that osculating elements don't come with derivatives? $\endgroup$
    – uhoh
    Commented Apr 7, 2021 at 0:57
  • 1
    $\begingroup$ Stupid answer from me: Grab every single object in the solar system at epoch J2000 and run a huge nbody simulation over it. If you compare that to your given parameters and it is reasonably accurate, keep doing it. But remember that a butterfly flapping its wings can cause a hurricane! $\endgroup$ Commented Apr 7, 2021 at 1:53
  • $\begingroup$ Salut François! The equations describing the precession of nodes and the precession of apsides are quite complex. I doubt you’d want to perform them for millions of bodies! As @uhoh pointed out, nobody will notice that your asteroids are “a half-pixel off” (if that much!). Unless you want to go into the distant past or distant future, I see no use for that. $\endgroup$ Commented Apr 7, 2021 at 1:57
  • 3
    $\begingroup$ @FrancoisBilodeau that's exactly the kind of information that you should put in the question to begin with. The more you can share about the type of solution you need, the better that answers can address your specific need. You emphasized fast screen painting in the question and said nothing about accuracy or close approach detection. If that's what you are after, great! But please emphasize that clearly by editing your question post accordingly. Many/most users won't dig down into the comments before writing an answer. Thanks! $\endgroup$
    – uhoh
    Commented Apr 7, 2021 at 18:44
  • 2
    $\begingroup$ In this case you really might want to consider switching to propagating state vectors using a gravity model of several solar system bodies, nor simply orbital elements. $\endgroup$
    – uhoh
    Commented Apr 7, 2021 at 18:45

3 Answers 3


Thanks folks for helping. I knew about SPK files but from Horizon's telnet inteface there is a limit of 200 bodies per request. Making over 5000 request might be possible but not very productive. I also looked at the DE421 file from ftp://ssd.jpl.nasa.gov/pub/eph/planets/bsp/ but it looks like the corrections for the 8+1 planets

here is the output from BRIEF, a SPICE utility: https://naif.jpl.nasa.gov/naif/utilities.html

BRIEF -- Version 4.0.0, September 8, 2010 -- Toolkit Version N0066
Summary for: de421.bsp
    JUPITER BARYCENTER (5)  SUN (10)                MARS (499)
    Start of Interval (ET)              End of Interval (ET)
    -----------------------------       -----------------------------
    1899 JUL 29 00:00:00.000            2053 OCT 09 00:00:00.000

I can always do a statistical estimate, any close approach being false but the overall count being close to reality. Too bad to drop the project, I was getting nices pictures from it. The coloring is done against eccentricity, red=0

enter image description here

  • 1
    $\begingroup$ 1. It would be a shame to drop this project. Maybe contact Horizons, explain what you want to do, and see if they have any suggestions. They may be able to supply the SPK files in bulk (depending on what time span you want to cover), or have some other practical suggestions. 2. Since you're investigating near encounters, I guess even the SPK files aren't adequate when two asteroids are close enough to have significant gravitational affect on each other, unless one or both are in the set of 343 asteroids included in the dynamical model. $\endgroup$
    – PM 2Ring
    Commented Apr 8, 2021 at 13:43
  • 1
    $\begingroup$ well, thanks PM, you can give it a ride at geomaitre.com/geomaitre You must have a graphic card that support opengl 4.5 most modern one do Good luck $\endgroup$
    – Tiblemont
    Commented Apr 8, 2021 at 15:27
  • $\begingroup$ This image is quite compelling! How are the colors assigned? Have you thought of doing some animations? I see two red groups of Trojan asteroids at Sun-Jupiter L1 and L2 but are there any at L3? What made the ones at L1 and L2 red? Scott Manley has several older videos in YouTube from a previous lifetime, cf. Asteroids In Resonance With Jupiter and also Why did the distribution of asteroids discovered in 2010 have a radial modulation?... $\endgroup$
    – uhoh
    Commented Aug 4, 2021 at 20:25
  • $\begingroup$ and answers to Orbits of Trojan Asteroids and Code/Package for multiple planet simulation I think you are at the beginning of something really interesting and useful and can take this in several directions. Also see answers to What is a thermal distribution of eccentricities? Maybe you can "measure the temperature" of of the asteroid belt, or plot average "temperature" as a function of radius, or see of Trojans are "hot" or "cold"? $\endgroup$
    – uhoh
    Commented Aug 4, 2021 at 20:33
  • 1
    $\begingroup$ The coloring is done against eccentricity where 0 is red using HSL color [0 1] for the hue part. The trojan are close to Jupiter and those away from it are Hilda . see en.wikipedia.org/wiki/Hilda_asteroid $\endgroup$
    – Tiblemont
    Commented Aug 4, 2021 at 22:07

I finally computed positions of over 1 million asteroids for a few months from June to October 2021. There is significantly less close approaches than I first thought, but on the average, there is a conjunction under 10 thousand kilometers almost every other day.

For example on 2021-08-10 20:05 asteroids (2002 GD77) and (2008 TD184) will be at 825 km according to Nasa JPL Small Planets Center and at 290 millions km from earth.

The figure below show their orbits and positions relative to the sun(20x) and some major planets(1000x)

enter image description here

There will be a closer approach at 745 km on 2021-08-16 17:15 between (2003 WH156) and (2014 WR26) but at 520 millions km from earth. Both conjunction have an approach speed of 5.5 km/sec.

My results are consistentt with JPL website and should be close to reality, but as Jon Giorgini (senior analyst at JPL, thanks again for your help, Jon) remarks, due to the uncertainty in the keplerian elements you cannot tell where exactly the asteroids where at a certain time.

Now these results bring more question than answers.

  1. Is it possible for high end amateur instruments to detect/photograph such a conjunction?
  2. Is it possible to compute in advance the minimum-maximum variation in asteroid seraration?
  3. Is it possible with different equipment/sofware/data to tell if that event occured or not?
  4. How close should an approach be for the orbits being modified significantly?
  5. If the orbits are being modified significantly, how long would it take to be detected from earth?
  6. There is also a whole bunch of "couples" that have VERY similar orbits and travel as old companions at very close distances. Are they duplicates or realy different but bound together by some resonance?


2435 km     2021-08-10 14:27:08 (1999 FM92)  & (2010 DH114)
824 km      2021-08-10 20:05:00 (2002 GD77)  & (2008 TD184)
8508 km     2021-08-11 06:44:22 (2006 CK14)  & (2015 CY70)
2326 km     2021-08-11 19:40:46 (2017 RD134) & (2019 JH75)
852 km      2021-08-12 05:58:43 (2010 BO137) & (2015 FB346)

  • $\begingroup$ This is such a cool project and tool that you've created I think there are a lot of interesting things you can address. The five new questions you've enumerated are really launching points for investigations as well as new Stack Exchange questions. For item #4 there's no real cut-off for significant vs. non-significant for a $1/r^2$ force, but I am sure there's been a lot of work on perturbation of orbital elements vs distance and nature of close approach and that could be asked separately, and of course the masses of some asteroids are known by their perturbations on other asteroids! $\endgroup$
    – uhoh
    Commented Aug 4, 2021 at 20:12
  • $\begingroup$ And of course that starts to address #5 as well. You may find the following questions in Space SE interesting as well: Algorithmic methods or techniques to find conjunctions in high N Keplerian element ensembles? and to a lesser extent Algorithmic methods or techniques to find conjunctions in large ensembles of state vectors?. In artificial satellite orbital mechanics "conjunction" is a understated term for satellite near-misses or collisions. $\endgroup$
    – uhoh
    Commented Aug 4, 2021 at 20:14
  • $\begingroup$ Il est fort amusant indeed! For YouTube links you can just leave the bare url in the post and SE will automatically embed the video once you accept the change, no need to manually create a link. $\endgroup$
    – uhoh
    Commented Aug 5, 2021 at 22:02

For those interested in observing conjunctions, here is a partial list of events with approaches under 10,000 km for the coming weeks.

km     = distance between asteroids 
km e6  = distance from earth in  million km 
km/sec = relative speed of approach 
elong  = elongation of asteroids from sun

        |    UTC  time     |asteroid A | km  | asteroid B |km e6| km/sec |elong|
        | 2021-08-20 00:43 | 2006 CK14 |*8668 | 2015 CY70 | 480 | 0.0003 | 109 |
        | 2021-08-26 23:48 | 2000 SE89 | 9566 | 2017 XG51 | 432 | 3.4653 | 161 |
        | 2021-09-04 10:31 |    Dyer   | 3660 | 2014 WG584| 420 | 2.5170 | 143 |
        | 2021-09-09 00:09 | 2005 CO9  | 3305 | 2009 KZ1  | 387 | 6.3235 |  94 |
        | 2021-09-18 21:46 | 2008 FW83 | 6355 | 2014 EQ117| 417 | 3.7596 | 138 |
        | 2021-09-28 01:42 | 2007 TZ425| 3475 | 2008 XN66 | 363 | 3.0231 |  97 |
        | 2021-09-28 19:21 | 2001 DL93 | 2670 | 2006 AR3  | 291 | 17.150 |  13 |
        | 2021-09-29 07:02 |   Utkin   | 3575 | 2004 SN2  | 323 | 2.2074 | 154 |
        | 2021-10-07 07:57 | 2013 UH30 | 2396 | 2014 OW110| 309 | 2.5056 | 101 |
        | 2021-10-10 01:58 | 1991 LA1  | 4809 | 2011 LR7  | 424 | 3.5947 | 159 |
        | 2021-10-10 15:18 | 2002 JE35 | 3091 | 2013 PS4  | 379 | 3.7531 | 102 |
        | 2021-10-14 02:17 | 2006 BN154| 8145 | 2009 FB34 | 380 | 4.4304 |  93 |
        | 2021-10-16 16:35 | 2002 GN160| 2826 | 2010 LD118| 462 | 7.8022 | 137 | 

The first entry shows 2 asteroids with very similar orbits, traveling together as old chaps. You can tell by their closing speed near zero. Try your astronomy software, tracking them for a few months.

If you don't have any software, you can get ephemeris from JPL by typing a command like that in your web browser (no space , no line feed)


Note the high approach speed of 2021-09-28 19:21 | 2001 DL93 | 2670 | 2006 AR3 | 291 | 17.1502| 46 |


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .