MAKLABEL User's Guide =========================================================================== Last revised on 2019 MAY 13 by B. V. Semenov. Abstract -------------------------------------------------------- MAKLABEL is a program that generates PDS and SFDU-style ``keyword equals value'' labels for SPICE kernel files. Introduction -------------------------------------------------------- During the course of a planetary mission, various participants in the mission will produce SPICE kernels. Each of these kernels has associated with it a particular usage context---a context in which the kernel is suitable for use. For example, an ephemeris file produced during the first few days after the launch of a spacecraft may be useful in planning later observations. However, the same kernel may be poorly suited for the analysis of the data returned by those observations once they've been carried out. To make use of a SPICE kernel weeks, months or years after its creation, it is often important to be able to recall its original usage context. Usually this context can be recovered only if it was recorded at the time the kernel was created. Several methods for recording this context have been developed. The Planetary Data System (PDS) and Multimission Ground Systems Office (MGSO) record a fraction of the usage context of a SPICE kernel (together with other information) in a ``label.'' This label is a text file that follows a keyword-equal-value format. MAKLABEL is a ``command line'' utility program for creating PDS and MGSO label files. The label is generated from two sources of information---the SPICE kernel and a ``mission template'' file. The mission template file contains information about the SPICE kernel that cannot be obtained from the kernel. This information includes: 1. the name of the mission associated with the kernel; 2. the name of the person, or organization that produced the kernel; 3. the phase of the mission associated with the kernel; 4. a ``data set identifier'' which is akin to a serial number associated with the kernel; 5. data indicating the ``version type'' of the kernel Other information may be stored in the template file as is deemed appropriate by the person or organization responsible for creating kernel labels. Use of Labels A set of labels generated by the MAKLABEL program may be used to construct a label file that is compatible with either MGSO or PDS labeling standards. A MGSO compatible label is typically used to create an SFDU from a SPICE text kernel file or a SPICE transfer format file. A PDS compatible label is typically used as a detached label for the associated binary or text SPICE kernel. Due to incompatibilities between labeling standards, MGSO labels should be used only within the MGSO organization; PDS labels should be used only within the PDS organization. Inaccurate or Incomplete Labels By careful set up of the mission template file, MAKLABEL can be used to create correct labels for those kernels that are part of a routine production schedule. However, for the occasional special-case kernel, the normal context of production may not apply. In these cases the labels may require a small amount of hand crafting. For example, one of the items in a label is the ``product creation time.'' In the design of MAKLABEL, it has been assumed that during normal kernel production, labels will be produced along with the kernel. In those exceptional situations where labels are produced long after the original creation of the kernel, the label should be modified to reflect the actual creation date for the kernel. As a general rule, labels that are not a result of routine production should be inspected for completeness and correctness. All keywords having a value of ``UNK'' or blank values should be updated with appropriates values. Since labels are text files with a reasonably user-friendly format, case-by-case inspections and modifications of labels are easily handled with any text editor such as Emacs or vi. (See the ``Examples'' section at the end of this document.) Using MAKLABEL to Create a Label File -------------------------------------------------------- In this section we describe how the MAKLABEL program is used to generate a label file and how to properly configure an environment for its use. The MAKLABEL program, in addition to a properly configured environment, relies on the ability to determine the type of a SPICE kernel file from the file itself. With older SPICE text kernel files this is not possible; they do not contain a file identifier or ``ID word'' that specifies the file type. This problem is addressed, in the ``Using MAKLABEL with Old SPICE Text Kernel Files'' section, and a solution is provided. The MAKLABEL Environment To create a label for a SPICE kernel you will need up to three auxiliary files. 1. Mission Template File The mission template file is required each time MAKLABEL is run. The mission template contains label information for SPICE kernels that cannot be deduced from the kernels. Usually NAIF will provide this file. However, by following the instruction in the section below ``Creating a Mission Template File'', you can easily create a mission template. 2. SPICE Leapseconds Kernel A SPICE Leapseconds Kernel is required for the production of labels for all binary SPICE kernels. A leapseconds kernel should be available from your project. If not, a leapseconds kernel can be obtained via anonymous ftp at naif-sun.jpl.nasa.gov (i.p. address 128.149.126.11). Alternatively, you may contact NAIF directly (see Contacting NAIF below). 3. SPICE SCLK Kernel A SPICE SCLK Kernel is required only for the production of labels for C-kernels. Each mission has a mission specific SCLK kernel. MAKLABEL accesses these auxiliary files through the environment variables (user Logicals in VMS environments) shown below. MISSION_TEMPLATE is the full path to the Mission Template File. LEAPSECONDS is the full path to a SPICE leapseconds kernel. SCLK is the full path to a SPICE SCLK kernel. Under UNIX systems you may set these variables with the C-shell command "setenv" setenv MISSION_TEMPLATE (full path of mission template) setenv LEAPSECONDS (full path of leapseconds kernel) setenv SCLK (full path of spacecraft clock kernel) In DCL you use logical variables instead of environment variables. You set the logical variables using the ``DEFINE'' command. DEFINE MISSION_TEMPLATE DISK:[DIR.ECT.ORY]mission.tmplt DEFINE LEAPSECONDS DISK:[DIR.ECT.ORY]leap_file.ker DEFINE SCLK DISK:[DIR.ECT.ORY]sclk_file.ker Running MAKLABEL MAKLABEL is a command line program that requires at least three arguments. It is run as shown below. prompt> maklabel [options] -- type The ``type'' argument specifies the style of label that should be produced---PDS or MGSO. The value of type must be one of the values 'PDS' or 'MGSO'. The case of this value is not significant---'pds' and 'PDS' are equivalent. -- options The options specify that label information should be selected from sections in the mission template file. The sections selected will have the same names as the options specified. For example if the option 'CRUISE' is specified on the command line, label information from the section entitled 'CRUISE' in the mission template file will be used in the production of the label file. Multiple options may be specified. (See the section ``The Mission Template File'' below.) -- kernel-name The ``kernel-name'' is the complete path name of a SPICE kernel file for which labels will be generated. -- label-name The ``label-name'' is the complete path name of the label file to be created. This must be the name of a new file---a file that does not exist at the time maklabel is invoked. The arguments must appear in the order listed above, separated by one or more white space characters. The Mission Template File -------------------------------------------------------- A mission template file is necessary to create a label file from a SPICE kernel file. The template file contains several mission specific labels which have values that cannot be determined consistently from SPICE kernel files, e.g., the PDS DATA_SET_ID keyword. A simple mission template file is shown below. MISSION_NAME = "MAGELLAN" PRODUCER_ID = "MAGELLAN_NAVIGATION_TEAM" MISSION_PHASE_NAME = "AEROBRAKING" PRODUCT_VERSION_TYPE = "TEST" SPACECRAFT_NAME = "MAGELLAN" These exact keywords and values will appear in any label file produced by MAKLABEL using this template. A value taken from a mission template file takes precedence over a value derived from the SPICE kernel. For example, if you label an ephemeris for the Galileo spacecraft using the template above, the name of the spacecraft in the label file will be ``MAGELLAN.'' The fact that the ephemeris is for Galileo is ignored. Thus items placed in the mission template file must be chosen with careful consideration for how the template file will be used. The example mission template above will label all phases of the Magellan mission as the ``AEROBRAKING'' phase. While this name may be appropriate during the final stages of the Magellan mission, it's not a good name for the phase of the mission immediately following launch. The early portion of the mission should be labeled as the ``LAUNCH'' phase of the mission. We could modify the mission template file each time the mission phase changes. However, the mission template file can have ``option sections'' placed in it as shown below. MISSION_NAME = "MAGELLAN" PRODUCER_ID = "MAGELLAN_NAVIGATION_TEAM" PRODUCT_VERSION_TYPE = "TEST" SPACECRAFT_NAME = "MAGELLAN" MISSION_PHASE_NAME = "UNK" --LAUNCH MISSION_PHASE_NAME = "LAUNCH" --CRUISE MISSION_PHASE_NAME = "CRUISE" --MAPPING1 MISSION_PHASE_NAME = "INITIAL MAPPING" --MAPPING2 MISSION_PHASE_NAME = "EXTENDED MAPPING" --AERO MISSION_PHASE_NAME = "AEROBRAKING" An option section begins with a line of the form: -- where ``option-name'' is some sequence of letters and digits. In the above example each option section ends either at the end of the file or at the beginning of the next option section. Our example has five option sections: LAUNCH, CRUISE, MAPPING1, MAPPING2, and AERO. Each ``option-name'' can be used on the command line when MAKLABEL is invoked. Using the above template file, we can invoke MAKLABEL in any of the following additional ways: maklabel mgso launch file.bsp bsp.lbl maklabel mgso cruise file.bsp bsp.lbl maklabel pds mapping1 file.bsp bsp.lbl maklabel pds mapping2 file.bsp bsp.lbl maklabel mgs aero file.bsp bsp.lbl When invoked with a ``template option'', MAKLABEL first extracts any label information that appears before the first option section in the mission template file. MAKLABEL then extracts information from each option section specified on the command line. The general format of a mission template file is shown below. keyword_1 = keyword_2 = . Default Section . keyword_n = --option_1 keyword_11 = Label Values for . option 1 . . keyword_1n = --option_2 keyword_21 = Label Values for . option 2 . . keyword_2n = --option_3 keyword_31 = Label Values for . option 3 . . keyword_3n = Note that more than one option section can be referenced when creating a label file. Consider the following sample template file. MISSION_NAME = "BIG_MISSION" PRODUCER_ID = "Chuck Acton" MISSION_PHASE_NAME = "TESTING" PRODUCT_VERSION_TYPE = "SPICE-N0045" DATA_SET_ID = "SPICE_#_KERNEL" SPACECRAFT_NAME = "PHOENIX" --LAUNCH MISSION_PHASE_NAME = "LAUNCH" --CRUISE MISSION_PHASE_NAME = "CRUISE" --OPS MISSION_PHASE_NAME = "MAPPING" --BILL PRODUCER_ID = "Bill Taber" --NAT PRODUCER_ID = "Nat Bachman" --N0046 PRODUCT_VERSION_TYPE = "SPICE-N0046" --END Using this template you can create a label with: -- any of 4 possible mission phase names---TESTING, LAUNCH, CRUISE, MAPPING; -- any of 3 different producer IDs---``Chuck Acton'', ``Bill Taber'', ``Nat Bachman''; -- either of two product version types---SPICE-N0045, SPICE-N0046 To create a PDS label ``pds.lbl'', for the file ``spice.ker'' that specifies the producer id to be ``Bill Taber'' the mission phase as ``CRUISE'' and product version type ``SPICE-N0045'', MAKLABEL should be invoked with the following options. prompt> maklabel pds cruise bill spice.ker pds.lbl To create the same label but with product version type set to ``SPICE-N0046'', invoke MAKLABEL with these options: prompt> maklabel pds cruise bill n0046 spice.ker pds.lbl Note that in the above example, the keywords MISSION_PHASE PRODUCER_ID PRODUCT_VERSION_TYPE appear in several places. Each appears in the ``Default Section'' as well as at least one other section in the template. When MAKLABEL reads the mission template file, it first selects keyword-value pairs from the default section. Next MAKLABEL selects keyword-value pairs from the first option specified on the command line. If a conflict arises between the keyword value read from the default section and a keyword value read from the option section, the value specified in the option section is used. MAKLABEL continues to select keyword-value pairs from the template file until every option specified on the command line has been examined. In each case of conflict, the latest value read is used in the creation of the label. PDS and MGSO sections As noted, you must specify that MAKLABEL produce either a PDS or MGSO style label file. The label style is specified via the first argument of the command used to invoke MAKLABEL. This first argument also acts as a mission template option. If a ``PDS'' section is present in the the mission template file, and you specify that a PDS style label be created, the contents of the PDS section will be extracted from the mission template file and used during the creation of the PDS label. Similarly, if a ``MGSO'' section is present in the mission template, the information in the MGSO section will be used when an MGSO style label is produced. These sections are special in that neither is required to be present in the mission template. If they are absent from the mission template file, MAKLABEL will construct the label file from the default section and any other sections specified on the command line. All other sections specified on the command line, must be present in the mission template file. The absence of a command line specified section (other than PDS or MGSO) is treated as an error. Format of the Mission Template As the examples above illustrate, the format of the mission template file are fairly simple. The formal requirements of this format are specified below. 1. The mission template file is an ASCII text file. It is partitioned into sections. Sections are separated by lines whose first two non-white space characters are `--'. A line that begins with these characters is called an section heading. The characters that follow the leading pair of hyphens are called a section name. All lines that appear prior to the first section heading in the mission template file belong to the ``default section.'' All lines appearing between two consecutive section headings or between the last section heading and the end of the file belong to the section named by the section heading. (Note that this implies that a section does not need to be a contiguous collection of lines. In the example below the section ``UNUSUAL'' is split into two blocks of lines. There is no good reason to construct a mission template file in this way, it's simply easier to allow such sections than to disallow them.) MISSION_NAME = "BIG_MISSION" PRODUCER_ID = "Chuck Acton" MISSION_PHASE_NAME = "TESTING" PRODUCT_VERSION_TYPE = "SPICE-N0045" DATA_SET_ID = "SPICE_#_KERNEL" SPACECRAFT_NAME = "PHOENIX" --UNUSUAL MISSION_PHASE_NAME = "LAUNCH" --CRUISE MISSION_PHASE_NAME = "CRUISE" --UNUSUAL PRODUCER_ID = "Bill Taber" 2. A line in a mission template file must be fewer than 132 characters in length. 3. Blank lines in the mission template file are ignored. 4. A keyword assignment has one of following formats keyword = value or keyword += value Keywords must be 80 or fewer characters in length. The keyword must contain only non-blank characters and may not contain any of the characters from the list below: '=' --- the equal character '"' --- the quote character ',' --- the comma character '{' --- the left brace character '}' --- the right brace character 5. A keyword value may be either a scalar or vector. A scalar value must be fewer than 132 characters in length. Scalars must appear on a single line of the mission template file. A scalar may be be one 3 forms: a quoted string, a number, a date. Quoted strings begin with the double-quote character `"' and end with the double quote character. To place the double quote character in a string, follow the FORTRAN convention of doubling the character as in KEYWORD = "He said, ""Don't do it.""" Numbers may not contain the blank character or commas. They follow the standard formatting used by FORTRAN. Dates must follow SPICE kernel pool conventions. They should begin with the character '@' and be followed with a sequence of non-blank characters. They may not contain the comma character. Finally, they should be recognizable by the SPICE routine TPARSE. (See the reference TIME.REQ for a description of allowed time strings.) 6. A vector value is specified by a list of comma or white space separated scalars. This list may be enclosed in braces as shown here. TARGET_NAME = { "EARTH", "MOON", "MARS" }' Vector values that are enclosed in braces may extend over several lines of the mission template file. The example below illustrates this. TARGET_NAME = { "EARTH", "MOON", "MARS" } 7. Vector valued keywords may be constructed incrementally through use of the incremental assignment `+='. The following three assignments all give the keyword SAMPLE the same vector value. SAMPLE = "A", "VECTOR", "VALUE" SAMPLE = { "A", "VECTOR", "VALUE" } SAMPLE = "A" SAMPLE += "VECTOR" SAMPLE += "VALUE" 8. The case of the keywords is not significant. However, in the label file that is created, all keywords will be in upper case. 9. Both PDS and MGSO labels require that the following keywords be present in the mission template file. 'MISSION_NAME' 'PRODUCER_ID' 'MISSION_PHASE_NAME' 'PRODUCT_VERSION_TYPE' PDS labels require an additional keyword: 'DATA_SET_ID' Moreover, when using a mission template file to generate a PDS compatible label file, the value for this keyword is a template containing a pound sign where the type of the SPICE kernel file is o be placed, e.g., DATA_SET_ID = "MGN-V-SPICE-6-#-V1.0" Examples -------------------------------------------------------- In this section we present two examples. In the first example we generate an MGSO compatible label file, and in the second example we generate a PDS compatible label file. In both examples we generate a label file for the SPICE SPK file ``gll940115.bsp,'' a predict ephemeris file used for preliminary Galileo Jupiter orbit studies. We provide examples only for an SPK file because the process of creating a label file is identical for all other SPICE kernel files. Example 1: Creating an MGSO Compatible Label File For this example we assume that we have a properly configured environment with the MISSION_TEMPLATE and LEAPSECONDS environment variables defined. Using the mission template file ``mexample.lbl,'' MISSION_NAME = "GALILEO" PRODUCER_ID = "PDS_NAIF" MISSION_PHASE_NAME = "UNK" PRODUCT_VERSION_TYPE = "PREDICT" --PDS DATA_SET_ID = "GO-J-SPICE-6-#-V1.0" --LAUNCH MISSION_PHASE_NAME = "LAUNCH" --VENUS MISSION_PHASE_NAME = "VENUS_FLYBY" --EARTH1 MISSION_PHASE_NAME = "EARTH_1_FLYBY" --EARTH2 MISSION_PHASE_NAME = "EARTH_2_FLYBY" --GASPRA MISSION_PHASE_NAME = "GASPRA_FLYBY" --IDA MISSION_PHASE_NAME = "IDA_FLYBY" --CRUISE MISSION_PHASE_NAME = "CRUISE" --JUPITER MISSION_PHASE_NAME = "JUPITER_ORBIT_OPERATIONS" --END and the command maklabel mgso jupiter gll940115.bsp mgso.lbl we obtain the label file ``mgso.lbl.'' MISSION_NAME = "GALILEO" SPACECRAFT_NAME = { "GALILEO ORBITER" } DATA_SET_ID = "SPICE_SPK_FILE" KERNEL_TYPE_ID = "SPK" PRODUCT_ID = "gll940115.xsp" PRODUCT_CREATION_TIME = 1996-03-26T08:47:00 PRODUCER_ID = "PDS_NAIF" MISSION_PHASE_NAME = "JUPITER_ORBIT_OPERATIONS" PRODUCT_VERSION_TYPE = "PREDICT" PLATFORM_OR_MOUNTING_NAME = "N/A" START_TIME = 1995-07-14T07:28:58.816 STOP_TIME = 1996-07-04T10:01:17.816 SPACECRAFT_CLOCK_START_COUNT = "N/A" SPACECRAFT_CLOCK_STOP_COUNT = "N/A" TARGET_NAME = { "GALILEO ORBITER", "EARTH BARYCENTER", "JUPITER BARYCENTER", "SUN", "MOON", "EARTH", "IO", "EUROPA", "GANYMEDE", "CALLISTO", "JUPITER" } INSTRUMENT_NAME = "N/A" INSTRUMENT_ID = "N/A" SOURCE_PRODUCT_ID = "UNK" NOTE = "SPICE transfer format SPK file." Notice that the value for the PRODUCT_CREATION_TIME label is the current date and time, or at least it was current when this document was being written. If this SPK file was actually created on January 15, 1994, as indicated by the filename, say at about 9:00 am, then we should change the value of this label from PRODUCT_CREATION_TIME = 1996-03-26T08:47:00 to PRODUCT_CREATION_TIME = 1994-01-15T09:00:00 to accurately reflect the date and time that the SPK file was created. Also notice that the SOURCE_PRODUCT_ID label has been given a value of ``UNK.'' MAKLABEL uses this value to indicate that a value for this label could not be determined from the SPK file ``gll940115.bsp.'' The value ``UNK'' should be replaced by a list of the source data products that were used to create the SPK file, e.g., if the files eph-de125n.nio tour-940115-leg6.nio sateph-0188n.nio tour-940115-leg7.nio fpfil-940115-sep-pjr.nio tour-940115-leg8.nio tour-940115-leg1.nio tour-940115-leg9.nio tour-940115-leg2.nio tour-940115-leg10.nio tour-940115-leg3.nio tour-940115-leg11.nio tour-940115-leg4.nio gll00006.tls tour-940115-leg5.nio were used to create the SPICE SPK file, then the SOURCE_PRODUCT_ID label could be given the value SOURCE_PRODUCT_ID = { "eph-de125n.nio", "sateph-0188n.nio", "fpfil-940115-sep-pjr.nio", "tour-940115-leg1.nio", "tour-940115-leg2.nio", "tour-940115-leg3.nio", "tour-940115-leg4.nio", "tour-940115-leg5.nio", "tour-940115-leg6.nio", "tour-940115-leg7.nio", "tour-940115-leg8.nio", "tour-940115-leg9.nio", "tour-940115-leg10.nio", "tour-940115-leg11.nio", "gll00006.tls" } Finally, notice that the value of the PRODUCT_ID label is ``gll940115.xsp,'' indicating that the product is a portable transfer format SPK file, and not ``gll940115.bsp,'' the original binary SPK file. This is correct, since we assume that an MGSO label file is to be used to create an SFDU from the label file and a SPICE text kernel file or a SPICE transfer file. Example 2: Creating a PDS Compatible Label File For this example we again assume that we have a properly configured environment with the MISSION_TEMPLATE and LEAPSECONDS environment variables defined. Using the mission template file as before and the command maklabel pds jupiter gll940115.bsp pds.lbl we obtain the label file ``pds.lbl.'' PDS_VERSION_ID = PDS3 RECORD_TYPE = FIXED_LENGTH RECORD_BYTES = "N/A" ^SPICE_KERNEL = "gll940115.bsp" MISSION_NAME = GALILEO SPACECRAFT_NAME = { "GALILEO ORBITER" } DATA_SET_ID = "GO-J-SPICE-6-SPK-V1.0" KERNEL_TYPE_ID = SPK PRODUCT_ID = "gll940115.bsp" PRODUCT_CREATION_TIME = 1996-03-26T08:47:33 PRODUCER_ID = PDS_NAIF MISSION_PHASE_NAME = JUPITER_ORBIT_OPERATIONS PRODUCT_VERSION_TYPE = PREDICT PLATFORM_OR_MOUNTING_NAME = "N/A" START_TIME = 1995-07-14T07:28:58.816 STOP_TIME = 1996-07-04T10:01:17.816 SPACECRAFT_CLOCK_START_COUNT = "N/A" SPACECRAFT_CLOCK_STOP_COUNT = "N/A" TARGET_NAME = { "GALILEO ORBITER", "EARTH BARYCENTER", "JUPITER BARYCENTER", "SUN", "MOON", "EARTH", "IO", "EUROPA", "GANYMEDE", "CALLISTO", "JUPITER" } INSTRUMENT_NAME = "N/A" NAIF_INSTRUMENT_ID = "N/A" SOURCE_PRODUCT_ID = UNK NOTE = "SPICE binary SPK file." OBJECT = SPICE_KERNEL INTERCHANGE_FORMAT = BINARY KERNEL_TYPE = EPHEMERIS DESCRIPTION = " " END_OBJECT = SPICE_KERNEL END Notice that the value for the DATA_SET_ID has used the template provided in the mission template file ``pexample.lbl,'' and that the pound sign has been replaced by ``SPK.'' Also notice that quoting for the character values in PDS label follows different rules than in MGSO labels. In PDS label, character value quoting is done in accordance with Object Definition Language syntax rules: a value containing any character other than letters, digits and underscore and having non-letter as the first character must be quoted; a value consisting only of letters, digits and underscores and having a letter as the first character must not be quoted. In MGSO labels all character values are automatically quoted. As in the previous example, the value for the PRODUCT_CREATION_TIME label is the current date and time. If the actual creation date and time of the SPK file should be used, then this value should be modified as it was in the previous example. Change the value of the label from PRODUCT_CREATION_TIME = 1996-03-26T08:47:00 to PRODUCT_CREATION_TIME = 1994-01-15T09:00:00 Again, as in the previous example, the SOURCE_PRODUCT_ID label has been given a value of ``UNK,'' and it should be replaced by a list of the source data products that were used to create the SPK file. Also, the value of the PRODUCT_ID label is ``gll940115.bsp,'' the original binary SPK file name, which is correct since a PDS label file is a ``detached'' label for the SPICE kernel file. The PDS label file contains some additional labels that are specific to the PDS archival process. The only label of particular interest is the DESCRIPTION label which is blank. This label should be given a value, possibly extending over multiple lines, describing the SPICE kernel file for which the labels were generated. For this example, something like the following would be appropriate. DESCRIPTION = "Predict SPICE SPK file covering 940115 tour, starting from probe separation, extending through leg 11. This SPK file was produced by the NAIF group at JPL. For further information on the file contact the NAIF Group via Chuck Acton: e-mail : Charles.H.Acton@jpl.nasa.gov phone : (818) 354-3869." Using MAKLABEL with Old SPICE Text Kernel Files -------------------------------------------------------- Although, MAKLABEL will work with any all of binary SPICE kernel, the program will not work with old SPICE text kernel files (i.e. text kernels provided with versions earlier than version 44 of the toolkit). When MAKLABEL is used on one of these text kernel files, say the SPICE leapseconds kernel file ``leapseconds.ker,'' it produces the following error message. ============================================================= Toolkit version: N0046(or higher) MAKLABEL(UNKNOWNFILETYPE) The architecture or type of the file 'leapseconds.ker' was not recognized. A traceback follows. The name of the highest level module is first. MAKLABEL ============================================================= The MAKLABEL program cannot recognize the type of the old SPICE text kernel files because they lack a file ``identification word'' or ``ID word'' in the first FORTRAN record (the first line) of the file. A file ID word is used by the SPICE system to specify the architecture and type of a SPICE kernel file so that software can automatically determine the appropriate loader for the file. The definition and use of a file ID word with SPICE text kernel files is new; its implementation has been primarily driven by the need to develop a consistent mechanism for creating label files for SPICE kernel files, i.e., the MAKLABEL program. In order to allow the MAKLABEL program to create a label file for old SPICE text kernel files an appropriate file ID word must be added to the text kernel file as the first eight characters of the first line of the file. The following table contains the appropriate file ID word for each SPICE text kernel type. File ID Word SPICE Text Kernel Type ------------ ------------------------------------- KPL/IK Instrument Kernel File (IK) KPL/LSK Leapseconds Kernel File (LSK) KPL/PCK Planetary Constants Kernel File (PCK) KPL/SCLK Spacecraft Clock Kernel File (SCLK) The First part of the ID word is the ``architecture'' of the file. An architecture of ``KPL'' implies that the data in the file is suitable for use with the SPICELIB kernel pool. All of the characters in the ID word must be in UPPER CASE. As an example, we begin with an old SPICE leapseconds kernel file LEAPSECONDS KERNEL FILE =============================================================== Modifications: -------------- 1995, Dec 14 KSZ Corrected date of last leapsecond from 1-1-95 to 1-1-96. 1995, Oct 25 WLT Modified file to account for the leapsecond that will occur on Dec 31, 1995. 1994, Jun 16 WLT Modified file to account for the leapsecond on June 30, 1994. 1993, Feb. 22 CHA Modified file to account for the leapsecond on June 30, 1993. . . . and add the appropriate file ID word to it. (The blank line following the file ID word has been added to improve the readability.) KPL/LSK LEAPSECONDS KERNEL FILE =============================================================== Modifications: -------------- 1995, Dec 14 KSZ Corrected date of last leapsecond from 1-1-95 to 1-1-96. 1995, Oct 25 WLT Modified file to account for the leapsecond that will occur on Dec 31, 1995. 1994, Jun 16 WLT Modified file to account for the leapsecond on June 30, 1994. 1993, Feb. 22 CHA Modified file to account for the leapsecond on June 30, 1993. . . . The MAKLABEL program will now be able to generate a label file for this SPICE leapseconds kernel file. Contacting NAIF =========================================================================== If you have problems or suggestions you can contact NAIF via U.S. Mail, electronic mail or phone as specified below. U.S. Mail address: Charles Acton Jet Propulsion Laboratory Navigation Ancillary Information Facility 4800 Oak Grove Drive Mail Stop 301-125L Pasadena, CA 91109 Electronic mail address: Charles.H.Acton@jpl.nasa.gov Boris.V.Semenov@jpl.nasa.gov Nathaniel.J.Bachman@jpl.nasa.gov Phone number: (818) 354-3869 (Chuck Acton) (818) 354-8136 (Boris Semenov) (818) 354-7454 (Nat Bachman) Appendix 1: Guidelines for Editing Labels =========================================================================== The following general guidelines must be followed when editing the values in a label file. 1. In MGSO labels all character values are quoted using the double quote character. In PDS labels, character value are quoted in accordance with Object Definition Language syntax rules: a value containing any character other than letters, digits and underscore and having non-letter as the first character must be quoted; a value consisting only of letters, digits and underscores and having a letter as the first character must not be quoted. MISSION_NAME = GALILEO 2. Integer label values and times are not quoted. START_TIME = 1995-07-14T07:28:59 3. Label values may extend over multiple lines. DESCRIPTION = "Predict SPICE SPK file covering 940115 tour, starting from probe separation, extending through leg 11. This SPK file was produced by the NAIF group at JPL. For further information on the file contact the NAIF Group via Chuck Acton: e-mail : cacton@spice.jpl.nasa.gov phone : (818) 354-3869." 4. Lists of items in a label value are enclosed within curly braces with commas separating the individual items. TARGET_NAME = { "GALILEO ORBITER", "EARTH BARYCENTER", "SUN", "MOON", "EARTH", "JUPITER BARYCENTER", "IO", "EUROPA", "JUPITER" } 5. If the value for a label is unknown, the value "UNK" may be used. 6. If the value for a label is not applicable to a particular file, the value ``N/A'' should be used. INSTRUMENT_NAME = "N/A"