NAIF Integer ID codes







Revisions




Last revised on 2005 NOV 15 by E. D. Wright.

This version of the document supersedes all previous versions.



Abstract




The NAIF IDS required reading lists all default ID-name mappings for the SPICE/CSPICE toolkits and a description of functionality of the corresponding software.



Introduction




SPICE system kernel files and subroutines refer to ephemeris objects, reference frames, and instruments by integer codes.

An ephemeris object is any object that may have ephemeris or trajectory data such as a planet, natural satellite, tracking station, spacecraft, barycenter (the center of mass of a group of bodies), asteroid, or comet. Each body in the solar system is associated with an integer code for use with SPICE. The names and codes for many of these objects are listed below.

Spacecraft ID codes are negative. These ID codes are usually derived from NASA control authority assignments. Instruments mounted on spacecraft also have ID codes. These are determined by multiplying the spacecraft ID by 1000 and subtracting the ordinal number of the instrument from the resulting product. Thus we can algorithmically recover the spacecraft code from an instrument code, and each instrument may have a unique code as long as there are 999 or fewer on a spacecraft.

Caution: the NASA spacecraft ID control authority at GSFC is forced into reusing some IDs. This can affect the SPICE system for planetary or other spacecraft for which ID-name mappings are registered. (Here "registered" means a spacecraft for which use of the SPICE system is an actuality, or was contemplated.) Three cases exist.

For spacecraft the ID-to-name mapping may be a one-to-many mapping, allowing two or more names for a spacecraft to exist for a single numeric ID. The last mentioned ID-to-name mapping in this document is the one that will be used in SPICE software to effect ID-to-name translations within SPICE-based code.

As the reader will see, ID codes now show the wear that results from an expanding system. As the SPICE system has expanded so has the number of objects that require identifying codes. Many of these objects do not fit neatly into the schemes originally envisioned as needing ID codes. As a result, the current system is a bit eclectic.



Use of Code-to-Name/Name-to-Code Mappings from SPICE




Software exists within the SPICE system that allows a user to easily map between an integer code and the object name that code represents or vice-versa.

bodc2n_c performs the integer code to name mapping; input a code, the routine returns the corresponding name:

      bodc2n_c ( code, lenout, &name, &found );
 
      Where lenout defines the maximum string length for name.
bodn2c_c performs the name to integer code mapping; input a name, the routine returns the corresponding ID code:

      bodn2c_c ( name, &code, &found );
boddef_c performs a run-time assignment of a name/code mapping for later translation by bodc2n_c and bodn2c_c:

      boddef_c ( name, code );
name defines the character string associated with integer code. When using bodn2c_c, the name look-up is case insensitive, left justified, and space compressed (multiple spaces between words reduced to one) format. Space between words are significant.

      These strings are equivalent:
         'EARTH', '  Earth ', 'earth  '
      As well as:
         'Solar System Barycenter', 'SOLAR  System  barycenter'
      but
         'SolarSystemBarycenter'
      is not due to the lack of spaces between words.
The boolean found has value true if a mapping look-up succeeded, false otherwise.



Use of an External Mapping Definition Kernel



If necessary, a user may elect to load additional name-ID pairs for access by SPICE software. These pairs may be new definitions, or they may override the default mapping assignment.

Create new name-ID pairs With a text kernel such as

      \begintext
 
      Define an additional set of body, ID code mappings.
 
      \begindata
 
      NAIF_BODY_CODE  += ( 22, 23, 24, 25 )
 
      NAIF_BODY_NAME  += ( 'LARRY', 'MOE', 'CURLEY', 'SHEMP' )
Load the kernel as usual with a furnsh_c call. The names defined in NAIF_BODY_NAME map to the corresponding index of NAIF_BODY_CODE, i.e. LARRY->22, MOE->23, etc, and the IDs in NAIF_BODY_CODE map to the corresponding index of NAIF_BODY_NAME.

If an external ID kernel is used, be aware of several rules:

Since NAIF_BODY_CODE and NAIF_BODY_NAME are kernel variables, use of the "+=" notation in the previous example means the values are appended to the mapping set present in memory. For example, the block:

      \begindata
 
      NAIF_BODY_CODE  += ( 170100, 170101 )
 
      NAIF_BODY_NAME  += ( 'Enterprise', 'Enterprise-A' )
appends the two pairings to the existent set of mappings.

CAUTION: Use of the assignment operator, ''='', instead of the append operator, ''+='', destroys any previous name-ID definitions for a kernel variable.



Masking



