The Navigation and Ancillary Information Facility (NAIF), acting
under the directions of NASA's Planetary Science Division, has
built an information system named "SPICE" to assist NASA scientists
in planning and interpreting scientific observations from space-borne
instruments, and to assist NASA engineers involved in modeling, planning and
executing activities needed to conduct planetary exploration missions.
Examples of what can be computed using SPICE are shown in this and this graphics.
The use of SPICE extends from mission concept development through the
post-mission data analysis phase,
including help with correlation of individual instrument data sets with those
from other instruments on the same or on other spacecraft.
The primary SPICE data sets are often called "kernels"
or "kernel files." SPICE kernels are composed of navigation
and other ancillary information providing precision observation geometry
for use by the planetary science and engineering communities.
SPICE kernels are produced by the most knowledgeable
sources of such information, usually located at a mission operations
center. SPICE kernels should include or be accompanied by metadata—consistent
with flight project data system and SPICE standards—that provide pedigree
and other descriptive information needed by prospective users.
The SPICE system's logical components and the actual data files—the kernels—used to realize those components are summarized below.
ephemeris, given as a function of time. (SPK)
satellite, comet, or asteroid ephemerides, or more generally, location
of any target body, given as a function of time. (also SPK)
The P component also logically includes certain physical, dynamical
and cartographic constants for target bodies, such as size and shape
specifications, and orientation of the spin axis and prime meridian. (PCK)
Instrument information containing descriptive
data peculiar to the geometric aspects of a particular scientific instrument, such as field-of-view
size, shape and orientation parameters. (IK)
C- Orientation information, containing a transformation, traditionally called the "C-matrix,"
which provides time-tagged pointing (orientation) angles for a spacecraft bus
or a spacecraft structure upon which science instruments are mounted. The C component may also include angular rate data for that structure. (CK)
information, summarizing mission activities - both planned and unanticipated.
Events data are contained in the SPICE E-kernel file set, which consists
of three components: Science Plans, Sequences, and Notes. (EK)
(Note: the Events kernel is rarely used.)
data products are also important components of the SPICE system,
even if not contained in the "SPICE" acronym.
kernel (FK) contains specifications for the assortment
of reference frames that are typically used by flight projects.
This file also includes mounting alignment information for instruments,
antennas and perhaps other structures of interest.
Spacecraft clock (SCLK) and leap seconds
(LSK) kernels are also part of SPICE; these are used in converting
time tags between various time measurement systems.
A digital shape model kernel (DSK), with separate designs for both small,
irregularly shaped bodies such as asteroids and comet nuclei, and for large, more uniformly shaped bodies such as the Moon, Earth and Mars, offers the possibility of using higher fidelity shape models within SPICE for those (few) bodies for which scientists have calculated detailed shape. When they exist, a DSK can often be used in place of the size and shape portion of a PCK.
"SPICE" acronym should have been "SPICES,"
with the final "S" standing for "Software."
The SPICE system includes the SPICE Toolkit, a large collection of
allied software. The principal component of this Toolkit is a library
of application program interfaces (APIs, sometimes called subroutines or modules) needed to read the kernel files and to calculate
observation geometry parameters of interest to scientists —items such as range, LAT/LON,
and lighting angles. Some SPICE APIs—those comprising the geometric event finder subsystem—can
be used to find times when certain geometric conditions occur (e.g. occultation) or when
certain geometric parameters are in a stated range or have reached a maximum or minimum.
Users integrate a few
SPICE Toolkit APIs into their own application
programs to compute needed observation geometry parameters or times of geometric events.
The SPICE Toolkit was originally
implemented in ANSI FORTRAN 77, but is now available in C, IDL, MATLAB and Java Native Interface as well. Third parties offer Toolkits in Python, Ruby, Swift and Julia. (Maybe yet others, too?)
NAIF has designed
the SPICE architecture with portability
and multimission application as principal goals. Because
extensive user-focused documentation, tutorials and examples are
provided to customers, with a reasonable learning effort the system
can be confidently used by the full spectrum of the space science
community on mission after mission.
A flight project's
mission operations center concentrates on producing, cataloging
and distributing complete and accurate kernels on a timely basis.
Kernel updates should be made promptly when new or improved data
become available. Flight project team members obtain those
kernels of interest, using
them in application programs hosted at their home sites to compute
needed observation geometry information. Users can even
update some kernels and produce their own versions of other kernels
to support their own analyses or to provide their colleagues with
any improvements in ancillary information resulting from their work.
Each flight project delivers well documented copies of all SPICE
kernels to the appropriate permanent archive facility,
assuring ready availability of these data for future users.
Ideally this archive is open to the international community of scientists
and engineers. User-produced kernels may also be similarly archived, subject to passing a peer review.
For NASA planetary missions, the NAIF Node of NASA's Planetary
Data System is the archive site—this archive is open to all.
While science data analysis was the original focus, SPICE is now frequently used for mission engineering and for planning science
observations. In these cases the observer could be an in-the-future "predict"
spacecraft ephemeris produced by a mission design organization,
a terrestrial telescope, or a user-provided instrument location.
"Predict" versions of other SPICE kernels
are also often made to help simulate a full data processing system. With
this flexibility scientists may use SPICE throughout the experiment
life cycle—from mission concept development, to mission engineering, to detailed observation design,
to instrument data analysis and finally to correlation of results
with those from other missions.
A large set
of core SPICE components has been in place for many years. Extension and adaptation of
this core system to encompass broader functionality and easier use is an ongoing endeavor. This work
includes provision of some broadly useful application programs and
development of additional kernel types.
The SPICE system has been built for and
is used on numerous U.S. planetary missions, such as Cassini, Mars Exploration Rover,
Orbiter and DAWN.
Many international missions have, of their own volition, also decided
to use SPICE. Some missions from other (not planetary) disciplines also make
use of SPICE.
Limited data from some older missions such as Viking and Voyager
have been or are being "restored" into SPICE format. SPICE is also used in a variety of engineering tasks, such as Deep Space Network scheduling and communications.