I am running Celestia Version 1.6.3 (5) on macOS Ventura 13.4.1 (22F82) on a 2023-model MacBook Pro with the Apple M2 Pro.
I am in the process of writing a novel that takes place at the Earth–Sun L4 point in the 5500s or so. A key point to certain things in the story—both in the narrative itself but also in the backstory—are based on particular astronomical events, particularly planetary conjunctions.
To this end, I am wanting to be able to see what the sky would look like from the Earth–Sun L4 point in the year 5500 or so, particularly for planetary positions. I recognize that at a certain point, we have limited powers of prediction, but I would like to be reasonably accurate. I do not care about rotation data or image textures or anything like that; I just want to know where the planets are relative to each other and the "fixed stars" (modulo proper motion, but I'm okay with handwaving that a little) from the perspective of someone at the Earth-Sun L4 point.
However, in using Celestia for this, I have discovered that after the year 4000, the position of Earth drifts rapidly relative to the fixed stars year-over-year for the same date. This can be easily demonstrated by opening Celestia, moving the camera to have a "top-down" view of the solar system, selecting the Sun, and hitting F to follow it; and then using time-skip functionality, look at Earth's position on March 21 year-over-year. From 2023 to 4000, the Earth year-over-year slowly drifts clockwise from around 195° (on the ecliptic grid) to 175°—but from 4000 onward, every four years it makes a significant jump counterclockwise, appearing to get back to 195° by 4124 or so. The initial slow drift passes my vibe check based on the precession of the axes; but the drift from 4000 onward seems problematic.
On the Discord, it was suggested that this was because Celestia uses VSOP 87 internally—however, Stellarium also uses VSOP87 and does not appear to also have this drift. (I cannot use Stellarium for this task because of the aforementioned "this is all at L4" requirement).
It was then suggested that it might be possible to change Celestia away from VSOP87 to using the DE441 ephemerides, which theoretically go all the way to the 17000s or so, which is well beyond what I would need for my purposes.
Someone on the Discord helpfully linked me to this thread: viewtopic.php?f=2&t=23176 which I have been trying to follow (at least, the parts I care about), but using de441.bsp instead of de440.bsp (which I assume is DE440, and is more limited).
To this end, I downloaded de441.bsp from ftp://ssd.jpl.nasa.gov//pub/eph/planets/bsp/de441.bsp
When I run it through brief I get the following output:
Code: Select all
> brief -c de441.bsp
BRIEF -- Version 4.1.0, September 17, 2021 -- Toolkit Version N0067
Summary for: de441.bsp
Bodies: MERCURY BARYCENTER (1) w.r.t. SOLAR SYSTEM BARYCENTER (0)
VENUS BARYCENTER (2) w.r.t. SOLAR SYSTEM BARYCENTER (0)
EARTH BARYCENTER (3) w.r.t. SOLAR SYSTEM BARYCENTER (0)
MARS BARYCENTER (4) w.r.t. SOLAR SYSTEM BARYCENTER (0)
JUPITER BARYCENTER (5) w.r.t. SOLAR SYSTEM BARYCENTER (0)
SATURN BARYCENTER (6) w.r.t. SOLAR SYSTEM BARYCENTER (0)
URANUS BARYCENTER (7) w.r.t. SOLAR SYSTEM BARYCENTER (0)
NEPTUNE BARYCENTER (8) w.r.t. SOLAR SYSTEM BARYCENTER (0)
PLUTO BARYCENTER (9) w.r.t. SOLAR SYSTEM BARYCENTER (0)
SUN (10) w.r.t. SOLAR SYSTEM BARYCENTER (0)
MERCURY (199) w.r.t. MERCURY BARYCENTER (1)
VENUS (299) w.r.t. VENUS BARYCENTER (2)
MOON (301) w.r.t. EARTH BARYCENTER (3)
EARTH (399) w.r.t. EARTH BARYCENTER (3)
Start of Interval (ET) End of Interval (ET)
----------------------------- -----------------------------
13201 B.C. MAY 06 00:00:00.000 17191 MAR 15 00:00:00.000
This appears to be in order.
I then wrote a file, SolarSystem.SPICE.ssc, which looks like this:
Code: Select all
ReferencePoint "Mercury_bary" "Sol"
{
Beginning "-13201 05 06 00:00:00.000"
Ending "17191 03 15 00:00:00.000"
OrbitFrame { EclipticJ2000 { Center "SSB"}}
Visible true
Clickable true
SpiceOrbit
{
Kernel "de441.bsp"
Target "1"
Origin "1"
Period 0.25
BoundingRadius 1e10
}
}
ReferencePoint "Venus_bary" "Sol"
{
Beginning "-13201 05 06 00:00:00.000"
Ending "17191 03 15 00:00:00.000"
OrbitFrame { EclipticJ2000 { Center "SSB"}}
Visible true
Clickable true
SpiceOrbit
{
Kernel "de441.bsp"
Target "2"
Origin "2"
Period 1
BoundingRadius 1e10
}
}
ReferencePoint "Earth_bary" "Sol"
{
Beginning "-13201 05 06 00:00:00.000"
Ending "17191 03 15 00:00:00.000"
OrbitFrame { EclipticJ2000 { Center "SSB"}}
Visible true
Clickable true
SpiceOrbit
{
Kernel "de441.bsp"
Target "3"
Origin "3"
Period 1
BoundingRadius 1e10
}
}
ReferencePoint "Mars_bary" "Sol"
{
Beginning "-13201 05 06 00:00:00.000"
Ending "17191 03 15 00:00:00.000"
OrbitFrame { EclipticJ2000 { Center "SSB"}}
Visible true
Clickable true
SpiceOrbit
{
Kernel "de441.bsp"
Target "4"
Origin "4"
Period 2
BoundingRadius 1e10
}
}
ReferencePoint "Jupiter_bary" "Sol"
{
Beginning "1549 12 31 00:00:00.000"
Ending "2650 01 25 00:00:00.000"
OrbitFrame { EclipticJ2000 { Center "SSB"}}
Visible true
Clickable true
SpiceOrbit
{
Kernel "de441.bsp"
Target "5"
Origin "5"
Period 12
BoundingRadius 1e10
}
}
ReferencePoint "Saturn_bary" "Sol"
{
Beginning "-13201 05 06 00:00:00.000"
Ending "17191 03 15 00:00:00.000"
OrbitFrame { EclipticJ2000 { Center "SSB"}}
Visible true
Clickable true
SpiceOrbit
{
Kernel "de441.bsp"
Target "6"
Origin "6"
Period 12
BoundingRadius 1e10
}
}
ReferencePoint "Uranus_bary" "Sol"
{
Beginning "-13201 05 06 00:00:00.000"
Ending "17191 03 15 00:00:00.000"
OrbitFrame { EclipticJ2000 { Center "SSB"}}
Visible true
Clickable true
SpiceOrbit
{
Kernel "de441.bsp"
Target "7"
Origin "7"
Period 12
BoundingRadius 1e10
}
}
ReferencePoint "Neptune_bary" "Sol"
{
Beginning "-13201 05 06 00:00:00.000"
Ending "17191 03 15 00:00:00.000"
OrbitFrame { EclipticJ2000 { Center "SSB"}}
Visible true
Clickable true
SpiceOrbit
{
Kernel "de441.bsp"
Target "8"
Origin "8"
Period 12
BoundingRadius 1e10
}
}
I then opened the Celestia application package and inserted them as follows:
Code: Select all
/Applications/Celestia.app/Contents/Resources/CelestiaResources/extras/SpiceSolarSystem/data/Solarsystem.SPICE.ssc
/Applications/Celestia.app/Contents/Resources/CelestiaResources/extras/SpiceSolarSystem/data/de441.bsp
I have other things in that extras directory already that I believe are being read, and the relevant line from my celestia.cfg is:
Code: Select all
ExtrasDirectories [ "extras-standard" "extras" ]
However, when I run Celestia again, I continue to see the orbital drift for Earth.
To this end, I would like to know: is this the proper path for having Celestia use different ephemerides than VSOP87 provides—notably, DE441—in order to get a more accurate prediction of where Earth and the other planets will be in the 5500s?
(Keeping in mind again that yes, I know it has fairly large error bars, but if a different data set slash algorithm has smaller error bars and lead to more sensical options, I would like to use that instead)
Assuming the answer to that question is yes, are there any obvious steps I am missing in getting this set up in my installation of Celestia? Furthermore, are there any steps I can take in terms of debugging—for example, log files—to confirm that Celestia is properly picking up my new SSC file and attendant BSP data, and if there are any errors it's encountering along the way that might be causing it to revert to VSOP87 or whatever it's doing under the hood?
Thank you!