granthutchison wrote:There's also a slight incongruity in having a CustomRotation for bodies with such as Enceladus and Dione, for which the
USGS/IAU parameters merely describe a uniform rotation. The commented-out UniformRotation does exactly the same job as the CustomRotation for these bodies, but more transparently.
There's still a precession term in the IAU elements for Enceladus and Dione. It's identical to the precession term for Saturn, so it could be omitted if the rotations of these satellites were defined in Saturn's equatorial frame and we used the IAU CustomRotation for Saturn. But, the latter isn't the situation right now because it would mess up the orbits of a bunch of Saturn's moons.
This brings up the question of what to do about the rotation of Saturn. Even though the precession of Saturn's rotational axis is small (0.36 degrees / century), it would be nice to switch to the IAU rotation model. But changing Saturn's rotation model and reference frame affects the orbits of all Saturnian satellites. I think that it makes sense to eventually (as in post-1.6.0) create new CustomOrbits for the satellites Mimas, Enceladus, Dione, Tethys, Rhea, Hyperion, Titan, and Iapetus in the Saturnocentric ecliptic frame. That's what the TASS 1.7 theory (which would be an improvement over the orbital theory currently implemented) appears to use anyway. The EllipticalOrbits for the other satellites would have to be updated for the modified Saturn equatorial frame unless we create versions of the IAU CustomRotations for use in the ecliptic frame. The fact that the orbits would be defined with respect to a
moving equatorial plane should be a non-issue, as errors in the elliptical approximation would be much larger than those caused by the slight precession of Saturn's axis. We could also create EllipticalOrbits for use in the ecliptic frame--that might make the most sense if we use that frame for the Saturnian CustomOrbits.
As for Venus, I modified (locally) the IAUPrecessingRotationModel so that it:
1: sets a 'flipped' flag if the rotation rate is negative,
2: always reports a positive period, even if the rotation rate is negative
This 'flipped' flag was already implemented--it was getting set properly for the Uranian satellites, which is why their orientations closely matched the original (and also why I thought I'd handled all retrograde rotators.) I wanted to keep using the negative rotation rate in the code so that the IAU elements can be used directly, reducing the chance for errors.
Using the flipped flag fixes the gross errors, but still leaves about a tenth of a degree discrepancy with the current UniformRotation for Venus. Did you start with the IAU elements from
http://astrogeology.usgs.gov/Projects/W ... able1.html ? Since there's no precession listed for Venus, it might make the most sense to stick with the UniformRotation. Either way, my changes to the C++ code should be implemented just in case someone does eventually use the iau-venus, iau-uranus, and iau-pluto CustomRotations.
--Chris