Hi. I'm a fan of Stellarium.
As time permits, I hope to add support for looking up small bodies and updating their ephemeris automatically via JPL HORIZONS. Here's an outline of how this might happen:
1. Investigate ell_orbit and comet_orbit trajectory types
--Ted 10:07, 13 November 2007 (PST): Stellarium and Celestia both use Chris Laurel's C++ classes for 2 body trajectories. It looks really clean and understandable. I may add parabolic cases to Chris's code at some point.
Stellarium's bodies are currently stored in a single flat text file, ssystem.ini. End users generally won't want to edit ssystem.ini by hand. Trajectories fall into three categories:
- (1) Major and minor planets that use special propagation techniques;
- (2) Elliptical trajectories, which appear to use simple 2-body dynamics;
- (3) "Comet" trajectories, which uses a different set of elements better suited to hyperbolic trajectories (also 2-body).
NOTE: Use ell_orbit for all periodic trajectories, even if they're comets. "comet_orbit" is suitable for hyperbolic trajectories.
2. Verify and validate sanity checking / error handling for orbital elements
Make sure Stellarium doesn't hang or crash due to bad input in ssystem.ini. Ideally, errors should be logged and bodies with bad data simply aren't displayed. Can users specify level of error reporting and logging? Does Stellarium parse ssystem.ini only once upon startup, or can you dynamically add and delete solar system bodies?
Possible side project: replace flat files with a database? Probably overkill.
3. Develop standalone tool for grabbing ephemeris from JPL HORIZONS
Given a solar system body and an epoch, automatically grab proper orbital elements from HORIZONS. There are two interfaces that could be used: web or anonymous telnet. Make sure the tool can successfully append the body to ssystem.ini. If it's a duplicate body, it should ask the user whether to overwrite or rename the new body.
4. Add functionality to Stellarium
Add the capabilities from step #3 directly into Stellarium. Make an interface for the user to search for a valid body, then choose an epoch. Results are displayed briefly, for user to validate. Is it possible to alter ssystem.ini on the fly while Stellarium is running? Perhaps it's better to break out a separate config file for custom solar system bodies.
This is just something I plan to tinker with in my spare time. Interested parties please shoot me an email or reply to my talk page here.