As of release N53, the SPICE Toolkit provides the user the functionality to override or mask any name/ID mapping. Use a boddef_c call or define NAIF_BODY_NAME, NAIF_BODY_CODE assignments from a text kernel to perform a masking operations. Simplistically, the mask functionality provides the user the option of mapping multiple names to the same code.

Name/ID assignments function within a precedence hierarchy, so a lower precedence operation cannot affect previous assignments created by an operation of higher precedence. Kernel pool definitions have the highest precedence, boddef_c definitions next, and finally the default definitions. The order of assignments is significant.

                                    Highest precedence
 
                                   (1) Kernel pool final assignment
 
                             (2) Kernel pool initial assignment
 
                       (3) A BODDEF/boddef_c call final assignment
 
                 (4) A BODDEF/boddef_c call initial assignment
 
           (5) The default mappings final assignment
 
     (6) The default mappings initial assignment
 
     Lowest precedence
Example 1:

Assign the name 'x' (lower case) to ID 1000 with boddef_c:

      boddef_c ( "x", 1000 );
A call to bodc2n_c with 1000 as the input ID:

      bodc2n_c ( 1000, lenout, &name, &found );
returns the name 'x'. The bodn2c_c calls:

      bodn2c_c ( "x", &code, &found );
      bodn2c_c ( "X", &code, &found );
both return the ID as 1000. Note the case insensitivity of the name input.

Now a demo of simple masking functionality. Assign a new name to ID 1000:

      boddef_c ( "Y", 1000 );
so the bodn2c_c call

      bodn2c_c ( "Y", &code, &found );
returns an ID of 1000. In a similar manner, the bodc2n_c call:

      bodc2n_c ( 1000, lenout, &name, &found );
returns the name 'Y'. Still, the code assigned to 'x' persists within CSPICE as the call:

      bodn2c_c ( "x", &code, &found );
also returns ID 1000. If we reassign 'Y' to a different ID:

      boddef_c ( "Y", 1001 );
then make a bodc2n_c call with 1000 as the input ID:

      bodc2n_c ( 1000, lenout, &name, &found );
the routine returns the name 'x'. We assigned an ID to 'x', masked it with another name, then demasked it by reassigning the masking name, 'Y'.

If a boddef_c assigns an existing name to an existing code, that assignment takes precedence.

Example 2:

      bodn2c_c ( "THEBE", &code, &found );
returns a code value 514. Likewise

      bodn2c_c ( 514, &name, &found );
returns a name of 'THEBE'. Yet the name '1979J2' also maps to code 514, but with lower precedence.

The boddef_c call:

      boddef_c ( "1979J2", 514 );
places the '1979J2' <-> 514 mapping at the top of the precedence list, so:

      bodn2c_c ( 514, &name, &found );
returns the name '1979J2'. Note, 'THEBE' still resolves to 514.

In those cases where a kernel pool assignment overrides a boddef_c, the boddef_c mapping 'reappears' when an unload_c (or clpool_c) call clears the kernel pool mappings.

Example 3:

Execute a boddef_c call:

      boddef_c ( "vehicle2", -1010 );
A bodc2n_c call:

      bodc2n_c ( -1010, lenout, &name, &found );
returns the name 'vehicle2' as expected. If you then load the name/ID kernel body.ker:

      \begindata
 
      NAIF_BODY_NAME = ( 'vehicle1' )
      NAIF_BODY_CODE = ( -1010      )
 
      \begintext
with furnsh_c:

      furnsh_c ( "body.ker" );
the bodc2n_c call:

      bodc2n_c ( -1010, lenout, &name, &found );
returns 'vehicle1' since the kernel assignment take precedence over the boddef_c assignment.

The name/ID map state:

       -1010    -> vehicle1
       vehicle1 -> -1010
       vehicle2 -> -1010
Now, unload the body kernel:

      unload_c ( "body.ker" );
and the boddef_c assignment resumes highest precedence.

      bodc2n_c ( -1010, lenout, &name, &found );
The call returns 'vehicle2' for the name.

CAUTION: Please understand a clpool_c call deletes all kernel pool mapping assignment. No similar clear functionality exists to clear boddef_c. boddef_c assignments persist unless explicitly overridden.



NAIF Object ID numbers




In theory, a unique integer can be assigned to each body in the solar system, including interplanetary spacecraft. SPICE uses integer codes instead of names to refer to ephemeris bodies for three reasons.



Barycenters



