spklef_c |
Table of contents
Procedurespklef_c ( S/P Kernel, Load ephemeris file ) void spklef_c ( ConstSpiceChar * fname, SpiceInt * handle ) AbstractLoad an ephemeris file for use by the readers. Return that file's handle, to be used by other SPK routines to refer to the file. Required_ReadingSPK KeywordsEPHEMERIS FILES Brief_I/OVARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- fname I Name of the file to be loaded. handle O Loaded file's handle. Detailed_Inputfname is a string containing the name of the file to be loaded. Detailed_Outputhandle is an integer handle assigned to the file upon loading. Almost every other SPK routine will subsequently use this number to refer to the file. ParametersFTSIZE is the maximum number of SPK files that may be loaded simultaneously under any circumstances. FTSIZE is currently set to match the maximum number of DAF files that may be loaded simultaneously. Exceptions1) If an attempt is made to open more DAF files than is specified by the parameter FTSIZE in the DAF subsystem, an error is signaled by a routine in the call tree of this routine. 2) If an attempt is made to load more files than is specified by the local parameter FTSIZE, and if the DAF system has room to load another file, the error SPICE(SPKFILETABLEFULL) is signaled by a routine in the call tree of this routine. The current setting of FTSIZE does not allow this situation to arise: the DAF system will trap the error before this routine has the chance. 3) If the `fname' input string pointer is null, the error SPICE(NULLPOINTER) is signaled. 4) If the `fname' input string has zero length, the error SPICE(EMPTYSTRING) is signaled. FilesA file specified by `fname', to be loaded. The file is assigned a handle by spklef_c, which will be used by most other routines to refer to it. ParticularsLoading an SPK file makes the file's data accessible to the CSPICE SPK readers spkezr_c and spkez_c. The maximum number of SPK files that may be loaded at any time is given by the parameter FTSIZE. After this limit it reached, it is necessary to unload an SPK file before another can be loaded. The function spkuef_c is provided to unload files from the SPK system. ExamplesThe numerical results shown for this example may differ across platforms. The results depend on the SPICE kernels used as input, the compiler and supporting libraries, and the machine specific arithmetic implementation. 1) Load a planetary ephemeris SPK; then look up a series of geometric states of the Earth relative to the solar system barycenter, referenced to the J2000 frame. Use the SPK kernel below to load the required ephemerides for the Earth and the Earth Barycenter relative to the solar system barycenter. de405.bsp Example code begins here. /. Program spklef_ex1 ./ #include <stdio.h> #include "SpiceUsr.h" int main( ) { /. Local constants. ./ #define MAXITR 5 #define ET0 -315576000.0 #define STEP 3600.0 #define ABCORR "NONE" #define FRAME "J2000" #define OBSERVER "SOLAR SYSTEM BARYCENTER" #define SPK "de405.bsp" #define TARGET "EARTH" /. Local variables. ./ SpiceInt handle; SpiceInt i; SpiceDouble et; SpiceDouble lt; SpiceDouble state [6]; /. Load the SPK file. ./ spklef_c ( SPK, &handle ); /. Step through a series of epochs, looking up a state vector at each one. ./ for ( i = 0; i < MAXITR; i++ ) { et = ET0 + i*STEP; spkezr_c ( TARGET, et, FRAME, ABCORR, OBSERVER, state, < ); printf( "\net = %20.10f\n\n", et ); printf( "J2000 x-position (km): %20.10f\n", state[0] ); printf( "J2000 y-position (km): %20.10f\n", state[1] ); printf( "J2000 z-position (km): %20.10f\n", state[2] ); printf( "J2000 x-velocity (km/s): %20.10f\n", state[3] ); printf( "J2000 y-velocity (km/s): %20.10f\n", state[4] ); printf( "J2000 z-velocity (km/s): %20.10f\n\n", state[5] ); } /. Unload the SPK kernel. This isn't necessary in a stand- alone program, but it's good practice in subroutines because it frees program and system resources. ./ spkuef_c( handle ); return ( 0 ); } When this program was executed on a Mac/Intel/cc/64-bit platform, the output was: et = -315576000.0000000000 J2000 x-position (km): -26772058.9514643848 J2000 y-position (km): 132760135.1677220613 J2000 z-position (km): 57557579.2735445350 J2000 x-velocity (km/s): -29.7772753957 J2000 y-velocity (km/s): -5.0656884328 J2000 z-velocity (km/s): -2.1979102802 et = -315572400.0000000000 J2000 x-position (km): -26879249.7439419106 J2000 y-position (km): 132741862.7243705541 J2000 z-position (km): 57549651.2066062242 J2000 x-velocity (km/s): -29.7731620671 J2000 y-velocity (km/s): -5.0856683968 J2000 z-velocity (km/s): -2.2065710777 et = -315568800.0000000000 J2000 x-position (km): -26986425.6981768459 J2000 y-position (km): 132723518.3595090210 J2000 z-position (km): 57541691.9637668282 J2000 x-velocity (km/s): -29.7690319295 J2000 y-velocity (km/s): -5.1056448242 J2000 z-velocity (km/s): -2.2152302239 et = -315565200.0000000000 J2000 x-position (km): -27093586.7536762133 J2000 y-position (km): 132705102.0859030634 J2000 z-position (km): 57533701.5509854183 J2000 x-velocity (km/s): -29.7648849936 J2000 y-velocity (km/s): -5.1256176961 J2000 z-velocity (km/s): -2.2238877108 et = -315561600.0000000000 J2000 x-position (km): -27200732.8499865979 J2000 y-position (km): 132686613.9163857996 J2000 z-position (km): 57525679.9742503539 J2000 x-velocity (km/s): -29.7607212708 J2000 y-velocity (km/s): -5.1455869940 J2000 z-velocity (km/s): -2.2325435301 RestrictionsNone. Literature_ReferencesNone. Author_and_InstitutionN.J. Bachman (JPL) J. Diaz del Rio (ODC Space) B.V. Semenov (JPL) E.D. Wright (JPL) Version-CSPICE Version 2.1.0, 10-AUG-2021 (JDR) Changed the input argument name "filename" to "fname" for consistency with other routines. Edited the header to comply with NAIF standard. Created complete code example from existing code fragment, adding a call to "spkuef_c" for unloading the SPK kernel. Added -Parameters section providing information about FTSIZE. Moved SPK required reading from -Literature_References to -Required_Reading section. Added entries #3 and #4 to -Exceptions section. -CSPICE Version 2.0.3, 04-FEB-2008 (BVS) Removed duplicate header section '-Exceptions'. -CSPICE Version 2.0.2, 16-JAN-2008 (EDW) Corrected typos in header titles: Detailed Input to -Detailed_Input Detailed Output to -Detailed_Output -CSPICE Version 2.0.1, 10-NOV-2006 (EDW) Added -Keywords and -Parameters section headers. Reordered section headers. -CSPICE Version 2.0.0, 08-FEB-1998 (NJB) Input argument fname changed to type ConstSpiceChar *. References to C2F_CreateStr_Sig were removed; code was cleaned up accordingly. String checks are now done using the macro CHKFSTR. -CSPICE Version 1.0.0, 25-OCT-1997 (NJB) (EDW) Index_Entriesload SPK ephemeris file |
Fri Dec 31 18:41:12 2021