PDS_VERSION_ID          = PDS3
RECORD_TYPE             = STREAM

OBJECT                  = TEXT
   INTERCHANGE_FORMAT   = ASCII
   PUBLICATION_DATE     = 2006-03-01
   NOTE                 = "E-Kernel Information"
END_OBJECT              = TEXT
                                                                     
END 

General information about SPICE E-kernels
=========================================

   The purpose of the Deep Impact Events (E) -kernel (EK) is to store
   instrument and spacecraft commands and status information.

   The means of accessing the EK data are provided via a collection of
   subroutines that are part of the SPICELIB library, the major
   component of the NAIF Toolkit, or via the SPICE system utility
   programs, such as INSPEKT. The subroutines can be integrated into a
   user's application program while the INSPEKT program can be used to
   view E-kernel information interactively. Information about obtaining
   the SPICE Toolkit is located in the "software" subdirectory of the
   main directory of this dataset.

   To use E-kernels with the INSPEKT program, a SPICE Leapseconds (LSK)
   kernel is required. An INSPEKT script containing useful queries is
   provided in the Appendix 1 at the end of this file.

   For general information regarding E-Kernels, refer to the EK
   Required Reading (ek.req) and inspekt.ug documents provided with the
   Toolkit or available from the NAIF Node of the PDS.


Deep Impact E-kernels Contained on This Volume
==============================================

   This directory contains the following SPICE E-Kernel files for the
   Deep Impact mission (all files are in IEEE big endian binary format
   and suitable for use on UNIX workstations and MACs):

      dif_cmdict_128_20050620.bdb  DIF command dictionary EK file based
                                   on the final version of the command
                                   dictionary used during mission
                                   operations

      dif_seq_050112_050729.bes    DIF sequence EK files covering the
                                   whole mission, based on the
                                   Predicted Events File (PEF)
                                   containing complete integrated
                                   sequence updated with realtime
                                   commands.
         

Kernel file details
===================

   The most detailed description of the data in a binary EK file is
   provided in metadata included inside the comment area of the file.
   This information can be viewed using the utility programs COMMNT and
   SPACIT included in the NAIF Toolkit. The Toolkit is available from
   the NAIF website.


Contact information
===================

   Regarding Deep Impact project specific information provided in this
   data set and for general information about the SPICE system:
   
      Boris Semenov 
      (818)-354-8136 
      Boris.Semenov@jpl.nasa.gov
      
   or 
   
      Chuck Acton
      (818)-354-3869 
      Chuck.Acton@jpl.nasa.gov
      
   address:
   
      Navigation and Ancillary Information Facility (NAIF)
      Jet Propulsion Laboratory
      MS 301-125L
      4800 Oak Grove Drive
      Pasadena CA 91109 USA 


Appendix 1: Sample INSPEKT Startup Script for Querying DIF EK Files
===================================================================

   In order to be used with Inspekt, the contents of this Appendix
   should be "cut-n-pasted" into a separate file. This file can then be
   loaded and macros defined in it be used as described in the comments
   embedded within the file.