The smallest positive codes are reserved for the Sun and planetary barycenters:

      NAIF ID     NAME
      ________    ____________________
      0           'SSB'
      0           'SOLAR SYSTEM BARYCENTER'
      1           'MERCURY BARYCENTER'
      2           'VENUS BARYCENTER'
      3           'EMB'
      3           'EARTH MOON BARYCENTER'
      3           'EARTH-MOON BARYCENTER'
      3           'EARTH BARYCENTER'
      4           'MARS BARYCENTER'
      5           'JUPITER BARYCENTER'
      6           'SATURN BARYCENTER'
      7           'URANUS BARYCENTER'
      8           'NEPTUNE BARYCENTER'
      9           'PLUTO BARYCENTER'
      10          'SUN'
For those planets without moons, Mercury and Venus, the barycenter location coincides with the body center of mass. However do not infer you may interchange use of the planet barycenter ID and the planet ID. A barycenter has no radii, right ascension/declination of the pole axis, etc. Use the planet ID when referring to a planet or any property of that planet.



Planets and Satellites



Planets have ID codes of the form P99, where P is 1, ..., 9 (the planetary ID); a planet is always considered to be the 99th satellite of its own barycenter, e.g. Jupiter is body number 599. Natural satellites have ID codes of the form

           PNN, where
 
                  P  is  1, ..., 9
              and NN is 01, ... 98
or

           PXNNN, where
 
                  P   is    1, ...,  9,
                  X   is    0  or    5,
              and NNN is  001, ... 999
 
        Codes with X = 5 are provisional.
e.g. Ananke, the 12th satellite of Jupiter (JXII), is body number 512. (Note the fragments of comet Shoemaker Levy 9 are exceptions to this rule.)

      NAIF ID     NAME                    IAU NUMBER
      ________    ____________________    __________
      199         'MERCURY'
      299         'VENUS'
      399         'EARTH'
      301         'MOON'
      499         'MARS'
      401         'PHOBOS'                MI
      402         'DEIMOS'                MII
      599         'JUPITER'
      501         'IO'                    JI
      502         'EUROPA'                JII
      503         'GANYMEDE'              JIII
      504         'CALLISTO'              JIV
      505         'AMALTHEA'              JV
      506         'HIMALIA'               JVI
      507         'ELARA'                 JVII
      508         'PASIPHAE'              JVIII
      509         'SINOPE'                JIX
      510         'LYSITHEA'              JX
      511         'CARME'                 JXI
      512         'ANANKE'                JXII
      513         'LEDA'                  JXIII
      514         '1979J2'
      514         'THEBE'                 JXIV
      515         '1979J1'
      515         'ADRASTEA'              JXV
      516         '1979J3'
      516         'METIS'                 JXVI
      517         'CALLIRRHOE'            JXVII
      518         'THEMISTO'              JXVIII
      519         'MAGACLITE'             JXIX
      520         'TAYGETE'               JXX
      521         'CHALDENE'              JXXI
      522         'HARPALYKE'             JXXII
      523         'KALYKE'                JXXIII
      524         'IOCASTE'               JXXIV
      525         'ERINOME'               JXXV
      526         'ISONOE'                JXXVI
      527         'PRAXIDIKE'             JXXVII
      528         'AUTONOE'               JXXVIII
      529         'THYONE'                JXXIX
      530         'HERMIPPE'              JXXX
      531         'AITNE'                 JXXXI
      532         'EURYDOME'              JXXXII
      533         'EUANTHE'               JXXXIII
      534         'EUPORIE'               JXXXIV
      535         'ORTHOSIE'              JXXXV
      536         'SPONDE'                JXXXVI
      537         'KALE'                  JXXXVII
      538         'PASITHEE'              JXXXVIII
      539         'HEGEMONE'              JXXXIX
      540         'MNEME'                 JXL
      541         'AOEDE'                 JXLI
      542         'THELXINOE'             JXLII
      543         'ARCHE'                 JXLIII
      544         'KALLICHORE'            JXLIV
      545         'HELIKE'                JXLV
      546         'CARPO'                 JXLVI
      547         'EUKELADE'              JXLVII
      548         'CYLLENE'               JXLVIII
      699         'SATURN'
      601         'MIMAS'                 SI
      602         'ENCELADUS'             SII
      603         'TETHYS'                SIII
      604         'DIONE'                 SIV
      605         'RHEA'                  SV
      606         'TITAN'                 SVI
      607         'HYPERION'              SVII
      608         'IAPETUS'               SVIII
      609         'PHOEBE'                SIX
      610         '1980S1'
      610         'JANUS'                 SX
      611         '1980S3'
      611         'EPIMETHEUS'            SXI
      612         '1980S6'
      612         'HELENE'                SXII
      613         '1980S13'
      613         'TELESTO'               SXIII
      614         '1980S25'
      614         'CALYPSO'               SXIV
      615         '1980S28'
      615         'ATLAS'                 SXV
      616         '1980S27'
      616         'PROMETHEUS'            SXVI
      617         '1980S26'
      617         'PANDORA'               SXVII
      618         'PAN'                   SXVIII
      619         'YMIR'                  SXIX
      620         'PAALIAQ'               SXX
      621         'TARVOS'                SXXI
      622         'IJIRAQ'                SXXII
      623         'SUTTUNGR'              SXXIII
      624         'KIVIUQ'                SXXIV
      625         'MUNDILFARI'            SXXV
      626         'ALBIORIX'              SXXVI
      627         'SKATHI'                SXXVII
      628         'ERRIAPO'               SXXVIII
      629         'SIARNAQ'               SXXIX
      630         'THRYMR'                SXXX
      631         'NARVI'                 SXXXI
      632         'METHODE'               SXXXII
      633         'PALLENE'               SXXXIII
      634         'POLYDEUCES'            SXXXIV
      799         'URANUS'
      701         'ARIEL'                 UI
      702         'UMBRIEL'               UII
      703         'TITANIA'               UIII
      704         'OBERON'                UIV
      705         'MIRANDA'               UV
      706         '1986U7'
      706         'CORDELIA'              UVI
      707         '1986U8'
      707         'OPHELIA'               UVII
      708         '1986U9'
      708         'BIANCA'                UVIII
      709         '1986U4'
      709         'CRESSIDA'              UIX
      710         '1986U6'
      710         'DESDEMONA'             UX
      711         '1986U3'
      711         'JULIET'                UXI
      712         '1986U1'
      712         'PORTIA'                UXII
      713         '1986U2'
      713         'ROSALIND'              UXIII
      714         '1986U5'
      714         'BELINDA'               UXIV
      715         '1985U1'
      715         'PUCK'                  UXV
      716         'CALIBAN'               UXVI
      717         'SYCORAX'               UXVII
      718         '1986U10'
      718         'PROSPERO'              UXVIII
      719         'SETEBOS'               UXIX
      720         'STEPHANO'              UXX
      721         'TRINCULO'              UXXI
      899         'NEPTUNE'
      801         'TRITON'                NI
      802         'NEREID'                NII
      803         'NAIAD'                 NIII
      804         'THALASSA'              NIV
      805         'DESPINA'               NV
      806         'GALATEA'               NVI
      807         'LARISSA'               NVII
      808         'PROTEUS'               NVIII
      999         'PLUTO'
      901         '1978P1'
      901         'CHARON'                PI


