Index Page
bods2c_c
A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 

Procedure
Abstract
Required_Reading
Keywords
Brief_I/O
Detailed_Input
Detailed_Output
Parameters
Exceptions
Files
Particulars
Examples
Restrictions
Literature_References
Author_and_Institution
Version
Index_Entries

Procedure

   void bods2c_c ( ConstSpiceChar  * name,
                   SpiceInt        * code,
                   SpiceBoolean    * found )

Abstract

   Translate a string containing a body name or ID code to an integer
   code.

Required_Reading

   NAIF_IDS

Keywords

   BODY
   CONVERSION
   ID
   NAME
   UTILITY


Brief_I/O

   Variable  I/O  Description
   --------  ---  --------------------------------------------------
   name       I   String to be translated to an ID code.
   code       O   Integer ID code corresponding to `name'.
   found      O   Flag indicating whether translation succeeded.

Detailed_Input

   name        is a string containing the name or ID code of a body or
               object, such as a planet, satellite, comet, asteroid,
               barycenter, DSN station, spacecraft, or instrument.

               If `name' contains the name of a body or object, that
               name must be "known" to the SPICE system, whether
               through hard-coded registration or run-time registration
               in the SPICE kernel pool.

               Case and leading and trailing blanks in `name'
               are not significant.  However when a name is made
               up of more than one word, they must be separated by
               at least one blank.  That is, all of the following
               strings are equivalent names:

                       "JUPITER BARYCENTER"
                       "Jupiter Barycenter"
                       "JUPITER BARYCENTER   "
                       "JUPITER    BARYCENTER"
                       "   JUPITER BARYCENTER"

               However, "JUPITERBARYCENTER" is not equivalent to
               the names above.
 
               If NAME is a string representation of an integer,
               for example

                  "399"

               the string will be translated to the equivalent SpiceInt
               datum.  The input integer need not be one recognized by
               the SPICE system:  the integer need not be a built-in
               NAIF ID code, nor need it be associated with a name via
               run-time registration.

Detailed_Output

   code         is, if `name' contains the name of a body or object,
                the corresponding NAIF or user-defined integer ID code,
                as determined by the SPICE name-code mapping subsystem.
                If the input argument `name' represents an integer, the
                same integer is returned in `code'.
 
               `code' is assigned a value only if `found' is returned
               as SPICETRUE; otherwise it is returned unchanged.
                 

   found       is SPICETRUE if `name' has a translation.  Otherwise,
               `found' is SPICEFALSE.

Parameters

   None.

Exceptions

   1) The error SPICE(EMPTYSTRING) is signaled if the input string
      `name' does not contain at least one character, since the input
      string cannot be converted to a Fortran-style string in this
      case.
      
   2) The error SPICE(NULLPOINTER) is signaled if the input string
      pointer `name' is null.

Files

   Body-name mappings may be defined at run time by loading text
   kernels containing kernel variable assignments of the form

      NAIF_BODY_NAME += ( <name 1>, ... )
      NAIF_BODY_CODE += ( <code 1>, ... )

   See NAIF_IDs for details.

Particulars

   bods2c_c is one of five related subroutines,

      bods2c_c      Body string to code
      bodc2s_c      Body code to string
      bodn2c_c      Body name to code
      bodc2n_c      Body code to name
      boddef_c      Body name/code definition

   bods2c_c, bodc2s_c, bodn2c_c, and bodc2n_c perform translations between 
   body names and their corresponding integer ID codes which are 
   used in SPICE files and routines.

   bods2c_c is a slightly more general version of bodn2c_c: support
   for strings containing ID codes in string format enables a caller
   to identify a body using a string, even when no name is
   associated with that body.

   bodc2s_c is a general version of bodc2n_c; the routine returns either
   the name assigned in the body ID to name mapping or a string
   representation of the CODE value if no mapping exists.

   boddef_c assigns a body name to ID mapping. The mapping has priority 
   in name-to-ID and ID-to-name translations.

   Refer to NAIF_IDs for the list of name/code associations built into
   SPICE, and for details concerning adding new name/code
   associations at run time by loading text kernels.

Examples

   1.  In the following code fragment, bodeul_ returns the Euler
       angles representing the orientation of Jupiter relative to
       the J2000 reference frame. bodeul_ requires the NAIF integer
       ID code for Jupiter, so we use bods2c_c to convert the name to
       its corresponding integer ID code.
 
          bods2c_c ( "JUPITER", &jupid, &found );

          bodeul_  ( &jupid, &et, &ra, &dec, &w, &lambda );

   2.  In this example, we assume that only the set of default 
       name/code pairs has been defined.

       Given these names, bods2c_c will return the following codes:

          Name                           Code              Found?
          ------------------------       ----------        ------
          "EARTH"                               399        Yes
          "  Earth "                            399        Yes
          "399"                                 399        Yes
          " 399 "                               399        Yes
          "EMB"                                   3        Yes
          "3"                                     3        Yes
          "1000000000"                   1000000000        Yes
          "Solar System Barycenter"               0        Yes
          "SolarSystemBarycenter"                 -        No
          "SSB"                                   0        Yes
          "Voyager 2"                           -32        Yes
          "U.S.S. Enterprise"                     -        No
          " "                                     -        No
          "Halley's Comet"                        -        No


       Given these codes, bodc2n_c will return the following names:

        Code           Name                                Found?
        ----------     ------------------------            ------
               399     "EARTH"                             Yes
                 0     "SOLAR SYSTEM BARYCENTER"           Yes
                 3     "EARTH BARYCENTER"                  Yes
               -77     "GALILEO ORBITER"                   Yes
                11      -                                  No
        1000000000      -                                  No

Restrictions

   None.

Literature_References

   None.

Author_and_Institution

   C.H. Acton      (JPL)
   N.J. Bachman    (JPL)
   K.R. Gehringer  (JPL)
   B.V. Semenov    (JPL)

Version

   -CSPICE Version 1.0.2, 16-MAY-2009 (EDW) 

       Edit to Particulars section to document the bodc2s_c routine.

   -CSPICE Version 1.0.1, 27-FEB-2008 (BVS)

       Corrected the contents of the Required_Reading section of 
       the header.

   -CSPICE Version 1.0.0, 23-JUL-2004 (CHA) (NJB) (KRG)

Index_Entries

   body name to code

Link to routine bods2c_c source file bods2c_c.c

Wed Apr  5 17:54:29 2017