Title: Introduction to SPICE
1Introduction to SPICE
- Jose Luis Vázquez
- European Space Astronomy Centre
- European Space Agency
2Introduction to SPICE
A general problem
An image from Mars is sent to the Earth, but...
whereabouts in Mars?
- Jose Luis Vázquez (ESAC/ESA)
3Introduction to SPICE
A general problem (step 1)
Calculate the position and orientation of the S/C
with respect to some frame.
- Jose Luis Vázquez (ESAC/ESA)
4Introduction to SPICE
A general problem (step 2)
Calculate the intersection of the camera field of
view with the Mars surface.
- Jose Luis Vázquez (ESAC/ESA)
5Introduction to SPICE
A general (big) problem
- I only have the S/C clock information about the
time the image was taken. How do I know the UTC
time? - How do I calculate the position and orientation
of the S/C for that UTC time? - How do I know the field of view of the camera and
its intersection with the Mars surface? - Even if I knew that, Mars rotates with time. How
do I know the position of Mars for the time the
image was taken? - The solution is...
- Jose Luis Vázquez (ESAC/ESA)
6Introduction to SPICE
SPICE!
- Jose Luis Vázquez (ESAC/ESA)
7Introduction to SPICE
A few generalities
- SPICE is a library (the toolkit) and a data
format that will help you when it comes to
geometry and time calculations. - Developed by NAIF, at the Jet Propulsion
Laboratory, under a contract with NASA. - In can be used for data analysis, but also for
planning. - The toolkit is available in Fortran, C and IDL.
There also is a beta Matlab version. - It is freely downloadable from the official SPICE
web site at http//naif.nasa.jpl.gov.
- Jose Luis Vázquez (ESAC/ESA)
8Introduction to SPICE
Components of SPICE
- The SPICE toolkit available in several
programming languages. It contains a
comprehensible html documentation. - Data files, aka kernels. They contain all the
data SPICE needs in order to do its calculations.
They are usually provided by NAIF, ESA or other
institutions. - Utility programs to handle and create kernels.
- Documentation Tutorials and Required Readings,
also downloadable from the NAIF web page. You are
encouraged to read them!
- Jose Luis Vázquez (ESAC/ESA)
9Introduction to SPICE
Training in SPICE
NAIF organizes regular workshops on SPICE, open
to the communty. They usually are held in
USA. Next SPICE workshop ESAC (Madrid), Obtober
2007 Contact Jose Luis Vázquez Still a few
places left...
- Jose Luis Vázquez (ESAC/ESA)
10Introduction to SPICE
SPICE kernels
- The SPICE kernels are data files that contain the
information the toolkit needs for the
calculations. - They are several kernel types. Each type contains
a different kind of information (ephemeris,
attitude, time, etc.). - A kernel can be a binary or text file.
- Jose Luis Vázquez (ESAC/ESA)
11Introduction to SPICE
Types of SPICE kernels (I)
- A kernel can be of the following types
- SPK Spacecraft and planetary kernel with
ephemeris data. - IK Instrument kernel characteristics like
field of view, or number of pixels in a
CCD. - CK C-matrix kernel with attitude of
spacecrafts and subsructures. - EK Events kernel.
- Jose Luis Vázquez (ESAC/ESA)
12Introduction to SPICE
Types of SPICE kernels (II)
- FK Frames kernel with information about
different reference frames. - PCK Planetary constants kernel, with
information like mass, radius, etc. for
Solar System bodies. - LSK Leapseconds kernel.
- SCLK S/C clock coefficients kernel.
- Jose Luis Vázquez (ESAC/ESA)
13Introduction to SPICE
SPICE kernels. Why do they exsist?
- Accuracy Motion of bodies are far from ideal.
The ephemeris and attitude kernels contain actual
data from measurements or predictions. - Economy Not all the information is needed at the
same time. You can use the kernels you need for
your application. - Flexibility Information can be updated/improved.
You don't need to update the toolkit or recompile
the application just get the new kernels.
- Jose Luis Vázquez (ESAC/ESA)
14Introduction to SPICE
SPICE concepts Time (I)
- Time is important, since SPICE does almost all
the computations as a function of time. - Two different ways of keeping track of time
- Based on the Earth rotation 1 day is the time
between two consecutive passes of the Sun above
Greenwich UT1. - Based on atomic clocks based on the frequency of
atomic oscilations TAI (International Atomic
Time). TAI is the count of atomic seconds since a
particular epoch.
- Jose Luis Vázquez (ESAC/ESA)
15Introduction to SPICE
SPICE concepts Time (II)
UTC gives a calendar name to every TAI
second. Problem the Earth does not always
rotate at the same speed. A complete rotation
does not always take 86400 atomic seconds UT1
and UTC drift apart. Solution leapseconds.
- Jose Luis Vázquez (ESAC/ESA)
16Introduction to SPICE
SPICE concepts Time (III)
- Leapseconds (i)
- UTC ahead UT1 more than 0.7 seconds a positive
leapsecond is added to UTC - ... DECEMBER 31 235958
- ... DECEMBER 31 235959
- ... DECEMBER 31 235960
- ... JANUARY 1 000000
- UT1 ahead UTC more than 0.7 seconds a negative
leapsecond is extrated to UTC - ... DECEMBER 31 235958
- ... JANUARY 1 000000
- Jose Luis Vázquez (ESAC/ESA)
17Introduction to SPICE
SPICE concepts Time (IV)
- Leapseconds (ii)
- The LSK kernel is a text kernel that keeps track
of the leapseconds that have occurred so far - DELTET/DELTA_AT ( 10, _at_1972-JAN-1
- 11, _at_1972-JUL-1
- 12, _at_1973-JAN-1
- Only one leapseconds kernel exists
(naif0008.tls). It is updated any time a new
leapsecond is announced. - Leapseconds are announced by IERS. They are
typically added at December 31 or June 30.
- Jose Luis Vázquez (ESAC/ESA)
18Introduction to SPICE
SPICE concepts Time (V)
ET (Ephemeris Time). ET is the independent
variable in the differential equations that
describe the motions of the bodies of the Solar
System. As far as the measurements can detect,
ET and TAI advance at the same rate. ET is
measured in seconds past the J2000 epoch (roughly
noon, January 1st, 2000). If you want to
translate from ET to UTC or the other way around,
you need information about the leapseconds.
- Jose Luis Vázquez (ESAC/ESA)
19Introduction to SPICE
SPICE concepts Time (VI)
S/C time (i). Spacecrafts do not have a watch.
They have an on-board counter, which counts ticks
instead of seconds. The duration of a tick
depends on the particular spacecraft. Moreover,
it can change during the mission due to different
facts. It can even jump back and forward, or
suffer a reset. Information about the spacecraft
clock rate is gathered on ground, and stored in
the SCLK kernel.
- Jose Luis Vázquez (ESAC/ESA)
20Introduction to SPICE
SPICE concepts Time (VII)
S/C time (ii).
- Jose Luis Vázquez (ESAC/ESA)
21Introduction to SPICE
SPICE concepts Time (VII)
- Spacecraft clock kernel (SCLK).
- Stores information about
- Nominal rate of the clock (e.g., ticks per
second). - How the nominal rate varies during the mission.
- How many resets or jumps happened in the past.
- The information on the two last points can not be
predicted. It is reconstructed on ground. - The spacecraft clock is the only time information
available in the telemetry. The SPICE toolkit
needs the SCLK kernel to translate the S/C ticks
to ET. - There is one SCLK kernel per mission.
- Jose Luis Vázquez (ESAC/ESA)
22Introduction to SPICE
SPICE concepts Time (VIII)
- Cookbook (i)
- Convert from ET to UTC and the other way around
- Load the leapseconds kernel
- furnsh_c( naif0008.tls )
- Call the appropiate function
- ET -gt UTC
- et2utc_c( ... )
- UTC -gt ET
- utc2et_c( ... )
- Jose Luis Vázquez (ESAC/ESA)
23Introduction to SPICE
SPICE concepts Time (VIII)
- Cookbook (ii)
- Convert from S/C ticks to ET and the other way
around - Load the SCLK kernel
- furnsh_c( VEX_070719_STEP.TSC )
- Call the appropiate function
- ET -gt S/C ticks
- et2utc_c( ... )
- S/C ticks -gt ET
- utc2et_c( ... )
- Jose Luis Vázquez (ESAC/ESA)
24Introduction to SPICE
SPICE concepts Time (IX)
- Cookbook (iii)
- Convert from S/C ticks to UTC and the other way
around there is no direct conversion - S/C ticks -gt UTC
- S/C ticks -gt ET -gt UTC
- UTC to S/C ticks
- UTC -gt ET -gt S/C ticks
- You'll need both the SCLK and the LSK kernels. Do
not forget to load them!
- Jose Luis Vázquez (ESAC/ESA)
25Introduction to SPICE
SPICE concepts Frames (I)
A reference frame in SPICE is a particular
realization of a Cartesian coordinate system. A
frame is usually attached to a body, spacecraft,
barycenter, etc.
- Jose Luis Vázquez (ESAC/ESA)
26Introduction to SPICE
SPICE concepts Frames (II)
- Two kinds of frames
- Inertial Frame the Newton Laws can be applied.
- Non Inertial Frame the Newton Laws don't apply.
Any frame that rotates with respect to the starts
background is non inertial. - The most important frame in SPICE is J2000. It is
an inertial frame.
- Jose Luis Vázquez (ESAC/ESA)
27Introduction to SPICE
SPICE concepts Frames (III)
- Jose Luis Vázquez (ESAC/ESA)
28Introduction to SPICE
SPICE concepts Frames (IV)
- Frames in SPICE can be built in (J2000), or
provided to the SPICE toolkit via an FK or PCK
kernel. They can be - Inertial (J2000).
- Body-fixed frames (IAU_MARS). They need a PCK
kernel to work. - Fixed offset frames. Defined in text FK kernels.
- CK-based frames. Defined in text FK kernels, with
orientation provided in a CK kernel. - Dynamic frames. Orientation based on dynamic
directions computed by SPICE based on kernel data
or mathematical models.
- Jose Luis Vázquez (ESAC/ESA)
29Introduction to SPICE
SPICE concepts Frames (V)
Frames for spacecrafts are usually CK based
frames. Frames for spacecraft substructures are
usually fixed offset frames, defined with respect
to the spacecraft frame.
- Jose Luis Vázquez (ESAC/ESA)
30Introduction to SPICE
SPICE concepts Frames (VI)
- Jose Luis Vázquez (ESAC/ESA)
31Introduction to SPICE
SPICE concepts Frames (VII)
- Jose Luis Vázquez (ESAC/ESA)
32Introduction to SPICE
SPICE concepts Frames (VIII)
Rotations (i) Vectors in SPICE are given in a
specific frame. Very often their components in
other frame have to be calculated. How? Rotations.
- Jose Luis Vázquez (ESAC/ESA)
33Introduction to SPICE
SPICE concepts Frames (IX)
- Rotations (ii)
- Rotating a frame A turns it into a different one
B. - By specifying how to rotate A to get to B, SPICE
can figure out how to transform vectors from the
frame A to the frame B. You do that via a frames
kernel (FK). - Three different ways of specifying rotations in
SPICE - Rotation matrix.
- Euler angles.
- Quaternions.
- Jose Luis Vázquez (ESAC/ESA)
34Introduction to SPICE
SPICE concepts Frames (X)
Rotations (iii)
Euler Angles
- Jose Luis Vázquez (ESAC/ESA)
35Introduction to SPICE
SPICE concepts Frames (XI)
Rotations (iv)
Rotation matrix way to transform vectors in
SPICE.
- Jose Luis Vázquez (ESAC/ESA)
36Introduction to SPICE
SPICE concepts Frames (XII)
Cookbook (i)
- Transform vectors from frame A to Frame B
- Calculate a rotation matrix
-
- pxform_c( J2000, IAU_MARS, et, matrix)
- Get the new coordinates via matrix-vector
multiplication -
- mxv_c( matrix, v, w )
- v -gt vector in J2000 frame
- w -gt vector in IAU MARS frame
- Jose Luis Vázquez (ESAC/ESA)
37Introduction to SPICE
SPICE concepts Frames (XII)
Cookbook (ii)
Get the position of a body spkpos_c( MARS,
et, J2000, LTS, EARTH, position,
light_time ) Get the state of a
body spkezr_c( MARS, et, J2000,
LTS, EARTH, state, light_time
) position -gt 3-dimensions vector with the
position of the body state
-gt 6-dimensions vector with the position and
velocity of the body
- Jose Luis Vázquez (ESAC/ESA)
38Introduction to SPICE
This afternoon
- How to find the needed kernels.
- How to get information about the kernels.
- A few exercices.
- Jose Luis Vázquez (ESAC/ESA)