Spacecraft



THE SPICE convention uses negative integers as spacecraft ID codes. The code assigned to interplanetary spacecraft is normally the negative of the code assigned to the same spacecraft by JPL's Deep Space Network (DSN) as determined the NASA control authority at Goddard Space Flight Center.

The current SPICE vehicle code assignments:

      NAIF ID     NAME
      ________    ____________________
      -1          'GEOTAIL'
      -6          'P6'
      -6          'PIONEER-6'
      -7          'P7'
      -7          'PIONEER-7'
      -8          'WIND'
      -12         'VENUS ORBITER'
      -12         'P12'
      -12         'PIONEER 12'
      -13         'POLAR'
      -18         'MGN'
      -18         'MAGELLAN'
      -20         'P8'
      -20         'PIONEER-8'
      -21         'SOHO'
      -23         'P10'
      -23         'PIONEER-10'
      -24         'P11'
      -24         'PIONEER-11'
      -25         'LP'
      -25         'LUNAR PROSPECTOR'
      -27         'VK1'
      -27         'VIKING 1 ORBITER'
      -29         'STARDUST'
      -29         'SDU'
      -30         'VK2'
      -30         'VIKING 2 ORBITER'
      -30         'DS-1'
      -31         'VG1'
      -31         'VOYAGER 1'
      -32         'VG2'
      -32         'VOYAGER 2'
      -40         'CLEMENTINE'
      -41         'MEX'
      -41         'MARS EXPRESS'
      -44         'BEAGLE2'
      -44         'BEAGLE 2'
      -46         'MS-T5'
      -46         'SAKIGAKE'
      -47         'PLANET-A'
      -47         'SUISEI'
      -47         'GNS'
      -47         'GENESIS'
      -48         'HUBBLE SPACE TELESCOPE'
      -48         'HST'
      -53         'MARS PATHFINDER'
      -53         'MPF'
      -53         'MARS ODYSSEY'
      -53         'MARS SURVEYOR 01 ORBITER'
      -55         'ULYSSES'
      -58         'VSOP'
      -58         'HALCA'
      -59         'RADIOASTRON'
      -66         'VEGA 1'
      -67         'VEGA 2'
      -70         'DEEP IMPACT IMPACTOR SPACECRAFT'
      -74         'MRO'
      -74         'MARS RECON ORBITER'
      -77         'GLL'
      -77         'GALILEO ORBITER'
      -78         'GIOTTO'
      -79         'SPITZER'
      -79         'SPACE INFRARED TELESCOPE FACILITY'
      -79         'SIRTF'
      -81         'CASSINI ITL'
      -82         'CAS'
      -82         'CASSINI'
      -84         'PHOENIX'
      -90         'CASSINI SIMULATION'
      -93         'NEAR EARTH ASTEROID RENDEZVOUS'
      -93         'NEAR'
      -94         'MO'
      -94         'MARS OBSERVER'
      -94         'MGS'
      -94         'MARS GLOBAL SURVEYOR'
      -95         'MGS SIMULATION'
      -97         'TOPEX/POSEIDON'
      -98         'NEW HORIZONS'
      -107        'TROPICAL RAINFALL MEASURING MISSION'
      -107        'TRMM'
      -112        'ICE'
      -116        'MARS POLAR LANDER'
      -116        'MPL'
      -127        'MARS CLIMATE ORBITER'
      -127        'MCO'
      -130        'MUSES-C'
      -130        'HAYABUSA'
      -131        'SELENE'
      -135        'DRTS-W'
      -140        'DEEP IMPACT FLYBY SPACECRAFT'
      -142        'TERRA'
      -142        'EOS-AM1'
      -146        'LUNAR-A'
      -150        'CASSINI PROBE'
      -150        'HUYGENS PROBE'
      -150        'CASP'
      -151        'AXAF'
      -154        'AQUA'
      -159        'EUROPA ORBITER'
      -164        'YOHKOH'
      -164        'SOLAR-A'
      -165        'MAP'
      -166        'IMAGE'
      -172        'SPACETECH-3 COMBINER'
      -174        'PLUTO-KUIPER EXPRESS'
      -175        'PLUTO-KUIPER EXPRESS SIMULATION'
      -178        'PLANET-B'
      -178        'NOZOMI'
      -183        'CLUSTER 1'
      -185        'CLUSTER 2'
      -188        'MUSES-B'
      -190        'SIM'
      -194        'CLUSTER 3'
      -196        'CLUSTER 4'
      -198        'INTEGRAL'
      -200        'CONTOUR'
      -203        'DAWN'
      -205        'SPACETECH-3 COLLECTOR'
      -226        'ROSETTA'
      -227        'KEPLER'
      -228        'GLL PROBE'
      -228        'GALILEO PROBE'
      -234        'STEREO AHEAD'
      -235        'STEREO BEHIND'
      -236        'MESSENGER'
      -238        'SMART1'
      -238        'SM1'
      -238        'S1'
      -238        'SMART-1'
      -248        'VEX'
      -248        'VENUS EXPRESS'
      -253        'OPPORTUNITY'
      -253        'MER-1'
      -254        'SPIRIT'
      -254        'MER-2'
      -486        'HERSCHEL'
      -489        'PLANCK'
      -500        'RSAT'
      -500        'SELENE Relay Satellite'
      -500        'SELENE Rstar'
      -500        'Rstar'
      -502        'VSAT'
      -502        'SELENE VLBI Radio Satellite'
      -502        'SELENE VRAD Satellite'
      -502        'SELENE Vstar'
      -502        'Vstar'
      -550        'MARS-96'
      -550        'M96'
      -550        'MARS 96'
      -550        'MARS96'


