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} = 
      "HelioCoordinates", {"Date" -> 
        DateObject[3644683200 + (3600*2 + 60*1 + 14)]}]] & /@ gmJ;

Notice that all the coordinates are the same:

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

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

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

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

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

  • $\begingroup$ 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. $\endgroup$ – m_goldberg Jun 5 '15 at 18:57
  • $\begingroup$ You can always use Jupiter's heliocentric coordinates and add in the moons' Jupiter-centric (Jovian) coordinates, no? $\endgroup$ – barrycarter Jan 8 '16 at 21:17
  • $\begingroup$ @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. $\endgroup$ – shrx Jan 10 '16 at 9:23
  • $\begingroup$ Are you looking for the orbital parameters or do you just need the position? Mathematica will give you the parameters and the position. $\endgroup$ – barrycarter Jan 10 '16 at 16:45
  • $\begingroup$ @barrycarter can you provide an example? I need heliocentric XYZ coordinates, but even time-dependent orbital parameters will help. $\endgroup$ – 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:


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:


enter image description here enter image description here

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.

ORIGINAL ANSWER: Too long for a comment, but not an answer.

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:


and got:

In[13]:= t2 // TableForm


>   AbsoluteMagnitude        Missing[NotAvailable]

    AbsoluteMagnitudeH       Missing[NotAvailable]

    Albedo                   0.63

    AlphanumericName         Io

    AlternateNames           Jupiter I

    AlternateStandardNames   JupiterI

    Altitude                 Missing[Variable]

    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.

    Diameter                 3.6432 10

    DiscoveryYear            1610

    Distance                 Missing[Variable]

    DistanceLightYears       Missing[Variable]

    Eccentricity             0.0041

    EquatorialDiameter       Missing[NotAvailable]

    EquatorialRadius         Missing[NotAvailable]

    EscapeVelocity           2558.0

    Gravity                  1.7961

    Image                    -Image-

    Inclination              0.036

    LastRiseTime             Missing[Variable]

    LastSetTime              Missing[Variable]

    Mass                     8.9298 10

    Name                     Io

    NextRiseTime             Missing[Variable]

    NextSetTime              Missing[Variable]

    ObjectType               PlanetaryMoon

    Oblateness               Missing[NotAvailable]

    Obliquity                0.

    OrbitCenter              Jupiter

    OrbitPeriod              1.528 10

    OrbitPeriodYears         0.004843

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

    Periapsis                4.201 10

    PeriapsisArgument        84.129

    PeriapsisLongitude       Missing[NotAvailable]

    PolarDiameter            Missing[NotAvailable]

    PolarRadius              Missing[NotAvailable]

    Position                 Missing[Variable]

    PositionLightYears       Missing[Variable]

    Radius                   1.8216 10

    RightAscension           Missing[Variable]

    RotationPeriod           1.528 10

    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.

  • 1
    $\begingroup$ 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. $\endgroup$ – Oleksandr R. Jan 11 '16 at 1:22
  • $\begingroup$ Robb has since left WRI and seems to have dropped off the radar. $\endgroup$ – Oleksandr R. Jan 11 '16 at 1:27
  • $\begingroup$ You are correct. I've added Wolfram's reply. $\endgroup$ – barrycarter Jan 14 '16 at 22:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for?Browse other questions tagged or ask your own question.