;
; Sample Deep Impact Flyby (DIF) startup file for SPICE's Inspekt 
; utility program. by Boris Semenov, September 15, 2005.
;
; This startup file can be loaded into Inspekt in either using 
; "-start" command line option when Inspekt is invoked:
;
;    % inspekt -start [name_of_this_file]
;
; or by using "start" command from the Inspekt's prompt:
;
;    % inspekt;
;    ...
;    Inspekt> start [name_of_this_file];
;    ...
;
; In either case, during the process of loading this startup file 
; Inspekt will prompt for the names of LSK file, command 
; dictionary EK file and sequence EK file:
; 
;    % inspekt;
;    ...
;    Inspekt> start [name_of_this_file];
;    Enter value for LEAPSECONDS_FILE > [lsk_file_name];
;    Enter value for COMMAND_DICTIONARY_EK_FILE > [dict_file_name];
;    Enter value for SEQUENCE_EK_FILE > [sequence_file_name];
;    Inspekt> 
;    ...
;
; Once this startup has been loaded, any of the following macros 
; can be used to access EK data (either short or long macro name 
; can be typed on the Inspekt prompt to invoke a macro; when
; typing a macro name the letter case is insignificant):
;
;    Long Name                      Short Name             
;    ============================   ===================
;    SHOW_COMMANDS_OVER_TIME        SCOT
;    SHOW_COMMANDS_FOR_SUBSYSTEM    SCFS
;    SHOW_COMMANDS                  SC
;    SHOW_IMAGES_OVER_TIME          SIOT
;    SHOW_COMMANDS_WITH_DESC        SCWD
;    SHOW_PARAMETER_VALUES          SPV
;    SHOW_PARAMETER_LONG_VALUES     SPLV
;    SHOW_PARAMETERS_WITH_DESC      SPWD
;    COMMAND_DESCRIPTION            CD
;    PARAMETERS_DESCRIPTION         PD
;    SHOW_STATUS                    SS
;    SHOW_STATUS_FOR_PARAMETER      SSFP
;    SHOW_STATUS_AT_TIME            SSAT
;
; An example of invoking each of these macros is given next to the 
; macro definition provided below. Note that all values entered in
; response to the prompts displayed by macros should be quoted with
; single quotes, as shown is this example of invoking SCFS:
;
;    Inspekt> scot;
;    Enter value for START_TIME > '2005-07-04';
;    Enter value for END_TIME > '2005-07-04 02:00';
;    ...
;
; Wild card, '*', may be used in the value entered in 
; response to the prompts, except when input of a time is requested,
; as shown is this example of invoking SC:
;
;    Inspekt> sc;
;    Enter value for COMMAND_NAME > '*_EXP';
;    ...
;
; For general information about using Inspekt and EK subsystem of 
; SPICE refer to the Inspekt built-in help and EK Required Reading
; document.
;
;##################################################################
;
; Setup parameters and macro definitions are provided below.
;
;##################################################################
;
; Prompt for and load LSK and EK files.
;
load leapseconds LEAPSECONDS_FILE?;
load ek COMMAND_DICTIONARY_EK_FILE?;
load ek SEQUENCE_EK_FILE?;
;
;##################################################################
;
; Set various setup parameters.
;
; Set default output format, page width, and default output time
; format.
;
set format tabular;
set page width 132;
set default time format YYYY MON DD HR:MN:SC.###;
;
;
; Set aliases for command, status and dictionary tables names. 
;
define cmd_table dif_cmd;
define status_table dif_status;
define dictionary_table dif_commands;
;
; Set command table column widths.
;
set column dif_cmd.entry_id width 14;
set column dif_cmd.command width 20;
set column dif_cmd.parameter_name width 14;
set column dif_cmd.parameter_index width 8;
set column dif_cmd.value_flag width 8;
set column dif_cmd.chr_value width 16;
set column dif_cmd.dp_value width 8;
set column dif_cmd.int_value width 8;
set column dif_cmd.long_value width 22;
;
; Set status table column widths.
;
set column dif_status.entry_id width 14;
set column dif_status.subsystem width 20;
set column dif_status.parameter_name width 14;
set column dif_status.parameter_index width 8;
set column dif_status.value_flag width 8;
set column dif_status.chr_value width 16;
set column dif_status.dp_value width 8;
set column dif_status.int_value width 8;
set column dif_status.long_value width 22;
;
; Set for command dictionary table column widths.
;
set column dif_commands.command width 20;
set column dif_commands.parameter_name width 14;
set column dif_commands.parameter_index width 8;
set column dif_commands.parameter_type width 16;
set column dif_commands.parameter_range width 20;
set column dif_commands.description width 40;
;
;##################################################################
;
;  SHOW_COMMANDS_OVER_TIME       find all commands in the command 
;  SCOT                          table within the specified time 
;                                interval and display them ordered 
;                                by time.
;
;  Example:
;
;     Inspekt> scot;
;     Enter value for START_TIME > '2005-07-03 18:00';
;     Enter value for END_TIME > '2005-07-03 19:00';
;     ...
;
define show_commands_over_time select entry_id, time, command 
from cmd_table where parameter_index eq 0 and 
time between START_TIME? and END_TIME? order by time;
define scot show_commands_over_time;
;
;##################################################################
;
;  SHOW_COMMANDS_FOR_SUBSYSTEM   find all command in the command 
;  SCFS                          table for a specified subsystem 
;                                and display these commands ordered 
;                                by time. 
;
;  Example:
;
;     Inspekt> scfs;
;     Enter value for SUBSYSTEM > 'INSTRUMENT*';
;     ...
;
define show_commands_for_subsystem select a.entry_id, a.time, 
a.command from cmd_table a, dictionary_table b where 
a.parameter_index eq 0 and b.parameter_index eq 0 and a.command 
eq b.command and b.subsystem like SUBSYSTEM? order by a.time;
define scfs show_commands_for_subsystem;
;
;##################################################################
;
;  SHOW_COMMANDS                 find all appearances of a 
;  SC                            particular command in the command
;                                table and display them ordered 
;                                by time.
;
;  Example:
;
;     Inspekt> sc;
;     Enter value for COMMAND_NAME > 'I*';
;     ...
;
define show_commands select entry_id, time, command from 
cmd_table where parameter_index eq 0 and command like 
COMMAND_NAME? order by time;
define sc show_commands;
;
;##################################################################
;
;  SHOW_IMAGES_OVER_TIME         finds all DIF "take image" 
;  SIOT                          commands within the specified time
;                                range.
;
;  Example:
;
;     Inspekt> siot;
;     Enter value for START_TIME > '2005-07-03 18:00';
;     Enter value for END_TIME > '2005-07-03 20:00';
;     ...
;
define show_images_over_time select entry_id, time, command, 
parameter_name, chr_value from cmd_table where parameter_name 
eq 'EXP_ID' and command like '*_EXP' and time between 
START_TIME? and END_TIME? order by time;
define siot show_images_over_time;
;
;##################################################################
;
;  SHOW_COMMANDS_WITH_DESC       find all appearances of a 
;  SCWD                          particular command in the 
;                                command table and display them 
;                                ordered by time with the command 
;                                description from command
;                                dictionary table provided on 
;                                the right.
;
;  Example:
;
;     Inspekt> scwd;
;     Enter value for COMMAND_NAME > '*_EXP';
;     ...
;
define show_commands_with_desc select a.entry_id, a.time, 
a.command, b.description from cmd_table a, dictionary_table 
b where a.parameter_index eq 0 and b.parameter_index eq 0 
and a.command eq b.command and a.command like COMMAND_NAME? 
order by time;
define scwd show_commands_with_desc;
;
;##################################################################
;
;  SHOW_PARAMETER_VALUES         display index-ordered values 
;  SPV                           of all parameters for a 
;                                particular command identified
;                                by its ENTRY_ID.
;
;  Example:
;
;     Inspekt> spv;
;     Enter value for ENTRY_ID > 'WEEK25:143366';
;     ...
;
define show_parameter_values select time, command, 
parameter_name, chr_value from cmd_table where entry_id 
like ENTRY_ID? order by parameter_index;
define spv show_parameter_values;
;
;##################################################################
;
;  SHOW_PARAMETER_LONG_VALUES    displays index ordered short 
;  SPLV                          and long values of all parameters
;                                for particular command identified
;                                by its ENTRY_ID.
;
;  Example:
;
;     Inspekt> splv;
;     Enter value for ENTRY_ID > 'WEEK25:143366';
;     ...
;
define show_parameter_long_values select time, command, 
parameter_name, chr_value, long_value from cmd_table where 
entry_id like ENTRY_ID? order by parameter_index;
define splv show_parameter_long_values;
;
;##################################################################
;
;  SHOW_PARAMETERS_WITH_DESC     display index ordered values 
;  SPWD                          of all parameters for a 
;                                particular command identified by
;                                its ENTRY_ID with parameter 
;                                descriptions from the dictionary 
;                                table displayed on the right.
;
;  Example:
;
;     Inspekt> spwd;
;     Enter value for ENTRY_ID > 'WEEK25:143366';
;     ...
;
define show_parameters_with_desc select a.entry_id, a.command, 
a.parameter_name, a.chr_value, b.description from cmd_table a, 
dictionary_table b where a.entry_id like ENTRY_ID? and a.command 
eq b.command and a.parameter_name eq b.parameter_name order by 
a.parameter_index;
define spwd show_parameters_with_desc;
;
;##################################################################
;
;  COMMAND_DESCRIPTION           display command description.
;  CD
;
;  Example:
;
;     Inspekt> cd;
;     Enter value for COMMAND > '*_EXP';
;     ...
;
define command_description select command, description from 
dictionary_table where command like COMMAND? and 
parameter_index eq 0;
define cd command_description;
;
;##################################################################
;
;  PARAMETERS_DESCRIPTION        display descriptions of 
;  PD                            parameters for a particular 
;                                command.
;
;  Example:
;
;     Inspekt> pd;
;     Enter value for COMMAND > 'IMFVIS_EXP';
;     ...
;
define parameters_description select command, parameter_name, 
description from dictionary_table where command like COMMAND? 
order by parameter_index; 
define pd parameters_description;
;
;##################################################################
;
;  SHOW_STATUS                   display status of a particular
;  SS                            subsystem through all time 
;                                interval covered by the 
;                                status table.
;
;  Example:
;
;     Inspekt> ss;
;     Enter value for SUBSYSTEM > 'INSTRUMENT*';
;     ...
;
define show_status select time, subsystem, parameter_name, 
chr_value from status_table where subsystem like SUBSYSTEM? 
order by subsystem, parameter_name, time;
define ss show_status;
;
;##################################################################
;
;  SHOW_STATUS_FOR_PARAMETER     displays status of a parameter 
;  SSFP                          of a particular subsystem 
;                                through all time interval covered
;                                by data tables.
;
;  Example:
;
;     Inspekt> ssfp;
;     Enter value for SUBSYSTEM > 'INSTRUMENT*';
;     Enter value for PARAMETER > '*PWR*';
;     ...
;
define show_status_for_parameter select time, subsystem, 
parameter_name, chr_value from status_table where subsystem 
like SUBSYSTEM? and parameter_name like PARAMETER? order by 
subsystem, parameter_name, time;
define ssfp show_status_for_parameter;
;
;##################################################################
;
;  SHOW_STATUS_AT_TIME           displays status of the particular
;  SSAT                          subsystem before a given 
;                                time.
;
;  Example:
;
;     Inspekt> ssat;
;     Enter value for SUBSYSTEM > 'INSTRUMENT*';
;     Enter value for TIME > '2005-JAN-15';
;     ...
;
define show_status_at_time select time, subsystem, 
parameter_name, chr_value from status_table where subsystem 
like SUBSYSTEM? and time le TIME? order by subsystem, 
parameter_name, time;
define ssat show_status_at_time;
;
; End of macro defintions.
;
