Cubes which have supported camera models in the ISIS system require spacecraft position, pointing, body shape and orientation, sun position, and other
information in order to compute ground positions (latitude/longitude) and photometric viewing angles. This information is stored in SPICE kernels.
This program attempts to search the ISIS data areas in order to discern the SPICE kernels required for the camera cube.
The program examines the "SpacecraftName", "InstrumentId", "TargetName", "StartTime", and "StopTime" keywords in the cube label to determine the kernels to use. It
attempts to find kernels files for the following keywords and writes them to the Kernels group:
Leap Second (LS)
Spacecraft Clock (SCLK)
Target Position (TSPK)
Target AttitudeShape (PCK)
Instrument (IK)
Instrument Addendum (IAK)
Frame (FK)
Spacecraft Position (SPK)
Instrument Pointing (CK)
Shape Model (DEM)
If you are unfamilar with SPICE terminology it is recommended you read the NAIF required reading at http://naif.jpl.nasa.gov/naif/doc_C.html
The program modifies the kernels group and writes the name of the SPICE files that need to be loaded by the camera models. It has the option of pre-reading the
data from the SPICE kernels and loading it as a binary table attached to the cube. This can faciliate faster load times and allows the instrument pointing to be easily updated.
As kernels are loaded they override the data in previously loaded kernels.
The order in which kernels are loaded is:
Target Position
Instrument Position
Instrument Pointing
Frame
Target Attitude Shape
Instrument
Instrument Addendum
Leap Second
Spacecraft Clock
Extra
spiceinit will always try to use the best quality kernels possible. This
only applies to kernels that are not specified manually. The
kernel qualities are, in order:
Smithed
This is the best quality of kernel and will used first because these
kernels are created after the fact based on the image data. There are
not usually standard products with this quality.
Reconstructed
These kernels are typically produced by a mission a few weeks after the
fact.
Predicted
These kernels are produced by a mission before the fact and are
best-estimates of where the spacecraft will be.
Nadir
This is the worst quality and will be used as a last resort. This
assumes the spacecraft is always nadir-looking.
Please note: Kernel Files specified that reside in the current working directory will not have their paths expanded. This is to allow variables like $msg/ to work correctly.
Troubleshooting: If spiceinit is failing with the error
"No Camera Kernel found for the image ..." then try enabling the
"CKPREDICTED" or "CKNADIR" option. A similar error exists for SPK kernels,
and you can enable "SPKPREDICED" to get past that error. "PREDICTED" and
"NADIR" options typically have less accuracy than reconstructed/smithed
kernels which is why they are disabled by default.
This application replaces the following
applications existing in previous versions of Isis, which have been deprecated
from the current version of Isis:
levinit
naiflab
spicelab
History
Debbie A. Cook
2000-06-08
Original Version
Stuart Sides
2003-11-05
Complete rewrite under Isis 3.0 conversion.
Stuart Sides
2004-01-14
Modified to use an existing "Kernels" group instead of creating a
new one. This was because the mission specific import program
(e.g., moc2isis) was modified to create the "kernels" group and
put the "NaifFrameCode" into it.
Stuart Sides
2004-01-23
Added new parameter "TEST". This parameter controls the
testing of the final kernel list. If false the kernels will not be
tested for completness by createing a camera model.
Stuart Sides
2004-02-23
Added elevation model DEM capabilities.
Stuart Sides
2004-02-24
Completed capabilities to search for kernels of different qualities
such as PREDICTED, NADIR, RECONSTRUCTED, and C-SMITHED.
Stuart Sides
2005-11-08
Added fix for framing cameras, so they would not need a stop time in
the instrument group of the labels.
Elizabeth Miller
2005-11-14
Added appTest
Jacob Danton
2005-12-22
Added support for multiple files within the kernels
Jacob Danton
2005-12-27
Added a progress bar
Jacob Danton
2006-01-03
Fixed the xml description
Jacob Danton
2006-01-25
Changed the mission translation file name
Jacob Danton
2006-01-25
Changed the appTest to comply with changes in the String class.
Jeff Anderson
2006-03-27
Modified to write InstrumentPointing, InstrumentPosition, SunPosition, and BodyRotation information to
SPICE tables in the cube.
Brendan George
2006-09-19
Added call to modify the history of the cube
Brendan George
2006-10-19
Modifed to remove label entries for spice tables, if ATTACH is unchecked,
and the input cube already has them.
Steven Lambright
2007-07-10
Combined Frame and InstrumentPointing. Changed to support new version of KernelDb. Cleaned up the code.
Steven Lambright and Steve Koechle
2007-07-10
Fixed problem where the allowed kernels were being set improperly.
Steven Lambright
2007-08-10
Fixed so that when no spacecraft pointing is found, but frame kernels are, and Nadir is allowed it still adds the Nadir keyword.
Steven Koechle
2007-10-05
Added a check to see if the cube had an existing polygon, if so delete it.
Steven Koechle
2007-10-25
Fixed Smithed enum, changed from C-Smithed.
Steven Koechle
2007-12-14
Added error handling logic. If the user chose to use Nadir CK and
another type, and the system found a file where the image falls in a gap
(no pointing is available) Nadir would never be calculated. Fixed.
Steven Lambright
2008-02-13
Added time padding options
Steven Lambright
2008-02-21
Added additional explanation of time padding options
Steven Lambright
2008-02-22
Split the CK parameter into FK and CK, they are still combined in the label as
InstrumentPointing.
Steven Lambright
2008-04-14
All found CK kernels will now be tested before giving an error
Christopher Austin
2008-05-02
Fixed the propagation of the EXTRA Kernel.
Steven Lambright
2008-05-12
Removed references to CubeInfo
Steven Lambright
2008-05-19
Fixed documentation
Christopher Austin
2008-06-03
Furthered documentation.
Steven Koechle
2008-06-17
Added CK check and throw more appropriate error
Christopher Austin
2008-09-12
Added the removal of StartPadding and EndPadding keywords from previous
spiceinit runs, and added some double inited tests. NOTE: Whenever
adding new keywords, run spiceinit twice on the same cube in your test,
dumping out both labels to verify that the keyword is not being
duplicated.
Tracie Sucharski
2009-03-12
If spice is put into a Table, append the kernel name to the Kernel group
keyword to keep track of original spice kernels.
Steven Koechle
2009-05-12
Added CameraVersion into the Kernel labels
Steven Lambright
2009-07-09
Error messages from the camera are now reported
Steven Lambright
2009-07-21
Fixed handling of user-entered CK kernels
Janet Barrett and Steven Lambright
2011-05-25
Added support for storing text spice kernel values in the cube labels
Steven Lambright and Jai Rideout
2011-08-30
Added support for using a spiceinit web service
Steven Lambright
2011-10-05
As a result of our test and review team, I have updated the documentation
to match the recommendations of Laz Kestay and Ken Edmundson. Fixes
#423.
Jai Rideout
2011-11-18
Fixed bug in writing tables to the cube that were retrieved from the web
service.
Debbie A. Cook
2012-07-06
Updated Spice members to be more compliant with Isis coding standards.
References #972.
Jeannie Backer
2013-02-26
Added ability to load multiple ck database files from the system using a
conf file. Changed methods to lower camel case to comply with Isis3
standards. Added web example. References #924.
This option enables using the ISIS Spice Website to get the most up to
date kernels available. ATTACH must be enabled for this, and manually
specifying files with this option on is not allowed. This service may
be temporarily unavailable when new Isis releases are being
distributed. Any mismatch in Isis version between the latest version
and the version you are running will cause this option to fail; only
the most recent version of Isis is supported. An active internet
connection is required to use this service and downloading SPICE data
will be slower than if you had run this with local files (downloaded
all of $ISIS3DATA). The size of the download will depend heavily on
the mission and instrument of your input file.
This option attaches binary tables to the cube which contain the
instrument position (SPK) and orientation (CK), as well as the sun
position and body/target orientation. This is the prefered
initialization option as it allows the pointing to be updated by
further programs.
Allow the use of pointing kernels marked as c-smithed.
If this parameters is turned on, c-smithed kernels may be used to
cover the time requirements of the image. At least one of the
parameters "CKPREDICTED", "CKNADIR", "CKRECON", "CKSMITHED"
must be entered.
Allow the use of pointing kernels marked as reconstructed.
If this parameters is turned on, reconstructed kernels may be used to
cover the time requirements of the image. At least one of the
parameters "CKPREDICTED", "CKNADIR", "CKRECON", "CKSMITHED"
must be entered.
Allow the use of pointing kernels marked as predicted.
If this parameters is turned on, predicted kernels may be used to
cover the time requirements of the image. At least one of the
parameters "CKPREDICTED", "CKNADIR", "CKRECON", "CKSMITHED"
must be entered.
This option will create nadir pointing data if the other ck kernel
types do not exist or do not cover the time range of the input cube.
At least one of the parameters "CKPREDICTED", "CKNADIR", "CKRECON",
"CKSMITHED" must be entered.
Instrument Position Kernel (SPK) quality:
SPKSMITHED
Description
Allow the use of position kernels marked as smithed.
If this parameters is turned on, smithed kernels may be used to(
cover the time requirements of the image. At least one of the
parameters "SPKPREDICTED", "SPKRECON", "SPKSMITHED"
must be entered.
Instrument Position Kernel (SPK) quality:
SPKRECON
Description
Allow the use of position kernels marked as reconstructed.
If this parameters is turned on, reconstructed kernels may be used to
cover the time requirements of the image. At least one of the
parameters "SPKPREDICTED", "SPKRECON", "SPKSMITHED"
must be entered.
Instrument Position Kernel (SPK) quality:
SPKPREDICTED
Description
Allow the use of position kernels marked as predicted.
If this parameters is turned on, predicted kernels may be used to
cover the time requirements of the image. At least one of the
parameters "SPKPREDICTED", "SPKRECON", "SPKSMITHED"
must be entered.
Naif kernel file to be used for the leap second in place of the
automated leap second kernel. The LS kernel will be referenced in the
keyword LeapSecond by the resulting Kernel group. If none is
specified, spiceinit will use the latest kernel config file or kernel
database file to find the appropriate kernel(s) for the given input
file.
Naif kernel file to be used for the target attitude and shape in place
of the automated attitude and shape kernel. The PCK kernel will be
referenced in the keyword TargetAttitudeShape by the resulting Kernel
group. If none is specified, spiceinit will use the latest kernel
config file or kernel database file to find the appropriate kernel(s)
for the given input file.
Naif kernel file to be used for the target position in place of the
automated position kernel. The TSPK kernel will be referenced in the
keyword TargetPosition by the resulting Kernel group. If none is
specified, spiceinit will use the latest kernel config file or kernel
database file to find the appropriate kernel(s) for the given input
file.
Naif kernel file to be used for the instrument in place of the
automated instrument kernel. The IK kernel will be referenced in the
keyword Instrument by the resulting Kernel group. If none is
specified, spiceinit will use the latest kernel config file or kernel
database file to find the appropriate kernel(s) for the given input
file.
Naif kernel file to be used for the spacecraft clock in place of the
automated spacecraft clock kernel. The SCLK kernel will be referenced
in the keyword Instrument by the resulting Kernel group. If none is
specified, spiceinit will use the latest kernel config file or kernel
database file to find the appropriate kernel(s) for the given input
file.
Naif kernel file to be used for the spacecraft pointing in place of
the automated spacecraft pointing kernel. The CK kernel will be
referenced in the keyword InstrumentPointing by the resulting Kernel
group. If none is specified, spiceinit will use the latest kernel
config file or kernel database file to find the appropriate kernel(s)
for the given input file.
Naif kernel file to be used for the instrument frame in place of the
automated frames kernel. The FK kernel will be referenced in the
keyword InstrumentPointing by the resulting Kernel group.
Note: If you enter a filename for CK some instruments may require a
frame kernel as well. If none is specified, spiceinit will use the
latest kernel config file or kernel database file to find the
appropriate kernel(s) for the given input file.
Naif kernel file to be used for the spacecraft position in place of
the automated spacecraft position kernel. The SPK kernel will be
referenced in the keyword InstrumentPosition by the resulting Kernel
group. If none is specified, spiceinit will use the latest kernel
config file or kernel database file to find the appropriate kernel(s)
for the given input file.
Naif formatted kernel file to be used for the ISIS specific instrument
addendum kernel, in place of the automated. The IAK kernel will be
referenced in the keyword InstrumentAddendum by the resulting Kernel
group. If none is specified, spiceinit will use the latest kernel
config file or kernel database file to find the appropriate kernel(s)
for the given input file.
ISIS camera models can use a shape model (a projected ISIS cube that defines the radii for a global or regional area). You can choose
to select a shape model or to use the definition of the ellipsoid found in the planetary constants (PCK) file.
Type
string
Default
SYSTEM
Option List:
Option
Brief
Description
ELLIPSOID
Use triiaxial ellipsoid from PCK
The camera will use the radii defined in the planetary constants file (PCK) when determining intersections of the body surface
Exclusions
MODEL
SYSTEM
Search system for a default shape model
This option will search the default system data area ($ISIS3DATA/base/dems) for a shape model that matches the target of the input cube. If none are
found then no shape model will be used and the default ellipsoid parameters found in the planetary constants (PCK) file define the shape.
Exclusions
MODEL
USER
User specified shape model file
The camera will use shape model defined by the parameter MODEL
A map projected ISIS cube which contains the radii of the target. The file can cover more than the input cube (FROM) but must minimally cover the data in the input cube.
When the kernels for an image are loaded, by default only what the image requires is loaded.
By setting this option, the loaded kernels start at the specified amount of time before the
image start time. Using this option for framing cameras could significantly decrease the
accuracy of the Naif information because this will cause the information to be interpolated
between the STARTPAD and ENDPAD.
When the kernels for an image are loaded, by default only what the image requires is loaded.
By setting this option, the loaded kernels end at the specified amount of time after the
image end time. Using this option for framing cameras could significantly decrease the
accuracy of the Naif information because this will cause the information to be interpolated
between the STARTPAD and ENDPAD.
This example shows how to use spiceinit using the default parameters.
That is, the SPICE data will be attached to the cube labels (attach=yes),
Only reconstructed kernel types will be allowed for ck and spk kernels,
the default system kernels will be found in the kernel database files,
a default shape model will be looked for in the system, and
no time parameters will be set.
Command Line
spiceinit
from=inputCube.cub
An example of how to run this program from the command line.
GUI Screenshot
Example of GUI command
Example GUI
An example of how to run this program using the GUI. Note that
Kernel data that has been found can be seen in the log window.