Earth Orbiting Spacecraft.



If an Earth orbiting spacecraft lacks a DSN identification code, the NAIF ID is derived from the tracking ID assigned to it by the US Space Command via:

      NAIF ID = -100000 - US Space Command code
For example US Space Command assigned the code 15427 to the NOAA 9 spacecraft. This code corresponds to the NAIF ID -115427.



Comet Shoemaker Levy 9



In July, 1992 Comet Shoemaker Levy 9 passed close enough to the planet Jupiter that it was torn apart by gravitational tidal forces. As a result it became a satellite of Jupiter. However, in July 1994 the remnants of Shoemaker Levy 9 collided with Jupiter. Consequently, the fragments existed as satellites of Jupiter for only two years. These fragments were given the NAIF ID's listed below. Unfortunately, there have been two competing conventions selected for identifying the fragments of the comet. In one convention the fragments have been assigned numbers 1 through 21. In the second convention the fragments have been assigned letters A through W (with I and O unused). To add to the confusion, the ordering for the numbers is reversed from the letter ordering. Fragment 21 corresponds to letter A; fragment 20 to letter B and so on. Fragment A was the first of the fragments to collide with Jupiter; fragment W was the last to collide with Jupiter.

The original fragments P and Q subdivided further creating the fragments P2 and Q1.

      NAIF ID     NAME                    SHOEMAKER-LEVY 9 FRAGMENT
      ________    ____________________    _________________________
      50000001    'SHOEMAKER-LEVY 9-W'    FRAGMENT 1
      50000002    'SHOEMAKER-LEVY 9-V'    FRAGMENT 2
      50000003    'SHOEMAKER-LEVY 9-U'    FRAGMENT 3
      50000004    'SHOEMAKER-LEVY 9-T'    FRAGMENT 4
      50000005    'SHOEMAKER-LEVY 9-S'    FRAGMENT 5
      50000006    'SHOEMAKER-LEVY 9-R'    FRAGMENT 6
      50000007    'SHOEMAKER-LEVY 9-Q'    FRAGMENT 7
      50000008    'SHOEMAKER-LEVY 9-P'    FRAGMENT 8
      50000009    'SHOEMAKER-LEVY 9-N'    FRAGMENT 9
      50000010    'SHOEMAKER-LEVY 9-M'    FRAGMENT 10
      50000011    'SHOEMAKER-LEVY 9-L'    FRAGMENT 11
      50000012    'SHOEMAKER-LEVY 9-K'    FRAGMENT 12
      50000013    'SHOEMAKER-LEVY 9-J'    FRAGMENT 13
      50000014    'SHOEMAKER-LEVY 9-H'    FRAGMENT 14
      50000015    'SHOEMAKER-LEVY 9-G'    FRAGMENT 15
      50000016    'SHOEMAKER-LEVY 9-F'    FRAGMENT 16
      50000017    'SHOEMAKER-LEVY 9-E'    FRAGMENT 17
      50000018    'SHOEMAKER-LEVY 9-D'    FRAGMENT 18
      50000019    'SHOEMAKER-LEVY 9-C'    FRAGMENT 19
      50000020    'SHOEMAKER-LEVY 9-B'    FRAGMENT 20
      50000021    'SHOEMAKER-LEVY 9-A'    FRAGMENT 21
      50000022    'SHOEMAKER-LEVY 9-Q1'   FRAGMENT 7A
      50000023    'SHOEMAKER-LEVY 9-P2'   FRAGMENT 8B


