void pipool_c ( ConstSpiceChar * name,
SpiceInt n,
ConstSpiceInt * ivals )
This entry point provides toolkit programmers a method for
programmatically inserting integer data into the kernel pool.
None.
POOL
VARIABLE I/O DESCRIPTION
-------- --- --------------------------------------------------
name I The kernel pool name to associate with values.
n I The number of values to insert.
ivals I An array of integers to insert into the pool.
name is the name of the kernel pool variable to associate
with the values supplied in the array ivals. 'name' is
restricted to a length of 32 characters or less.
n is the number of values to insert into the kernel pool.
ivals is an array of integers to insert into the kernel pool.
None.
None.
1) If name is already present in the kernel pool and there
is sufficient room to hold all values supplied in values,
the old values associated with name will be overwritten.
2) If there is not sufficient room to insert a new variable
into the kernel pool and name is not already present in
the kernel pool, the error SPICE(KERNELPOOLFULL) is
signaled by a routine in the call tree to this routine.
3) If there is not sufficient room to insert the values associated
with name, the error SPICE(NOMOREROOM) will be signaled.
4) If the input string pointer name is null, the error
SPICE(NULLPOINTER) will be signaled.
5) If the input string name has length zero, the error
SPICE(EMPTYSTRING) will be signaled.
6) The error 'SPICE(BADVARNAME)' signals if the kernel pool
variable name length exceeds 32.
None.
This entry point provides a programmatic interface for inserting
data into the SPICE kernel pool without reading an external file.
The following example program shows how a topocentric frame for a
point on the surface of the earth may be defined at run time using
pcpool_c, pdpool_c, and pipool_c. In this example, the surface
point is associated with the body code 300000. To facilitate
testing, the location of the surface point coincides with that of
the DSN station DSS-12; the reference frame MYTOPO defined here
coincides with the reference frame DSS-12_TOPO.
#include <stdio.h>
#include "SpiceUsr.h"
int main()
{
/.
The first angle is the negative of the longitude of the
surface point; the second angle is the negative of the
point's colatitude.
./
SpiceDouble angles [3] = { -243.1945102442646,
-54.7000629043147,
180.0 };
SpiceDouble et = 0.0;
SpiceDouble rmat [3][3];
SpiceInt axes [3] = { 3, 2, 3 };
SpiceInt center = 300000;
SpiceInt frclass = 4;
SpiceInt frclsid = 1500000;
SpiceInt frcode = 1500000;
/.
Define the MYTOPO reference frame.
Note that the third argument in the pcpool_c calls is
the length of the final string argument, including the
terminating null character.
./
pipool_c ( "FRAME_MYTOPO", 1, &frcode );
pcpool_c ( "FRAME_1500000_NAME", 1, 7, "MYTOPO" );
pipool_c ( "FRAME_1500000_CLASS", 1, &frclass );
pipool_c ( "FRAME_1500000_CLASS_ID", 1, &frclsid );
pipool_c ( "FRAME_1500000_CENTER", 1, ¢er );
pcpool_c ( "OBJECT_300000_FRAME", 1, 7, "MYTOPO" );
pcpool_c ( "TKFRAME_MYTOPO_RELATIVE", 1, 7, "ITRF93" );
pcpool_c ( "TKFRAME_MYTOPO_SPEC", 1, 7, "ANGLES" );
pcpool_c ( "TKFRAME_MYTOPO_UNITS", 1, 8, "DEGREES" );
pipool_c ( "TKFRAME_MYTOPO_AXES", 3, axes );
pdpool_c ( "TKFRAME_MYTOPO_ANGLES", 3, angles );
/.
Load a high precision binary earth PCK. Also load a
topocentric frame kernel for DSN stations. The file names
shown here are simply examples; users should replace these
with the names of appropriate kernels.
./
furnsh_c ( "earth_000101_060207_051116.bpc" );
furnsh_c ( "earth_topo_050714.tf" );
/.
Look up transformation from DSS-12_TOPO frame to MYTOPO frame.
This transformation should differ by round-off error from
the identity matrix.
./
pxform_c ( "DSS-12_TOPO", "MYTOPO", et, rmat );
printf ( "\n"
"DSS-12_TOPO to MYTOPO transformation at "
"et %23.16e = \n"
"\n"
" %25.16f %25.16f %25.16f\n"
" %25.16f %25.16f %25.16f\n"
" %25.16f %25.16f %25.16f\n",
et,
rmat[0][0], rmat[0][1], rmat[0][2],
rmat[1][0], rmat[1][1], rmat[1][2],
rmat[2][0], rmat[2][1], rmat[2][2] );
return ( 0 );
}
None.
None.
N.J. Bachman (JPL)
W.L. Taber (JPL)
-CSPICE Version 1.2.3, 17-JAN-2014 (NJB)
Updated Index_Entries section.
-CSPICE Version 1.2.2, 10-FEB-2010 (EDW)
Added mention of the restriction on kernel pool variable
names to 32 characters or less.
Reordered header sections to conform to SPICE convention.
-CSPICE Version 1.2.1, 17-NOV-2005 (NJB)
Replaced code fragment in Examples section of header with
smaller, complete program.
-CSPICE Version 1.2.0, 28-AUG-2001 (NJB)
Const-qualified input array ivals.
-CSPICE Version 1.0.0, 03-JUN-1999 (NJB) (WLT)
Set the value of an integer_variable in the kernel_pool
Link to routine pipool_c source file pipool_c.c
|