Predicting passes of artificial satellites in orbit around Earth would be a very interesting feature for Stellarium.
Artificial satellites in orbit around Earth have more complicated orbital behavior than planets or moons. Orbital calculations need to take into account the non-uniform gravitational field of the Earth, interaction with the Moon, atmospheric drag and so on.
Orbital Element Acquisition
In addition to the more complicated orbital calculations, the orbits of artificial satellites are often changed by altitude boosting operations.
Several Internet resources are available for downloading updated orbital elements, usually in the NORAD TLE (two line element) format. An artificial satellite prediction system would need to be able to periodically check for updated orbital elements and update Stellarium's object database.
TLE elements are the input for various models for the calculation of satellites positions, e.g. SGP/SGP4/SDP4/SGP8/SDP8. A detailed discussion of the TLE format, models and a reference implementations in FORTRAN may be found in this document.
Rendering and User Interface Components
There are several possible ways in which satellites may be seen within Stellarium:
- Sky rendering, much like a star (with properly calculated magnitude and so on).
- A list of satellite passes for the observer's location over a given time period.
- Radio footprints of satellites overlaid on the location map
- Iridium flare prediction/rendering
- ISS rendering as a special object
- Other ideas?
GNU Predict implements the relevant models needed for the calculation of satellite positions, and methods for parsing TLE data. This could be a good place to share/borrow/nab/eat code from.