In the past few weeks, I've been gradually implementing CustomRotations for various solar system bodies. These can replace the uniform rotations currently used for almost all objects in the base Celestia distribution. I've tried to document the sources for all the CustomRotation models thoroughly in customrotation.cpp.
The following CustomRotations have been implemented:
Code: Select all
iau-mercury
iau-venus
iau-earth
iau-mars
iau-jupiter
iau-saturn
iau-uranus
iau-neptune
iau-pluto
iau-moon
iau-mimas
iau-enceladus
iau-tethys
iau-telesto
iau-calypso
iau-dione
iau-helene
iau-rhea
iau-titan
iau-iapetus
iau-phoebe
earth-p03lp
There are still some obvious gaps: there are IAU defined rotation models for satellites of Jupiter, Uranus, and Neptune as well. It's just a matter of entering the data from the IAU/UAG Working Group on Cartographic Coordinates and Rotational Elements (http://astrogeology.usgs.gov/Projects/W ... able2.html)
I should credit Grant for bringing these to my attention. With Mimas especially, replacing the UniformRotation with CustomRotation "iau-mimas" makes a big difference. When using just a UniformRotation, the sub-Saturn point of Mimas drifts a great deal.
There's still some work to be done. The expressions for the pole positions of many of the bodies include secular terms that give obviously incorrect orientations if extrapolated too far into the past or future. These secular terms need to be clamped to some yet-to-be-determined time range. If anyone can advise on what an appropriate range might be, I'd appreciate it very much.
The IAU rotation model for the earth is very simplistic, with the RA and declination of the pole varying linearly over time. I've implemented a better one based on a Jan Vondrak's long-period extension of the P03 precession model. One of the resolutions at the 2006 meeting of the IAU is the adoption of the P03 precession model on January 1, 2009. This model improves on the IAU 1976 model currently in use, but the all of the precession quantities are still calculated with polynomials, limiting the time span over which the model may be used to less than a full precession cycle. Vondrak gave a presentation at IAU 2006 detailing an extension to the P03 model that agrees closely with P03 within 1000 years of the present, but which contains periodic terms that permit it to be used over a much longer time span (over a million years!) I've verified that the implementation in Celestia matches P03 between 1000 AD and 3000 AD to within a few hundredths of an arcsecond. You can enable it by adding the following line to the definition of Earth in solarsys.ssc:
Code: Select all
CustomRotation "earth-p03lp"
At the moment, nutations are not incorporated, but that will be addressed soon. The nutation.cpp file has an implementation of the IAU 2000 nutation model, which is compatible with P03.
One issue to consider now is whether we should add the option to enable a second equatorial grid, which is aligned with the Earth's equator of date instead of the J2000 equator.
Some references:
Expressions for IAU2000 precession quantities, N. Capitaine et al:
http://syrte.obspm.fr/documents/papers/PrecP03.pdf
Long-periodic precession parameters, J. Vondrak:
http://www.astronomy2006.com/files/vondrak.pdf
--Chris