$\begingroup$

EDIT: based on @Beska's comment, I went back and calculated the difference including light time. In other words, you have to use Jupiter's position roughly 48 minutes ago to state the travel time. Using the observe() method, which does this, there is a difference of 0.02 seconds. This doesn't really matter, considering that Juno is in a large orbit around Jupiter, not inside Jupiter - yet! :)

import numpy as np import matplotlib.pyplot as plt from skyfield.api import load data = load('de421.bsp') ts = load.timescale() t = ts.utc(2016, 7, 5, 9, 50, 0) jupiter, earth = data['Jupiter barycenter'], data['Earth'] jpos, epos = jupiter.at(t).position.km, earth.at(t).position.km d_instantaneous = np.sqrt(((jpos - epos)**2).sum()) d_light = earth.at(t).observe(jupiter).distance().km # where WAS Jupiter 48 minutes ago? clight = 299792.458 # km/s print "d_instantaneous / c = ", d_instantaneous/clight print "d_light / c = ", d_light/clight

gives

d_instantaneous / c = 2901.39437989 d_light / c = 2901.4127772

So it looks like NASA Eyes is using the simpler method of using instantaneous positions, and not actually back-calculating the position where Jupiter WAS when the signal would have started.

This is a different way to look at it. This is the variation of distance, light time, and also angular separations from the sun for Earth seen from Jupiter, and Jupiter seen from Earth. When they are too close, radio communication can become difficult.

I used Python and the Skyfield package. @SF. gives the right answer, I'm just plotting values as a function of time. The way I chose to do this I didn't used Skyfield's methods for light-time corrections, gravitation or astronomical aberration or atmospheric refraction, which are done with the .observe() and .apparent() methods. (Not all of those affect light time significantly anyway.) For this kind of rough plot it's not necessary so I used a short-cut.

The black dot is approximately July 4, 2016 for reference.