Comets



ID codes for periodic comets begin at 1000001 and continue in sequence indefinitely. (The current numbering scheme assumes that no need for more than one million comet ID codes.) The current list of periodic comets and their ID codes are given below. As new periodic comets are discovered, this list will be expanded. The ID codes for a new comet will be formed by adding one to the last comet ID in the current SPICE list. As you can see the first portion of the list is in alphabetical order. However, this pattern breaks down at ID code 1000112. This reflects the fact that new periodic comets were discovered after identification of the first 111. If you don't find the comet you are interested in the first 111 comets listed look at the last 28 to see if you can find the comet of interest.

Finally, note that Comet Shoemaker Levy 9 is included in this list (ID code 1000130) though it is no longer a comet, periodic or otherwise. It was an identified periodic comet prior to its breakup, which accounts for its inclusion in this list.

      NAIF ID     NAME
      ________    ____________________
      1000001     'AREND'
      1000002     'AREND-RIGAUX'
      1000003     'ASHBROOK-JACKSON'
      1000004     'BOETHIN'
      1000005     'BORRELLY'
      1000006     'BOWELL-SKIFF'
      1000007     'BRADFIELD'
      1000008     'BROOKS 2'
      1000009     'BRORSEN-METCALF'
      1000010     'BUS'
      1000011     'CHERNYKH'
      1000012     '67P/CHURYUMOV-GERASIMENKO (1969 R1)'
      1000012     'CHURYUMOV-GERASIMENKO'
      1000013     'CIFFREO'
      1000014     'CLARK'
      1000015     'COMAS SOLA'
      1000016     'CROMMELIN'
      1000017     'D''ARREST'
      1000018     'DANIEL'
      1000019     'DE VICO-SWIFT'
      1000020     'DENNING-FUJIKAWA'
      1000021     'DU TOIT 1'
      1000022     'DU TOIT-HARTLEY'
      1000023     'DUTOIT-NEUJMIN-DELPORTE'
      1000024     'DUBIAGO'
      1000025     'ENCKE'
      1000026     'FAYE'
      1000027     'FINLAY'
      1000028     'FORBES'
      1000029     'GEHRELS 1'
      1000030     'GEHRELS 2'
      1000031     'GEHRELS 3'
      1000032     'GIACOBINI-ZINNER'
      1000033     'GICLAS'
      1000034     'GRIGG-SKJELLERUP'
      1000035     'GUNN'
      1000036     'HALLEY'
      1000037     'HANEDA-CAMPOS'
      1000038     'HARRINGTON'
      1000039     'HARRINGTON-ABELL'
      1000040     'HARTLEY 1'
      1000041     'HARTLEY 2'
      1000042     'HARTLEY-IRAS'
      1000043     'HERSCHEL-RIGOLLET'
      1000044     'HOLMES'
      1000045     'HONDA-MRKOS-PAJDUSAKOVA'
      1000046     'HOWELL'
      1000047     'IRAS'
      1000048     'JACKSON-NEUJMIN'
      1000049     'JOHNSON'
      1000050     'KEARNS-KWEE'
      1000051     'KLEMOLA'
      1000052     'KOHOUTEK'
      1000053     'KOJIMA'
      1000054     'KOPFF'
      1000055     'KOWAL 1'
      1000056     'KOWAL 2'
      1000057     'KOWAL-MRKOS'
      1000058     'KOWAL-VAVROVA'
      1000059     'LONGMORE'
      1000060     'LOVAS 1'
      1000061     'MACHHOLZ'
      1000062     'MAURY'
      1000063     'NEUJMIN 1'
      1000064     'NEUJMIN 2'
      1000065     'NEUJMIN 3'
      1000066     'OLBERS'
      1000067     'PETERS-HARTLEY'
      1000068     'PONS-BROOKS'
      1000069     'PONS-WINNECKE'
      1000070     'REINMUTH 1'
      1000071     'REINMUTH 2'
      1000072     'RUSSELL 1'
      1000073     'RUSSELL 2'
      1000074     'RUSSELL 3'
      1000075     'RUSSELL 4'
      1000076     'SANGUIN'
      1000077     'SCHAUMASSE'
      1000078     'SCHUSTER'
      1000079     'SCHWASSMANN-WACHMANN 1'
      1000080     'SCHWASSMANN-WACHMANN 2'
      1000081     'SCHWASSMANN-WACHMANN 3'
      1000082     'SHAJN-SCHALDACH'
      1000083     'SHOEMAKER 1'
      1000084     'SHOEMAKER 2'
      1000085     'SHOEMAKER 3'
      1000086     'SINGER-BREWSTER'
      1000087     'SLAUGHTER-BURNHAM'
      1000088     'SMIRNOVA-CHERNYKH'
      1000089     'STEPHAN-OTERMA'
      1000090     'SWIFT-GEHRELS'
      1000091     'TAKAMIZAWA'
      1000092     'TAYLOR'
      1000093     'TEMPEL 1'
      1000094     'TEMPEL 2'
      1000095     'TEMPEL-TUTTLE'
      1000096     'TRITTON'
      1000097     'TSUCHINSHAN 1'
      1000098     'TSUCHINSHAN 2'
      1000099     'TUTTLE'
      1000100     'TUTTLE-GIACOBINI-KRESAK'
      1000101     'VAISALA 1'
      1000102     'VAN BIESBROECK'
      1000103     'VAN HOUTEN'
      1000104     'WEST-KOHOUTEK-IKEMURA'
      1000105     'WHIPPLE'
      1000106     'WILD 1'
      1000107     'WILD 2'
      1000108     'WILD 3'
      1000109     'WIRTANEN'
      1000110     'WOLF'
      1000111     'WOLF-HARRINGTON'
      1000112     'LOVAS 2'
      1000113     'URATA-NIIJIMA'
      1000114     'WISEMAN-SKIFF'
      1000115     'HELIN'
      1000116     'MUELLER'
      1000117     'SHOEMAKER-HOLT 1'
      1000118     'HELIN-ROMAN-CROCKETT'
      1000119     'HARTLEY 3'
      1000120     'PARKER-HARTLEY'
      1000121     'HELIN-ROMAN-ALU 1'
      1000122     'WILD 4'
      1000123     'MUELLER 2'
      1000124     'MUELLER 3'
      1000125     'SHOEMAKER-LEVY 1'
      1000126     'SHOEMAKER-LEVY 2'
      1000127     'HOLT-OLMSTEAD'
      1000128     'METCALF-BREWINGTON'
      1000129     'LEVY'
      1000130     'SHOEMAKER-LEVY 9'
      1000131     'HYAKUTAKE'
      1000132     'HALE-BOPP'


