-
Notifications
You must be signed in to change notification settings - Fork 172
🚧 How ISIS selects kernels to load 🚧
ISIS3 selects the SPICE kernels to be used with an ISIS cube as part of running the spiceinit application.
The user can enter kernels they would like to load via spiceinit
(either by hand, or with a parameter file) or use the spice server, but that is not covered by this write up. This documents what happens when spiceinit
selects kernels from the default location ($ISIS3DATA/mission/kernels
or a different location specified by the IsisPreferences
file) using the ISIS3 kernel databases.
In spiceinit, the KernelDb
class is used to select which kernels to load. This class can be called directly to query the ISIS3 kernel databases if desired.
First, the allowed kernel “types” are specified for both cks and spks:
- nadir
- predicted
- reconstructed
- smithed
kernels of a non-allowed type will not be selected, and the highest quality kernel that meets the other selection criteria will be returned.
Here, these are in order of lowest to highest quality kernel category. For more information about these kernel quality categories, and the spiceinit application, please see: https://isis.astrogeology.usgs.gov/Application/presentation/Tabbed/spiceinit/spiceinit.html
-
The location of the correct kernel database file to use is determined using the mission name, the cube’s label (to get the
InstrumentID
,) and the user'sIsisPreferences
file. There is one kernel.db file for each "type" of kernel needed by the image: ck, spk, fk, ik, iak, ... but these are simple files for all but the cks and spks (more detail to be added here.) -
The most recent kernel database file in the appropriate directory is loaded (unless there is a kernel configuration file -- see below). Kernel databases are updated when new kernels become available or there is a change to which kernels need to be loaded communicated from the team.
-
The
StartTime
andStopTime
keywords from theInstrument
group in the input cube label are used to search through the available kernels as specified by PVL groups in the kernel database file and determine the best match.StopTime
is an optional keyword in ISIS3 cubes, so if it is not available, it is set equal to theStartTime
1-alternate route: A kernel configuration file is a file of the form kernels.????.conf
that contains information about which kernel database files to load in which cases.
From an infrastructure perspective (probably not relevant here, but there are some obvious questions that the above brings up and these may help to answer some of them):
In the ISIS3 data area, shell scripts within each ck and spk directory that receive new kernels from an automated download script are run to re-generate kernel database files when new kernels are downloaded. These scripts are usually named makedb
and call the ISIS3 application makedb. After update, in most cases, these new kernels and kernel database files are immediately pushed to the rsync server.
- Building
- Writing Tests
- Test Data
- Start Contributing
- Public Release Process
- Continuous Integration
- Updating Application Documentation
- Deprecating Functionality
- LTS Release Process and Support
- RFC1 - Documentation Delivery
- RFC2 - ISIS3 Release Policy
- RFC3 - SPICE Modularization
- RFC3 - Impact on Application Users
- RFC4 - Migration of ISIS Data to GitHub - Updated Information 2020-03-16
- RFC5 - Remove old LRO LOLA/GRAIL SPK files
- RFC6 - BLOB Redesign
- Introduction to ISIS
- Locating and Ingesting Image Data
- ISIS Cube Format
- Understanding Bit Types
- Core Base and Multiplier
- Special Pixels
- FAQ