# Inaccurate Heliocentric coordinates of PlanetaryMoonData

I have noticed that the heliocentric coordinates obtained with PlanetaryMoonData are very inaccurate. Fore example, consider the Galilean moons of Jupiter:

gmJ = PlanetaryMoonData[EntityClass["PlanetaryMoon", "GalileanMoon"]];
{europaXYZ, kalistoXYZ, ganimedXYZ, ioXYZ} =
PlanetaryMoonData[#,
EntityProperty["PlanetaryMoon",
"HelioCoordinates", {"Date" ->
DateObject[3644683200 + (3600*2 + 60*1 + 14)]}]] & /@ gmJ;


Notice that all the coordinates are the same:

SameQ @@ {europaXYZ, kalistoXYZ, ganimedXYZ, ioXYZ}

True


On further inspection, it seems to just return the heliocentric coordinates of their parent body, i.e. Jupiter:

jupiterXYZ =
PlanetData["Jupiter",
EntityProperty["Planet",
"HelioCoordinates", {"Date" ->
DateObject[3644683200 + (3600*2 + 60*1 + 14)]}]];

SameQ @@ {europaXYZ, kalistoXYZ, ganimedXYZ, ioXYZ, jupiterXYZ}

True


Using SetPrecision when evaluating the calls to PlanetaryMoonData seems to have no effect. How to obtain better quality data of the moons' heliocentric coordinates?

• I don't think the currated astronomical data has observatory accuracy (nor do I think it is it intended to). It appears to be kept as a machine float in AU. So trying to set precision won't have any effect. Further, on the scale of AUs, Jupiter and its Galilean moons are essential all in the same place. – m_goldberg Jun 5 '15 at 18:57
• You can always use Jupiter's heliocentric coordinates and add in the moons' Jupiter-centric (Jovian) coordinates, no? – barrycarter Jan 8 '16 at 21:17
• @barrycarter I can't do that because Mathematica does not provide the true anomaly of the moons, which is needed to calculate their time-dependent orbital parameters. If you know a different way, let me know. – shrx Jan 10 '16 at 9:23
• Are you looking for the orbital parameters or do you just need the position? Mathematica will give you the parameters and the position. – barrycarter Jan 10 '16 at 16:45
• @barrycarter can you provide an example? I need heliocentric XYZ coordinates, but even time-dependent orbital parameters will help. – shrx Jan 10 '16 at 17:23

EDIT: Still looking into this, but here's the latest reply from Wolfram:

The Scientific Astronomer package you are referencing was a third party package that the company never maintained. It looks as though it has not been updated since version 5.

You will find similar functionality in the interpreters listed under Related Interpreters at the following link:

http://reference.wolfram.com/language/ref/interpreter/AstronomicalObjectClass.html

I cannot say if the exact functionality from that package has been implemented in more recent versions however, as we did not maintain the package.

EDIT: It appears that Mathematica has or had a product called Scientific Astronomer that did this. Snapshotting pages 44-45 (pages 56-57 of the PDF version) of:

Presumably, Wolfram won't give away for free what they sell in a separate software package.

The unusual thing here is that all the links I found to purchase Scientific Astronomer are either broken or lead to a generic "packages" pages. See also: How do I determine astronomical transit times? which mentions Scientific Astronomer is a "legacy" package.

You may also want to ping Wolfram. Searching for '"scientific astronomer" site:wolfram.com' (as quoted) yields several results, but no actual mention I could find of how to obtain the package.

OK, I think I see your problem now. When I did AstronomicalData["Io", "Properties"] (I'm using an older version of Mathematica), I did see Position as one of the values. However, Mathematica yields Missing[Variable] for Io's position (and it works for Jupiter and the Sun, so it's not because I'm not providing a date object). Apparently, Properties just returns a template that may or may not work in a specific case.

I did:

t2=Table[{i,AstronomicalData["Io",i]},{i,AstronomicalData["Io","Properties"]}];

and got:


In[13]:= t2 // TableForm

Out[13]//TableForm=

>   AbsoluteMagnitude        Missing[NotAvailable]

AbsoluteMagnitudeH       Missing[NotAvailable]

Albedo                   0.63

AlphanumericName         Io

AlternateNames           Jupiter I

AlternateStandardNames   JupiterI

Altitude                 Missing[Variable]

8
Apoapsis                 4.235 10

ApparentMagnitude        Missing[Variable]

AscendingNodeLongitude   43.977

Azimuth                  Missing[Variable]

Classes                  PlanetaryMoon

Constellation            Missing[Variable]

ConstellationName        Missing[Variable]

Declination              Missing[Variable]

Density                  3528.

6
Diameter                 3.6432 10

DiscoveryYear            1610

Distance                 Missing[Variable]

DistanceLightYears       Missing[Variable]

Eccentricity             0.0041

EquatorialDiameter       Missing[NotAvailable]

EscapeVelocity           2558.0

Gravity                  1.7961

Image                    -Image-

Inclination              0.036

LastRiseTime             Missing[Variable]

LastSetTime              Missing[Variable]

22
Mass                     8.9298 10

Name                     Io

NextRiseTime             Missing[Variable]

NextSetTime              Missing[Variable]

ObjectType               PlanetaryMoon

Oblateness               Missing[NotAvailable]

Obliquity                0.

OrbitCenter              Jupiter

5
OrbitPeriod              1.528 10

OrbitPeriodYears         0.004843

8
SemimajorAxis -> 4.218 10
Eccentricity -> 0.0041
Inclination -> 0.036
PeriapsisArgument -> 84.129
AscendingNodeLongitude -> 43.977
PeriapsisLongitude -> Missing[NotAvailable]
8
Periapsis -> 4.201 10
8
OrbitRules               Apoapsis -> 4.235 10

8
Periapsis                4.201 10

PeriapsisArgument        84.129

PeriapsisLongitude       Missing[NotAvailable]

PolarDiameter            Missing[NotAvailable]

Position                 Missing[Variable]

PositionLightYears       Missing[Variable]

6

RightAscension           Missing[Variable]

5
RotationPeriod           1.528 10

8
SemimajorAxis            4.218 10

Speed                    Missing[Variable]

StandardName             Io


Several options:

• It's possible this functionality is available in a Mathematica add-on, but a lot of add-on functionality is now part of Mathematica itself. However, you may want to look at:

just in case I missed something.

• If you just need a table of Io position data: http://ssd.jpl.nasa.gov/horizons.cgi

• If you're OK with using something other than Mathematica to compute positions: http://naif.jpl.nasa.gov/naif/tutorials.html

• There's also pyephem, skyfield, Astro::Nova and doubtless many others, though the CSPICE libraries above are the ones NASA uses.

• Finally, I've converted some position data to Mathematica format. I can provide more details, but, unless you absolutely have to use Mathematica, I wouldn't recommend this method.

• I think WRI actually does not care about preserving the novelty of these commercial add-on packages. They are third-party tools and only half-heartedly resold by WRI. More than once, the author of such a package has been hired by WRI, and the functionality incorporated into Mathematica (most notable example: Roman Maeder's Parallel` package). It seems the same has happened to Terry Robb, author of Scientific Astronomer. Apart from that, the package is nearly 20 years old now (the documentation says it's written for Mathematica 3 or 4), and almost certainly no longer available. – Oleksandr R. Jan 11 '16 at 1:22
• Robb has since left WRI and seems to have dropped off the radar. – Oleksandr R. Jan 11 '16 at 1:27
• You are correct. I've added Wolfram's reply. – barrycarter Jan 14 '16 at 22:12