Asteroids



ID codes for numbered asteroids listed in the JPL Asteroid and Comet Catalog [166.0] are determined via the algorithm:

      NAIF ID code = 2000000 + JPL Asteroid number
For example, asteroid Yeomans (2956) has NAIF ID number 2002956. The complete list of asteroids is far too numerous (over 4000 identified asteroids) to include in this document. However, we include the NAIF ID codes for the most commonly requested asteroids:

      NAIF ID     NAME
      ________    ____________________
      9511010     'GASPRA'
      2431010     'IDA'
      2431011     'DACTYL'
      2000001     'CERES'
      2000004     'VESTA'
      2000216     'KLEOPATRA'
      2000433     'EROS'
      2000253     'MATHILDE'
      2009969     '1992KD'
      2009969     'BRAILLE'
      2004015     'WILSON-HARRINGTON'
      2025143     'ITOKAWA'
There are three exceptions to the rule---asteroids Gaspra, Ida and Ida's satellite Dactyl, visited by the Galileo spacecraft. The ID codes for these asteroids were determined using an older numbering convention now abandoned by the SPICE system.

The orbit of Dactyl has not been completely determined at the time of this writing. However, in anticipation of this determination, Dactyl has been assigned the NAIF ID code 2431011.

Note that if more than 431010 asteroids are ever identified and cataloged there will arise a conflict between the new numbering system and the ID code for Ida. At that time NAIF (or its successor) will need to add another exception to the asteroid numbering system.



