Index Page
cspice_ekacei
A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 

Abstract
I/O
Examples
Particulars
Required Reading
Version
Index_Entries

Abstract


   CSPICE_EKACEI adds data to an integer column in the specified 
   record of an EK file.

   For important details concerning this module's function, please refer to
   the CSPICE routine ekacei_c.

I/O

   
   Given:
   
      handle   the scalar integer referring to an EK file open for 
               write access.
               
      segno    the scalar integer indicating EK segment number
               for the new record.
               
      recno    the scalar integer indicating the index of the new
               record.
               
      column   the string scalar name of the column for the new record.
   
      nvals    the integer number of entries from 'ivals' to add to 
               the new record.
               
      ivals    an array of integer values containing the 
               data values to add to the new record in 'column'.
   
                     Note: 'nvals' specifies the number of 'ivals'
                     entries written to the new record.
   
      isnull   a scalar boolean flagging whether the entry is null, if
               equal to TRUE, cspice_ekaced reserves space for
               record but does not add the record to the EK.
   
   the call:
   
      cspice_ekacei, handle, segno, recno, column, nvals,  $
                     ivals, isnull
   
   adds 'nvals' of 'ivals' to column 'column' in segment 'segno',
   record 'recno', of the EK file referred to by 'handle'.
   

Examples


   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.

   PRO EKACEI_T
   
      ;;
      ;; Constants
      ;;
      EKNAME = 'ekacei.ek'
      IFNAME = 'Test EK/Enjoy'
      NCOLS  = 2
      NROWS  = 5
      NRESVC = 0
      TABLE  = 'SCALAR_DATA'
      MAXVAL = 10
      ivals  = lonarr( MAXVAL )
         
      
      ;;
      ;; Open a new EK file.  For simplicity, we will not 
      ;; reserve any space for the comment area, so the 
      ;; number of reserved comment characters is zero. 
      ;; The constant IFNAME is the internal file name. 
      ;;
      
      if ( cspice_exists (EKNAME) ) then begin
         file_delete, EKNAME
      endif
      
      ;;
      ;; Create and open a new EK file.
      ;;
      cspice_ekopn, EKNAME, IFNAME, NRESVC, handle
      
             
      ;;
      ;;   Set up the table and column names and declarations 
      ;;   for the DATAORDERS segment.  We'll index all of 
      ;;   the columns.  All columns are scalar, so we omit 
      ;;   the size declaration. 
      ;;
      cdecls = strarr(NCOLS)
      cnames = strarr(NCOLS)
      
      ;;
      ;; Define the column names and formats.
      ;;
      cnames[0] = 'INT_COL_1'
      cdecls[0] = 'DATATYPE = INTEGER, INDEXED  = TRUE, ' +$
                  'NULLS_OK = TRUE'
      
      cnames[1] = 'INT_COL_2'
      cdecls[1] = 'DATATYPE = INTEGER, SIZE = VARIABLE, '+$
                  'NULLS_OK = TRUE'
      
      ;;
      ;; Start the segment.
      ;;
      cspice_ekbseg, handle, TABLE, NCOLS, cnames, cdecls, segno
      
      ;;
      ;; Loop over the number of rows, writing data to each column.
      ;;
      for i = 0, (NROWS-1) do begin
      
         ;;
         ;; Set the null flag for i == 1.
         ;;
         isnull =  ( i EQ 1 );
         
         ;;
         ;; Append a new record to the EK.
         ;;
         cspice_ekappr, handle, segno, recno
      
         ;;
         ;; Define the scalar.
         ;;
         ivals[0] = long(i + 350)
      
         ;;
         ;; Add the data to the EK.
         ;;
         cspice_ekacei, handle, segno,  recno,  cnames[0],  $
                        1,      ivals,  isnull
      
         ;;
         ;; Array-valued columns follow.
         ;;
         ivals[0] = long( 10*i)
         ivals[1] = long((10*i)+1 )
         ivals[2] = long((10*i)+2 )
      
         ;;
         ;; Add the data.
         ;;
         cspice_ekacei, handle, segno,  recno,  cnames[1],  $
                        3,      ivals,  isnull
      
      endfor
      
      ;;
      ;; Close the file.
      ;;
      cspice_ekcls, handle
      
      ;;
      ;; Open the created file. Show the values added.
      ;;
      cspice_ekopr, EKNAME, handle
   
      ;;
      ;; Provide a maximum size for the return array 'dvals'.
      ;;
      nelts = 20l
         
      for i = 0, (NROWS-1) do begin
      
         cspice_ekrcei, handle, segno, i, cnames[0], nelts, $
                        ivals, isnull
                        
         if ( NOT isnull ) then begin
            print, 'Data from column: ',cnames[0],'   record number: ',i
            print, ivals
            print   
         endif
       
         ;;
         ;; Array-valued columns follow.
         ;;
         cspice_ekrcei, handle, segno, i, cnames[1], nelts, $
                         ivals, isnull
                      
         if ( NOT isnull ) then begin
            print, 'Data from column: ',cnames[1], '   record number: ',i
            print, ivals
            print   
         endif
      
      endfor
      
      ;;
      ;; End the file.
      ;;
      cspice_ekcls, handle
   
   END

   
   IDL outputs:
   
      Data from column: INT_COL_1   record number:        0
            350
   
      Data from column: INT_COL_2   record number:        0
              0           1           2
   
      Data from column: INT_COL_1   record number:        2
            352
   
      Data from column: INT_COL_2   record number:        2
             20          21          22
   
      Data from column: INT_COL_1   record number:        3
            353
   
      Data from column: INT_COL_2   record number:        3
             30          31          32
   
      Data from column: INT_COL_1   record number:        4
            354
   
      Data from column: INT_COL_2   record number:        4
             40          41          42
   
   Note record 1 does not appear due to setting the 'isnull' flag
   to true for that record.

Particulars


   None.

Required Reading


   ICY.REQ
   EK.REQ

Version


   -Icy Version 1.0.1, 23-FEB-2010, EDW (JPL)

      Correction to example code; corrected "cspice_ekrcei" argument list.

   -Icy Version 1.0.0, 16-JUN-2003, EDW (JPL)

Index_Entries

 
   add integer data to EK column 
   add data to EK 
   write integer data to EK column 
 



Wed Apr  5 17:58:00 2017