Table of contents
CSPICE_DASRDI reads integer data from a range of DAS logical addresses.
Given:
handle a file handle for an open DAS file.
help, handle
LONG = Scalar
first,
last the lower and upper bounds of a range of DAS integer logical
addresses.
help, first
LONG = Scalar
help, last
LONG = Scalar
The range includes these bounds. `first' and `last' must be
greater than or equal to 1 and less than or equal to the
highest integer DAS address in the DAS file designated by
`handle'.
the call:
cspice_dasrdi, handle, first, last, data
returns:
data an array of integers.
help, data
LONG = Array[N]
`data' has length N = last - first + 1.
None.
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.
1) Create a new DAS file and add 200 integers to it. Close the
file, then re-open it and read the data back out.
Example code begins here.
PRO dasrdi_ex1
;;
;; Local parameters.
;;
FNAME = 'dasrdi_ex1.das'
TYPE = 'TEST'
;;
;; Local variables.
;;
data = lonarr(100)
;;
;; Open a new DAS file. Use the file name as the internal
;; file name, and reserve no records for comments.
;;
cspice_dasonw, FNAME, TYPE, FNAME, 0L, handle
;;
;; Fill the array `data' with the integers 1 through
;; 100, and add this array to the file.
;;
for i=1L, 100L do begin
data[i-1] = i
endfor
cspice_dasadi, handle, data
;;
;; Now append the array `data' to the file again.
;;
cspice_dasadi, handle, data
;;
;; Close the file.
;;
cspice_dascls, handle
;;
;; Now verify the addition of data by opening the
;; file for read access and retrieving the data.
;;
cspice_dasopr, FNAME, handle
cspice_dasrdi, handle, 1L, 200L, data
;;
;; Dump the data to the screen. We should see the
;; sequence 1, 2, ..., 100, 1, 2, ... , 100.
;;
print
print, 'Data from "', FNAME, '":'
print
for i=0L, 19L do begin
print, format='(10I5)', data[i*10:i*10+9]
endfor
;;
;; Close the file.
;;
cspice_dascls, handle
END
When this program was executed on a Mac/Intel/IDL8.x/64-bit
platform, the output was:
Data from "dasrdi_ex1.das":
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
Note that after run completion, a new DAS file exists in the
output directory.
This routine provides random read access to the integer data in
a DAS file. This data are logically structured as a
one-dimensional array of integers.
1) If the input file handle is invalid, an error is signaled
by a routine in the call tree of this routine. `data' will
not be modified.
2) If `first' or `last' are out of range, an error is signaled
by a routine in the call tree of this routine.
3) If `first' is greater than `last', the error SPICE(DASFIRSTGTLAST)
is signaled.
4) If a file read error occurs, the error is signaled by a
routine in the call tree of this routine.
5) If any of the input arguments, `handle', `first' or `last', is
undefined, an error is signaled by the IDL error handling
system.
6) If any of the input arguments, `handle', `first' or `last', is
not of the expected type, or it does not have the expected
dimensions and size, an error is signaled by the Icy
interface.
7) If the output argument `data' is not a named variable, an
error is signaled by the Icy interface.
See the description of the argument `handle' in -I/O.
None.
DAS.REQ
ICY.REQ
None.
J. Diaz del Rio (ODC Space)
-Icy Version 1.0.0, 09-JUN-2021 (JDR)
read integer data from a DAS file
|