This program is used to give the programmer and ISIS programs a database
with which they can reference coverage times for ck and spk kernels. Output
will thus be to a pvl file specified in the TO parameter. It should be noted
that the user is encouraged to use system preferences when defining pathnames,
for example $mgs or $base. If this is not possible, for example kernels are
being referenced that are located in a user's development area, absolute
pathnames should be used. Relative pathnames using ".", "..", or user-defined
environment variables are highly discouraged.
Kernels have different qualities. The lowest quality is nadir, which supplies
what may be considered "placeholder" values. Generally, nadir kernels exist
to fill in gaps and mimic the instrument pointing at -90 degrees. Since they
only mimic pointing data, they cannot be used for SPKs, since these kernels
specify positions rather than pointing.
The second lowest quality kernel is predict. Predict kernels are based on
the predicted location of bodies and thus are subject to error.
Reconstructed kernels are of higher quality than predicts. They are
supplemented with information as to the actual position of bodies and
spacecraft.
The highest quality kernels are smithed. These generally come from reconstructed
kernels that have been corrected even further by an individual institution.
The four levels of kernels listed above are the only ones that will be
listed in the database. Kernels are ordered from the lowest quality at the
top of the output file to the highest quality at the bottom of the output
file within individual kernel qualities, kernels are listed from earliest to
latest created file. This is done in anticipation of programs such as spiceinit
which read from the bottom of the file for the best kernel.
Fixed constriction on filename size and fixed bug in appTest
Jacob Danton
2005-12-27
Made changes to SpiceDbGen to comply with changes in KernelDb
Brendan George
2006-10-05
Modified call to retrieve current time to refer to Time class, instead
of Application class
Jeff Anderson
2006-10-24
Removed spaces between Spacecraft Clock Count and Leapsecond Kernel
keywords
Stuart Sides
2006-11-21
Fixed bug where spk and ck kernel files were flagged as "Predict" instead
of "Predicted"
Steven Lambright
2008-08-01
Fixed bug where some ck kernels could not be loaded due to their size.
Also added naif status calls, which will provide easy to read iExceptions to the
user instead of a dump to the terminal window when a problem occurs.
This parameter may be used as a relative pathname to specify the
location of an output PVL database containing data on all of kernels
matched by kerneldbgen. It should be noted that version sequences
may be included in the pathname, in which case a new version will be
created.
The kernel type specifies what sort of information the kernel contains.
Since kerneldbgen is intended for use only in situations where the most
recent kernel does not eclipse the content of previous kernels, there
are only two options: Spacecraft pointing kernels (CK) and Spacecraft
position kernels (SPK).
Type
string
Default
CK
Option List:
Option
Brief
Description
CK
Spacecraft pointing kernels
The kernels to be listed in the output database will include
spacecraft pointing data. In order to properly calculate times, a
spacecraft clock kernel (SCLK) and leapsecond kernel (LSK)
must also be furnished via the dependency kernel group below.
SPK
Spacecraft position kernels
The kernels to be listed in the output database will include
spacecraft position data. Unlike calculations for pointing data,
only the leapsecond kernel (LSK) needs to be provided.
This parameter specifies the path upon which the regular expression in
"PREDICTFILTER" will operate. Since this parameter will be used
explicitly in the "File" keyword of the generated database, it is
recommended that only shortcuts known to the ISIS system and absolute
pathnames are used. If left as "none" no predicted kernels will be
included in the database
This parameter can be used to specify a single kernel, but the intent
is to specify a simple regular expression which, when expanded, will
list all of the predicted kernels in the directory specified by
"PREDICTDIR"
This parameter specifies the path upon which the regular expression in
"RECONFILTER" will operate. Since this parameter will be used
explicitly in the "File" keyword of the generated database, it is
recommended that only shortcuts known to the ISIS system and absolute
pathnames are used. If left as "none" no reconstructed kernels will be
included in the database.
This parameter can be used to specify a single kernel, but the intent
is to specify a simple regular expression which, when expanded, will
list all of the predicted kernels in the directory specified by
"RECONDIR"
This parameter specifies the path upon which the regular expression in
"SMITHEDFILTER" will operate. Since this parameter will be used
explicitly in the "File" keyword of the generated database, it is
recommended that only shortcuts known to the ISIS system and absolute
pathnames are used. If left as "none" no smithed kernels will be
included in the database
This parameter can be used to specify a single kernel, but the intent
is to specify a simple regular expression which, when expanded, will
list all of the predicted kernels in the directory specified by
"SMITHEDDIR".
This parameter specifies the path upon which the regular expression in
"NADIRFILTER" will operate. Since this parameter will be used
explicitly in the "File" keyword of the generated database, it is
recommended that only shortcuts known to the ISIS system and absolute
pathnames are used. If left as "none" no nadir kernels will be
included in the database.
This parameter can be used to specify a single kernel, but the intent
is to specify a simple regular expression which, when expanded, will
list all of the predicted kernels in the directory specified by
"NADIRDIR"
This parameter specifies a spacecraft clock kernel for use in
determining spacecraft pointing data. An actual kernel may be used, or
a pvl file of the form kernels.????.db that specifies SCLK data may
be used, where ???? is the version sequence.
This parameter specifies a leapsecond kernel for use in
determining spacecraft data. An actual kernel may be used, or
a pvl file of the form kernels.????.db that specifies LSK data may
be used, where ???? is the version sequence.
Use the ck option to create a database of spacecraft pointing kernels. In this
example, a database is being created for the pivot kernels pertaining to
the Messenger spacecraft.
Command Line
kerneldbgen
'to=pivot_kernels.????.db
type = ck
recondir = $Messenger/kernels/ck
reconfilter= *_mdis_pivot.bc
lsk = $Base/kernels/lsk/naif0008.tls
sclk = $Messenger/kernels/sclk/messenger_167.tsc'
This command line argument will create the database pivot_kernels.0002.db,
assuming "0001" is the highest version in the target directory. Note the
use of single quotes around the invocation of kerneldbgen. This is
done because this particular run uses several characters such as the
wildcard (*) that would be interpreted by the shell.
GUI Screenshot
kerneldbgen gui
Example GUI
Screenshot of the GUI with parameters set to create a kernel database
of Messenger pivot kernels. Unlike running from the command line, the
program need not go through the shell. Consequently, the input does
not need to include escape sequences or quotes.
Input Image
The directory before kerneldbgen
List of files before kerneldbgen has been run
Parameter Name:
RECONDIR
As seen in this terminal snapshot, there are a number of files that will
match the reconfilter in the directory specified by the recondir. The
highest pivot_kernels version is 0001.
Output Images
The directory after kerneldbgen
List of files after kerneldbgen has been run
Parameter Name:
TO
None of the original files have been altered, but the versioning system
has created a new version of the pivot_kernels database named
pivot_kernels.0002.db. The content of this file is listed below.
The database file
The database created by kerneldbgen
Parameter Name:
TO
As seen here, the database has picked up all of the files that match the
filter specified. Each time coverage interval is listed as a selection,
and the dependency kernels is listed in a "dependency" group. Note that
since the only type of filter specified was for Reconstructed kernels,
that is the only type of kernel to appear in the database.
Example 2
MGS CK kernels
Description
Use the ck option to create a database of pointing kernels. In
this example, kernels are being created for Mars Odyssey, both predict
and reconstructed quality. This example should be of interest because it shows
both the creation of a database with multiple levels of quality, and it also
shows the use of several different filters used in conjunction to pick up a
variety of reconstructed kernel names
This command line argument will create the database kernels.0001.db,
assuming that file does not already exist in the target directory. As in the
previous example, the command line argument is surrounded by single quotes
in order to escape characters that would otherwise be considered special by
the shell.
GUI Screenshot
kerneldbgen gui
Example GUI
Screenshot of the GUI with parameters set to create a kernel database
mixed with nadir kernels and reconstructed kernels.
Input Image
The directory before kerneldbgen
List of files before kerneldbgen has been run
Parameter Name:
RECONDIR/NADIRDIR
As seen in this terminal snapshot, there are a number of files that will
match the reconfilter in the directory specified by the recondir. The
highest pivot_kernels version is 0001.
Here one can examine the results of the datafile. Note the ascending
order of kernel quality.
Output Image
The directory after kerneldbgen
List of files after kerneldbgen has been run
Parameter Name:
TO
None of the original files have been altered, but the versioning system
has created the first version of the kernel database, kernels.0001.db.
The content of this file is listed as well.