void dafps_c ( SpiceInt nd,
SpiceInt ni,
ConstSpiceDouble * dc,
ConstSpiceInt * ic,
SpiceDouble * sum )
Pack (assemble) an array summary from its double precision and
integer components.
DAF
CONVERSION
FILES
Variable I/O Description
-------- --- --------------------------------------------------
nd I Number of double precision components.
ni I Number of integer components.
dc I Double precision components.
ic I Integer components.
sum O Array summary.
nd is the number of double precision components in
the summary to be packed.
ni is the number of integer components in the summary.
dc are the double precision components of the summary.
ic are the integer components of the summary.
sum is an array summary containing the components in `dc'
and `ic'. This identifies the contents and location of
a single array within a DAF.
None.
Error free.
1) If ND is zero or negative, no DP components are stored.
2) If NI is zero or negative, no integer components are stored.
3) If the total size of the summary is greater than 125 double
precision words, some components may not be stored.
None.
The components of array summaries are packed into double
precision arrays for reasons outlined in [1]. Two routines,
dafps_c (pack summary) and dafus_c (unpack summary) are provided
for packing and unpacking summaries.
The total size of the summary is
(NI - 1)
ND + -------- + 1
2
double precision words (where ND, NI are nonnegative).
1) Replace the body ID code -999 with -1999 in every descriptor
of an SPK file.
#include <SpiceUsr.h>
int main ( int argc, char **argv )
{
#define ND 2
#define NI 6
#define DSCSIZ 5
#define NEWCODE ( -1999 )
#define OLDCODE ( -999 )
SpiceBoolean found;
SpiceInt handle;
SpiceInt ic [ NI ];
SpiceDouble dc [ ND ];
SpiceDouble sum [ DSCSIZ ];
/.
Open for writing the SPK file specified on the command line.
./
dafopw_c ( argv[1], &handle );
/.
Search the file in forward order.
./
dafbfs_c ( handle );
daffna_c ( &found );
while ( found )
{
/.
Fetch and unpack the descriptor (aka summary)
of the current segment.
./
dafgs_c ( sum );
dafus_c ( sum, ND, NI, dc, ic );
/.
Replace ID codes if necessary.
./
if ( ic[0] == OLDCODE )
{
ic[0] = NEWCODE;
}
if ( ic[1] == OLDCODE )
{
ic[1] = NEWCODE;
}
/.
Re-pack the descriptor; replace the descriptor
in the file.
./
dafps_c ( ND, NI, dc, ic, sum );
dafrs_c ( sum );
/.
Find the next segment.
./
daffna_c ( &found );
}
/.
Close the file.
./
dafcls_c ( handle );
return ( 0 );
}
None.
None.
N.J. Bachman (JPL)
I.M. Underwood (JPL)
-CSPICE Version 1.0.0, 23-NOV-2004 (NJB)
pack daf summary
Link to routine dafps_c source file dafps_c.c
|