chris wrote:Now, the puzzling thing to me is that the CustomRotations are all very close to the old UniformRotations. The positions of Phobos and Deimos will be different, but not dramatically so. The CustomRotations are producing correct correct results, but it seems that equatorial plane for the CustomRotation different than it is for the nearly equivalent UniformRotation.
Chris, the equatorial plane seems to be pretty much the same, as we'd expect since CustomRotation is a good match for UniformRotation at this epoch. What has changed is the zero point for orbital longitude within the equatorial plane. As I said above, Celestia used to use the ascending node of the planet's equatorial plane on the
celestial equator. Since Horizons provided body-centred elements using the ascending node of the planet's equatorial plane on the
ecliptic, we needed to use a planet-specific offset in the longitude of the ascending node to convert from Horizons to Celestia.
The need for this offset has vanished with the introduction of CustomRotation, if Mars is anything to judge by: I now need to use standard Horizons data to position Phobos and Deimos correctly.
My first check above was just done by eyeball, but I've now confirmed with some precision. Below is an ssc containing dual definitions for Phobos and Deimos. Those suffixed "Body" use pure Horizons data in EllipticalOrbits tied to the new CustomRotation. Those suffixed "Ecliptic" use pure Horizons data in an Ecliptic2000 OrbitFrame. The positions of the bodies match almost exactly using these definitions, indicating that the loss of our old nodal offset is the origin of the displacement in orbital position when UniformRotation is replaced with CustomRotation.
Code: Select all
"PhobosBody" "Sol/Mars"
# unmodified body centred elements
# attached to CustomRotation
{
Mesh "phobos.cmod"
Texture "phobos.*"
Radius 13.0 # maximum semi-axis
MeshCenter [ -0.233 -0.156 -0.168 ]
EllipticalOrbit
{
Period 3.191594680550278E-01
SemiMajorAxis 9.378605566188982E+03
Eccentricity 1.468147128549376E-02
Inclination 1.075646290243919E+00
AscendingNode 1.696950087336492E+02
ArgOfPericenter 2.156447142065913E+02
MeanAnomaly 1.898331000224251E+02
}
BodyFrame { EquatorJ2000 {} }
CustomRotation "iau-phobos"
Albedo 0.07
}
"DeimosBody" "Sol/Mars"
# unmodified body centred elements
# attached to CustomRotation
{
Mesh "deimos.cmod"
Texture "deimos.*"
Radius 7.9 # maximum semi-axis
MeshCenter [ -0.299 -0.284 0.369 ]
EllipticalOrbit
{
Period 1.262529978296102E+00
SemiMajorAxis 2.345817634982984E+04
Eccentricity 3.144182919804991E-04
Inclination 9.187430224722115E-01
AscendingNode 6.341252077209298E+01
ArgOfPericenter 1.931409087214150E+02
MeanAnomaly 1.960853477817803E+00
}
BodyFrame { EquatorJ2000 {} }
CustomRotation "iau-deimos"
Albedo 0.08
}
"PhobosEcliptic" "Sol/Mars"
# unmodified ecliptic elements
# with ecliptic body frame
{
Mesh "phobos.cmod"
Texture "phobos.*"
Radius 13.0 # maximum semi-axis
MeshCenter [ -0.233 -0.156 -0.168 ]
OrbitFrame {
EclipticJ2000 { Center "Sol/Mars" }
}
EllipticalOrbit
{
Period 3.191594660665225E-01
SemiMajorAxis 9.378605527233729E+03
Eccentricity 1.468147543996196E-02
Inclination 2.605589048779109E+01
AscendingNode 8.481536012636795E+01
ArgOfPericenter 3.427726995811867E+02
MeanAnomaly 1.898330972741476E+02
}
BodyFrame { EquatorJ2000 {} }
CustomRotation "iau-phobos"
Albedo 0.07
}
"DeimosEcliptic" "Sol/Mars"
# unmodified ecliptic elements
# with ecliptic body frame
{
Mesh "deimos.cmod"
Texture "deimos.*"
Radius 7.9 # maximum semi-axis
MeshCenter [ -0.299 -0.284 0.369 ]
OrbitFrame {
EclipticJ2000 { Center "Sol/Mars" }
}
EllipticalOrbit
{
Period 1.262529948014802E+00
SemiMajorAxis 2.345817597473957E+04
Eccentricity 3.144023166279958E-04
Inclination 2.756851066441724E+01
AscendingNode 8.366905628616398E+01
ArgOfPericenter 2.150177429548746E+02
MeanAnomaly 1.960953198319042E+00
}
BodyFrame { EquatorJ2000 {} }
CustomRotation "iau-deimos"
Albedo 0.08
}
So I'm guessing you need to be looking at a difference in equatorial node definitions between UniformRotation and CustomRotation.
(
Edit to add: You can easily demonstrate the change in nodes I'm talking about using the above
ssc. Temporarily reinstate Mars' UniformRotation in
solarsys.ssc, and you'll see the "Body" definitions of Phobos and Deimos shift out of register by forty degrees relative to the "Ecliptic" definitions.)
Grant