cspice_dskd02 |
|||

## AbstractCSPICE_DSKD02 returns double precision data from a type 2 DSK segment. For important details concerning this module's function, please refer to the CSPICE routine dskd02_c. ## I/OGiven: handle the handle of a DSK file containing a type 2 segment from which data are to be fetched. dladsc the DLA descriptor associated with the segment from which data are to be fetched. item an integer "keyword" parameter designating the double precision data item to fetch. Names, values, and meanings of keyword parameters supported by this routine are shown below. Use of the names shown here is enabled by calling the DSKIcy parameter definition routine as shown: @IcyUser This call must be made before the parameter names are referenced. See the example program below. Name Value Description ---- ----- ---------- SPICE_DSK02_KWDSC 15 Array containing contents of Fortran DSK descriptor of segment. Note that DSK descriptors are not to be confused with DLA descriptors, which contain segment component base address and size information. The dimension of this array is SPICE_DSK_DSCSIZ. SPICE_DSK02_KWVTBD 16 Vertex bounds. This is an array of six values giving the minimum and maximum values of each component of the vertex set. SPICE_DSK02_KWVXOR 17 Voxel grid origin. This is the location of the voxel grid origin in the body-fixed frame associated with the target body. SPICE_DSK02_KWVXSZ 18 Voxel size. DSK voxels are cubes; the edge length of each cube is given by the voxel size. This size applies to the fine voxel grid. Units are km. SPICE_DSK02_KWVERT 19 Vertex coordinates. start the start index within the specified data item from which data are to be fetched. The index of the first element of each data item is 0. This convention applies uniformly to all data, even if the data are associated with a set of 1-based indices. For example, the vertex ID range starts at 1 (this fact is language-independent), but a caller would use a `start' value of 0 to fetch the first vertex. room the amount of room in the output array. It is permissible to provide an output array that has too little room to fetch an item in one call. the call: ## ExamplesAny 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. Look up all the vertices associated with each plate of the model contained in a specified type 2 segment. For each plate, display the plate's vertices. For this example, we'll show the context of this look-up: opening the DSK file for read access, traversing a trivial, one-segment list to obtain the segment of interest. PRO DSKD02_T, dsk ;; ;; IcyUser globally defines DSK parameters. ;; For more information, please see DSKIcyUser.m and ;; DSKIcyUser02.m. ;; @IcyUser FMT = '(A,3(1X,E14.6))' ;; ;; Set the dimensions of the array `vrtces', which ;; will be used later. ;; vrtces = dindgen(3, 3) * 0.D ;; ;; Open the DSK file for read access. ;; We use the DAS-level interface for ;; this function. ;; cspice_dasopr, dsk, handle ;; ;; Begin a forward search through the ;; kernel, treating the file as a DLA. ;; In this example, it's a very short ;; search. ;; cspice_dlabfs, handle, dladsc, found if ( ~found ) then begin ;; ;; We arrive here only if the kernel ;; contains no segments. This is ;; unexpected, but we're prepared for it. ;; message, 'No segments found in DSK file ', + dsk return endif ;; ;; If we made it this far, `dladsc' is the ;; DLA descriptor of the first segment. ;; ;; ;; Find the number of plates in the model. ;; cspice_dski02, handle, dladsc, SPICE_DSK02_KWNP, 0, 1, ival np = ival[0] ;; ;; For each plate, look up the desired data. ;; Note that plate numbers range from 1 to np. ;; for i=1, np do begin ;; ;; For the Ith plate, find the associated ;; vertex IDs. We must take into account ;; the fact that each plate has three ;; vertices when we compute the start ;; index. ;; start = 3*(i-1); ;; ;; Fetch the ith plate. ;; cspice_dski02, handle, dladsc, SPICE_DSK02_KWPLAT, $ start, 3, vrtids for j = 0, 2 do begin ;; ;; Fetch the jth vertex of the ith plate. ;; start = (vrtids[j]-1) * 3; ## ParticularsMost user applications will not need to call this routine. The routines cspice_dskz02 cspice_dskp02 cspice_dskv02 have simpler interfaces and may be used to fetch the plates and vertex counts, and the plates and vertices themselves, from a type DSK segment. See the documentation of those routines for code examples. ## Required ReadingICY.REQ DAS.REQ DSK.REQ ## Version-Icy Version 1.0.0, 04-APR-2017, ML (JPL), EDW (JPL) ## Index_Entriesfetch double precision data from a type 2 dsk segment |

Wed Apr 5 17:58:00 2017