[HN Gopher] JPL Horizons on-line solar system data and ephemeris...
       ___________________________________________________________________
        
       JPL Horizons on-line solar system data and ephemeris computation
       service
        
       Author : perihelions
       Score  : 96 points
       Date   : 2024-12-30 13:45 UTC (4 days ago)
        
 (HTM) web link (ssd.jpl.nasa.gov)
 (TXT) w3m dump (ssd.jpl.nasa.gov)
        
       | mturmon wrote:
       | This group at JPL is the canonical source for solar system
       | ephemeris, including planets and small bodies. The underlying
       | models are numerically integrated equations of motion that I'm
       | sure include all kinds of corrections, especially for bodies of
       | great interest -- such as Mars, or moons being considered for
       | science visits.
       | 
       | I used to use the python package "jplephem" to support ephemeris
       | queries, but I understand that SpiceyPy is a more modern
       | replacement (https://github.com/AndrewAnnex/SpiceyPy). They all,
       | I believe, use the same underlying sets of "spk" files containing
       | coded ephemeris.
        
         | krisoft wrote:
         | I would recommend the Skyfield library:
         | https://rhodesmill.org/skyfield/
         | 
         | It does the same thing, uses the spk files to compute planetary
         | positions, but it does so with a beautifull API which is a
         | pleasure to use.
        
           | mbonnet wrote:
           | Seconding this. Skyfield is a great tool maintained by a
           | great guy, Brandon Rhodes. I've built many a production tool
           | for spacecraft with it.
        
         | jvanderbot wrote:
         | Indeed, I've met many of them and worked with some of them. One
         | of the main devs for this webapi project, who is a delight to
         | work with, was just laid off sadly.
         | 
         | Just for some additional context, the main library used by all
         | these packages is SPICE, a C library written and maintained by
         | JPL. https://naif.jpl.nasa.gov/naif/aboutspice.html
         | 
         | It dates back to 1982, IIRC. And yeah, as mentioned you can
         | still telnet in and check your calculations using their
         | reference implementation.
         | 
         | The C library has been wrapped many times, but remains the main
         | implementation at the core, and is used by a ton of missions
         | and spacecraft for determining sun up/down times, pointing
         | angles for heavenly bodies, time and precise keeping, etc etc.
         | 
         | I used it here to determine the relative angle of the sun at
         | one of my favorite spots on the moon:
         | https://api.jodavaho.io/s/readme
         | 
         | The software reads "kernel" files, which are very precise
         | tables of positions over time, shape, etc, and can output just
         | about anything you'd want to know about the layout of the solar
         | system with precision good enough for whatever you'd want.
         | Publishing a new kernel file is an infrequent, but fairly major
         | affair, afaict.
         | 
         | It's a really fascinating look at what is required to do
         | business in space. I recommend someone peruse their training
         | materials for answers to questions you never thought about
         | like: "If you want to view a crater during sunrise to get the
         | nice shadows, what do you even mean "sunrise"?" which gets
         | weird to answer because of speed of light and cosmic distances.
        
           | krisoft wrote:
           | Totally sentimental view on my part, but I consider the JPL
           | ephemeris files one of the crowning achievements of
           | humankind. On par with other things like a modern
           | microprocessor, the pyramids, or the electric grid.
           | 
           | You of course know this, saying it for others: The files
           | themselves are relatively unassuming, moderate sized (~3.1 GB
           | the largest of them) binary files which contain the distilled
           | best knowledge of where the planets and their moons will be
           | based on humanity's best observations (visual, radar,
           | trajectory data from probes, etc). They each have a validity
           | window within which you can query the relative transforms
           | between the objects the database contains. For example
           | de441.bsp was published in 2020 and you can use it to predict
           | the relative positions of any of the planets/moons it
           | contains between the years -13200 to 17191. Or if you don't
           | need to look that far in time you can use one of the smaller
           | models like de440s.bsp (32 MB) which is good between 1849 to
           | 2150.
        
             | dekhn wrote:
             | it's not sentimentality. They represent a truly amazing
             | effort to gather both the raw data and the underlying
             | mathematical models to make unbelievably accurate
             | predictions.
        
           | basementcat wrote:
           | It took me entirely too long to realize that SPICE may be
           | useful for navigation around the Solar System.
        
           | staplung wrote:
           | Of course the SPICE is vital to space travel. Travel without
           | moving, as long as you don't consider telnet to be moving.
        
           | mturmon wrote:
           | > used by a ton of missions and spacecraft for determining
           | sun up/down times, pointing angles for heavenly bodies, time
           | and precise keeping, etc etc.
           | 
           | Yes. My use case was/is determining pointing angles between a
           | telescope at L2 and various nearby stars, to be sure it's not
           | pointing anywhere near a bright body like a planet (around
           | Sol) when it's expected to be observing exoplanets.
           | 
           | There are a lot of diverse use cases!
        
             | krisoft wrote:
             | :D all of these super cool and highly professional uses of
             | SPICE kernels and here I am using the same thing to point
             | an arrow to where the planets are as a room decoration :D
             | https://www.youtube.com/shorts/32BGeJav2OQ
             | 
             | (On the video the mechanism is not using SPICE, just
             | pointing at manually selected alt-az)
        
         | ccmillion wrote:
         | There are also access points to Horizons via astroquery (https:
         | //astroquery.readthedocs.io/en/latest/jplhorizons/jplh...) and
         | l'horizon (https://github.com/millionconcepts/lhorizon).
         | 
         | Whether you want to use SPICE or Horizons will depend on what
         | you are trying to accomplish.
        
         | aannex wrote:
         | oh hey, I'm the developer of SpiceyPy. IIRC jplephem implements
         | their own parsing of spk files and isn't a full implementation
         | of the SPICE API. SpiceyPy simply wraps SPICE (via CSPICE).
        
       | Twisol wrote:
       | I love that the primary interface to Horizons is _still_ via
       | Telnet ^_^ I hope they keep that interface forever.
        
         | nxobject wrote:
         | It made me wonder how old the Horizons system is... I couldn't
         | find any information. I would've guessed it dates back to the
         | age of UNIX workstations and NSFNET, given the "e-mail" [sic]
         | interface that produces either pure ASCII or PostScript.
        
           | zokier wrote:
           | The public internet service is from 1996
           | https://ntrs.nasa.gov/citations/20060036597
        
       | popalchemist wrote:
       | Is it open source?
        
         | mbonnet wrote:
         | sort of: https://github.com/OpenSpace/Spice
         | 
         | but the you can use it to generate information by a really
         | nice, freely-usable API.
        
       | dard wrote:
       | Im a developer for the upcoming space telescope NEO Surveyor
       | (Near Earth Object Surveyor). I actually work quite a bit with a
       | number of people on the team up at JPL, Horizons is _the_
       | canonical source for ephemeris information. Another vital part of
       | the chain is the Minor Planet Center (MPC), which is where all
       | observations of asteroids and comets are sent by the community.
       | The MPC is the international authority for these observations,
       | which JPL ingests and computes orbits for (though the MPC also
       | has to compute orbits as a part of their work).
       | 
       | As a part of my work I have written a rust/python package[1] to
       | compute the position of asteroids accurately using the ephemeris
       | data provided by these two excellent sources. For the people who
       | use SPICE kernels (a rather old binary format for storing orbital
       | ephemeris), I have also written a custom implementation of spice
       | kernel reading which is natively parallel.
       | 
       | [1] https://github.com/Caltech-IPAC/kete
        
         | popalchemist wrote:
         | Do you know -- is the SPICE API or HORIZONS API available for
         | public use (i.e. within an app)? And if so where can I read
         | about getting an API key / usage limitations (rate limits etc)
        
           | dard wrote:
           | SPICE itself is a C package with a number of wrappers in
           | other languages. JPL use it, along with numerical integrator
           | and orbit determination code to generate SPICE "kernels", IE:
           | binary files. The Horizons API allow you to use their
           | numerical integrators to calculate the position of asteroids
           | and comets. This works great for single objects, or a
           | handful, but struggles when you want to look at the entire
           | solar system at a time. This is where my code comes in, it
           | enables similar calculations to what Horizon's provides, but
           | you can do them locally on all known asteroids/comets.
           | 
           | The C SPICE library is available online, but it dates back
           | decades, and was not really built with multi-core support in
           | mind. My code enables reading of SPICE kernel files with
           | native multi-core support. Though I would argue the bigger
           | benefit that my code provides is the numerical integrator
           | which can be used on the entire asteroid belt at once.
           | 
           | JPL Horizons API is open to anyone, if you hammer it enough
           | they may rate limit you, but I don't believe they have
           | limits. As far as I am aware they don't have any API keys or
           | usernames. See: https://ssd-
           | api.jpl.nasa.gov/doc/horizons.html
        
         | d_silin wrote:
         | Awesome project!
         | 
         | I want to plug our project for the curious:
         | https://github.com/DarkStar1982/Orbidium/
         | 
         | it is just a static viewer, but can be augmented to do
         | simulation/visualization in a similar manner.
        
       ___________________________________________________________________
       (page generated 2025-01-03 23:01 UTC)