Table of contents
CSPICE_CCIFRM returns the frame name, frame id, and center associated with
a given frame class and class id.
Given:
frclss the class or type of the frame.
help, frclss
LONG = Scalar
This identifies which subsystem will be used to perform frame
transformations.
clssid the ID code used for the frame within its class.
help, clssid
LONG = Scalar
This may be different from the frame ID code.
the call:
cspice_ccifrm, frclss, clssid, frcode, frname, cent, found
returns:
frcode the frame ID code for the reference frame identified by `frclss'
and `clssid'.
help, frcode
LONG = Scalar
frname the name of the frame identified by `frclss' and `clssid'.
help, frname
STRING = Scalar
If `frname' does not have enough room to hold
the full name of the frame, the name will be truncated
on the right.
cent the body ID code for the center of the reference frame
identified by `frclss' and `clssid'.
help, cent
LONG = Scalar
found True if a valid frame specification corresponding to the input
frame class and frame class ID is available, in which case the
other outputs are valid.
help, found
BOOLEAN = Scalar
Otherwise, `found' is returned with the value False.
None.
Any numerical results shown for this example may differ between
platforms as the results depend on the SPICE kernels used as input
and the machine specific arithmetic implementation.
1) The following code example demonstrates how to find the frame
information about a frame by its ID using cspice_frinfo and
by its class and class ID using cspice_ccifrm.
Example code begins here.
PRO ccifrm_ex1
cspice_namfrm, 'ITRF93', frcode1
cspice_frinfo, frcode1, center1, clss, clss_ID, found
if ~found then begin
message, 'No info found for ITRF93.'
endif
print, 'Frame ITRF93 info:'
print, ' Frame Code: ', frcode1
print, ' Center ID : ', center1
print, ' Class : ', clss
print, ' Class ID : ', clss_ID
cspice_ccifrm, clss, clss_ID, frcode2, frname, center2, found
if ~found then begin
message, 'No info found for type 2 frame 3000.'
endif
print, 'Type 2 frame 3000 info:'
print, ' Frame name: ', frname
print, ' Frame Code: ', frcode2
print, ' Center ID : ', center2
END
When this program was executed on a Mac/Intel/IDL8.x/64-bit
platform, the output was:
Frame ITRF93 info:
Frame Code: 13000
Center ID : 399
Class : 2
Class ID : 3000
Type 2 frame 3000 info:
Frame name: ITRF93
Frame Code: 13000
Center ID : 399
This routine allows the user to determine the frame associated
with a given frame class and class ID code. The kernel pool is
searched first for a matching frame; if no match is found, then
the set of built-in frames is searched.
Since the neither the frame class nor the class ID are primary
keys, searching for matching frames is a linear (and therefore
typically slow) process.
1) This routine assumes that the first frame found with matching
class and class ID is the correct one. SPICE's frame system
does not diagnose the situation where there are multiple,
distinct frames with matching classes and class ID codes, but
this situation could occur if such conflicting frame
specifications are loaded via one or more frame kernels. The
user is responsible for avoiding such frame specification
conflicts.
2) If a frame class assignment is found that associates a string
(as opposed to numeric) value with a frame class keyword, the
error SPICE(INVALIDFRAMEDEF) is signaled by a routine in the
call tree of this routine.
3) If a frame class assignment is found that matches the input
class, but a corresponding class ID assignment is not
found in the kernel pool, the error SPICE(INVALIDFRAMEDEF)
is signaled by a routine in the call tree of this routine.
4) If a frame specification is found in the kernel pool with
matching frame class and class ID, but either the frame name
or frame ID code are not found, the error
SPICE(INVALIDFRAMEDEF) is signaled by a routine in the call
tree of this routine.
5) If a frame specification is found in the kernel pool with
matching frame class and class ID, but the frame center
is not found, an error is signaled by a routine
in the call tree of this routine.
6) If any of the input arguments, `frclss' or `clssid', is
undefined, an error is signaled by the IDL error handling
system.
7) If any of the input arguments, `frclss' or `clssid', is not of
the expected type, or it does not have the expected dimensions
and size, an error is signaled by the Icy interface.
8) If any of the output arguments, `frcode', `frname', `cent' or
`found', is not a named variable, an error is signaled by the
Icy interface.
None.
1) See item (1) in the -Exceptions section above.
ICY.REQ
FRAMES.REQ
None.
J. Diaz del Rio (ODC Space)
E.D. Wright (JPL)
-Icy Version 1.1.0, 26-AUG-2021 (JDR)
Changed the output argument name "center" to "cent" for consistency
with other routines.
Edited the -Examples section to comply with NAIF standard. Added
example's problem statement and reformatted example's output.
Added -Parameters, -Exceptions, -Files, -Restrictions,
-Literature_References and -Author_and_Institution sections.
Removed reference to the routine's corresponding CSPICE header from
-Abstract section.
Added arguments' type and size information in the -I/O section.
-Icy Version 1.0.0, 01-JAN-2017 (EDW)
Find info associated with a frame class and class id
Map frame class and class id to frame info
Map frame class and class id to frame name, id, and center
|