Ground Stations.



The SPICE system accommodates ephemerides for tracking stations and landed spacecraft. Currently five earth tracking station sites are supported: Goldstone, Canberra, Madrid, Usuda, and Parkes. Note that these refer only to the general geographic location of the various tracking sites. IDs for the individual antennas at a given site are assigned when more than one antenna is present.

The following NAIF ID codes are assigned.

      NAIF ID     NAME
      ________    ____________________
      398989      'NOTO'
      398990      'NEW NORCIA'
      399001      'GOLDSTONE'
      399002      'CANBERRA'
      399003      'MADRID'
      399004      'USUDA'
      399005      'DSS-05'
      399005      'PARKES'
      399012      'DSS-12'
      399013      'DSS-13'
      399014      'DSS-14'
      399015      'DSS-15'
      399016      'DSS-16'
      399017      'DSS-17'
      399023      'DSS-23'
      399024      'DSS-24'
      399025      'DSS-25'
      399026      'DSS-26'
      399027      'DSS-27'
      399028      'DSS-28'
      399033      'DSS-33'
      399034      'DSS-34'
      399042      'DSS-42'
      399043      'DSS-43'
      399045      'DSS-45'
      399046      'DSS-46'
      399049      'DSS-49'
      399053      'DSS-53'
      399054      'DSS-54'
      399055      'DSS-55'
      399061      'DSS-61'
      399063      'DSS-63'
      399064      'DSS-64'
      399065      'DSS-65'
      399066      'DSS-66'


Inertial and Non-inertial Reference Frames



Please refer to the Frames Required Reading document, frames.req, for detailed information on the implementation of reference frames in the SPICE system.



Spacecraft Clocks.




The ID code used to identify the on-board clock of a spacecraft (spacecraft clock or SCLK) in SPICE software is the same as the ID code of the spacecraft. This convention assumes that only one clock is used on-board a spacecraft to control all observations and spacecraft functions. However, missions are envisioned in which instruments may have clocks not tightly coupled to the primary spacecraft control clock. When this situation occurs, the correspondence between clocks and spacecraft will be broken and more than one clock ID code will be associated with a mission. It is anticipated that the I-kernel will contain the information needed to associate the appropriate clock with a particular instrument.



Instruments




With regards to a spacecraft, the term ``instrument'' means a science instrument or vehicle structure to which the concept of orientation is applicable.

NAIF, in cooperation with the science teams from each flight project, assigns ID codes to a vehicle instrument. The instruments are simply enumerated via some project convention to arrive at an ''instrument number.'' The NAIF ID code for an instrument derives from the instrument number via the function:

      NAIF instrument code = (s/c code)*(1000) - instrument number
This allows for 1000 instrument assignments on board a spacecraft. An application of the instrument ID concept applied to the Voyager 2 vehicle (ID -32):

Use SPICE text kernels (usually Instrument or Frames kernels) to define the instrument name/ID mappings.

gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.