I'd like to obtain or create a table for the Voyager images with distance information, e.g.
Volume, Image, Target, Distance (km)
5101, C1327538, Io, 134474
(The indexes with the PDS volumes have the times for each image)
Does anyone know a source for this or good or simple way to calculate it? I've just started looking at the documentation for SPICE at http://naif.jpl.nasa.gov/naif/, which looks like it would be the way to do it, but I'm not sure how involved it would be.
This would give you the size of the target relative to the camera field of view, which would allow you to interleave the narrow and wide angle camera views, and also turn off the center-detection algorithm when generating movies.
Thank you for any pointers!
use the spice kernels
if you do not know C well there is a idl and FORTRAN and MatLab versions
http://naif.jpl.nasa.gov/naif/toolkit.html
but voyager predates this so the data is a reconstructed on "best GUESS"
the voyager kernels are here
ftp://naif.jpl.nasa.gov/pub/naif/VOYAGER/
voy 1&2 were recalculated in 2015
Voyager_2.m05016u.merged.bsp
Voyager_1.a54206u_V0.2_merged.bsp
please read the README file
ftp://naif.jpl.nasa.gov/pub/naif/VOYAGER/kernels/aareadme.txt
getting your mind wrapped around SIPCE is fun , it is a bit complicated
it is like drinking a "pan galactic gargle blaster"
for example "voyager_1.ST+1991_a54418u.merged.bsp" uses
The SPICE / NAIF spy.exe utility is a way to dump SPICE kernels in a fairly easy way with a simple scripting language. I'd recommend to try this first, unless you favor access to all detail of NAIF/SPICE via programming API.
You'll need to set about a dozen of parameters to get the results in the way you require them.
Thanks for all the information - I stumbled across a nice Python interface for SPICE here - https://github.com/AndrewAnnex/SpiceyPy. It probably saved me lots of hair-pulling dealing with C.
I got a simple example working, calculating the distance from Voyager 1 to Jupiter - so now I can find the distance to the target for each image, and so its angular size (though maybe SPICE would provide that also?) -
Hi Brian
Thanks for posting this example, it has been very helpful to me. However, when I tried plugging in the variables to look at the Voyager 2 encounter, I don't get the right distances. Any idea why?
>>> import math
>>> import spiceypy as spice
>>>
>>>
>>> # utc time range for Voyager 1
... #utcStart = '1979-03-01'
... #utcStop = '1979-03-10'
...
>>> # utc time range for Voyager 2
... utcStart = '1979-07-05'
>>> utcStop = '1979-07-13'
>>>
>>> # target and observer
... target = 'JUPITER BARYCENTER'
>>> #observer = 'VOYAGER 1'
... observer = 'VOYAGER 2'
>>>
>>>
>>> def et2str(et):
... "Convert an ephemeris time (seconds after J2000) to a UTC string."
... formatStr = "ISOC"
... prec = 0
... s = spice.et2utc(et, formatStr, prec, lenout=256)
... return s
...
>>> # load leap second data
... spice.furnsh('naif0012.tls')
>>>
>>> # load voyager data
... #spice.furnsh('Voyager_1.a54206u_V0.2_merged.bsp')
... spice.furnsh('Voyager_2.m05016u.merged.bsp')
>>>
>>> # get ephemeris time (seconds since J2000)
... etStart = spice.str2et(utcStart)
>>> etStop = spice.str2et(utcStop)
>>>
>>> # get time range
... nsteps = 50
>>> etTimes = [i*(etStop-etStart)/nsteps + etStart for i in range(nsteps)]
>>>
>>> # get vectors from observer to target
... # see http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/spkpos_c.html
... frame = 'J2000'
>>> abcorr = 'NONE' # abberation correction
>>> positions, lightTimes = spice.spkpos(target, etTimes, frame, abcorr, observer)
>>>
>>> # get distances
... distances = [math.sqrt(x**2+y**2+z**2) for x,y,z in positions]
>>>
>>> # Voyager 1's closest approach to Jupiter occurred March 5, 1979
... # Distance 349,000 km
... # Voyager 2's closest approach to Jupiter occurred on July 9, 1979.
... # It came within 570,000 km of the planet's cloud tops.
...
>>> for i, distance in enumerate(distances):
... print "%s %.0f" % (et2str(etTimes[i]), distance)
...
1979-07-05T00:00:00 5101847
1979-07-05T03:50:24 4963408
1979-07-05T07:40:48 4824321
1979-07-05T11:31:12 4684556
1979-07-05T15:21:36 4544084
1979-07-05T19:12:00 4402875
1979-07-05T23:02:24 4260894
1979-07-06T02:52:48 4118107
1979-07-06T06:43:12 3974475
1979-07-06T10:33:36 3829961
1979-07-06T14:24:00 3684521
1979-07-06T18:14:24 3538113
1979-07-06T22:04:48 3390691
1979-07-07T01:55:12 3242209
1979-07-07T05:45:36 3092620
1979-07-07T09:36:00 2941877
1979-07-07T13:26:24 2789938
1979-07-07T17:16:48 2636766
1979-07-07T21:07:12 2482335
1979-07-08T00:57:36 2326640
1979-07-08T04:48:00 2169709
1979-07-08T08:38:24 2011626
1979-07-08T12:28:48 1852573
1979-07-08T16:19:12 1692903
1979-07-08T20:09:36 1533246
1979-07-09T00:00:00 1374686
1979-07-09T03:50:24 1219135
1979-07-09T07:40:48 1069943
1979-07-09T11:31:12 933190
1979-07-09T15:21:36 819242
1979-07-09T19:12:00 743424
1979-07-09T23:02:24 721909
1979-07-10T02:52:48 760496
1979-07-10T06:43:12 849068
1979-07-10T10:33:36 970787
1979-07-10T14:24:00 1111683
1979-07-10T18:14:24 1262874
1979-07-10T22:04:48 1419237
1979-07-11T01:55:12 1577894
1979-07-11T05:45:36 1737225
1979-07-11T09:36:00 1896315
1979-07-11T13:26:24 2054649
1979-07-11T17:16:48 2211944
1979-07-11T21:07:12 2368051
1979-07-12T00:57:36 2522903
1979-07-12T04:48:00 2676485
1979-07-12T08:38:24 2828807
1979-07-12T12:28:48 2979899
1979-07-12T16:19:12 3129800
1979-07-12T20:09:36 3278556
>>>
the voyager kernels are only an approximate and a reconstruction many years after the fact
see the "ReadMe"
ftp://naif.jpl.nasa.gov/pub/naif/VOYAGER/kernels/aareadme.txt
and use the kernels listed in that file
ftp://naif.jpl.nasa.gov/pub/naif/VOYAGER/kernels/
According to this (obsolete) http://pirlwww.lpl.arizona.edu/resources/guide/software/SPICE/old_tutorials/SPK_Tutorial.pdf, Jupiter is offset from Jupiter BC by 165 km, according to https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/Tutorials/pdf/individual_docs/18_spk.pdf, it's up to 220 km. Did you try JUPITER (599) instead of JUPITER_BARYCENTER (5)?
I'm usually working with IAU_JUPITER, i.e. System III, for JunoCam, but http://lasp.colorado.edu/home/mop/files/2015/02/CoOrd_systems7.pdf, too. Voyager might use systems different from these.
Some effect might also be caused by aberration correction, which is switched off in your Py code.
Thanks for the comments/suggestions. It looks like the NAIF kernels and software are right and the reference to "It came within 570,000 km of the planet's cloud tops", which may come from a JPL Voyager web page is wrong. The Wikipedia article for Voyager 2 detailed "Timeline of Travel" says "1979-07-09 - 22:29 Jupiter closest approach at 721,670 km from the center of mass", which matches the NAIF/SPICE values. By the way, when I tried running the script with target JUPITER instead of JUPITER_BARYCENTER I got an error "Insufficient ephemeris data has been loaded to compute the position of 599 (JUPITER) relative to -32 (VOYAGER 2) at the ephemeris epoch 1979 JUL 08 00:00:50.183."
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)