Index of Functions: A B C D E F G H I J K L M N O P Q R S T U V W X
Index Page spksub_c
Table of contents
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
       spksub_c ( S/P Kernel, subset )

       void spksub_c ( SpiceInt            handle,
                       SpiceDouble         descr[5],
                       ConstSpiceChar    * ident,
                       SpiceDouble         begin,
                       SpiceDouble         end,
                       SpiceInt            newh    )
#### Abstract
       Extract a subset of the data in an SPK segment into a
       separate segment.
#### Required_Reading
       SPK
       DAF
#### Keywords
       EPHEMERIS
#### Brief_I/O
       VARIABLE  I/O  DESCRIPTION
       --------  ---  --------------------------------------------------
       handle     I   Handle of source segment.
       descr      I   Descriptor of source segment.
       ident      I   Identifier of source segment.
       begin      I   Beginning (initial epoch) of subset.
       end        I   End (final epoch) of subset.
       newh       I   Handle of new segment.
#### Detailed_Input
       handle,
       descr,
       ident       are the file handle assigned to an SPK file, the
                   descriptor for a segment within the file, and the
                   identifier for that segment. Together they determine a
                   complete set of ephemeris data, from which a subset is to
                   be extracted.

       begin,
       end         are the initial and final epochs (ephemeris time) of the
                   subset.

       newh        is the file handle assigned to the file in which the new
                   segment is to be written. The file must be open for write
                   access. `newh' and `handle' may refer to the same file.
#### Detailed_Output
       See -Files section.
#### Parameters
       None.
#### Exceptions
       1)  If the condition

              alpha  <=  begin  <=  end  <=  omega

           is not satisfied (where `alpha' and `omega' are the initial and
           final epochs of the segment respectively), the error
           SPICE(SPKNOTASUBSET) is signaled by a routine in the call tree
           of this routine.

       2)  If the segment type is not supported by the current version of
           spksub_c, the error SPICE(SPKTYPENOTSUPP) is signaled by a
           routine in the call tree of this routine.

       3)  If the `ident' input string pointer is null, the error
           SPICE(NULLPOINTER) is signaled.

       4)  If the `ident' input string has zero length, the error
           SPICE(EMPTYSTRING) is signaled.
#### Files
       A new segment, which contains a subset of the data in the
       segment specified by `descr' and `handle', is written to the SPK
       file attached to `newh'.
#### Particulars
       Sometimes, the segments in official source files---planetary
       Developmental Ephemeris (DE) files, archival spacecraft
       ephemeris files, and so on---contain more data than is needed
       by a particular user. spksub_c allows a user to extract from a
       segment the smallest amount of ephemeris data sufficient to
       cover a specific interval.

       The new segment is written with the same identifier as the
       original segment, and with the same descriptor, with the
       following components changed:

       1)  `alpha' and `omega' (dc[0] and dc[1]) are assigned the values
           specified by `begin' and `end'.

       2)  The beginning and ending segment addresses (ic[4] and ic[5])
           are changed to reflect the location of the new segment.
#### Examples
       In the following code fragment, the descriptor for each segment
       in a source SPK file is examined. For each segment that covers
       a target interval, the smallest possible subset is extracted into
       a custom SPK file.

       Assume that the source and custom files have been opened, for
       read and write access, with handles srchan and custhan respectively.

          #include "SpiceUsr.h"
               .
               .
               .
          dafbfs_c ( srchan );
          daffna_c ( &found );

          while ( found )
          {
             dafgs_c ( descr );
             dafus_c ( descr, 2, 6, dc, ic );

             if (  ( dc[0] <= begin ) && ( end <= dc[1] )  )
             {
                dafgn_c  ( ident );
                spksub_c ( srchan, descr, ident, begin, end, custhan );
             }

             daffna_c ( &found );
          }
#### Restrictions
       1)  There is no way for spksub_c to verify that the descriptor and
           identifier are the original ones for the segment. Changing
           the descriptor can cause the data in the new segment to be
           evaluated incorrectly; changing the identifier can destroy
           the path from the data back to its original source.
#### Literature_References
       None.
#### Author_and_Institution
       N.J. Bachman        (JPL)
       J. Diaz del Rio     (ODC Space)
       K.R. Gehringer      (JPL)
       J.M. Lynch          (JPL)
       W.L. Taber          (JPL)
       R.E. Thurman        (JPL)
       I.M. Underwood      (JPL)
#### Version
       -CSPICE Version 1.0.1, 05-AUG-2021 (JDR)

           Edited the header to comply with NAIF standard. Moved SPK required
           reading from -Literature_References to -Required_Reading section.

       -CSPICE Version 1.0.0, 29-JUN-1999 (KRG) (WLT) (NJB) (JML) (RET) (IMU)
#### Index_Entries
       subset of SPK file
#### Link to routine spksub_c source file spksub_c.c

    Fri Dec 31 18:41:13 2021