cspice_dskd02 |
|||

## AbstractCSPICE_DSKD02 returns double precision data from a type 2 DSK segment. ## I/OGiven: handle is the handle of a DSK file containing a type 2 segment from which data are to be fetched. [1,1] = size(handle); int32 = class(handle) dladsc is the DLA descriptor associated with the segment from which data are to be fetched. [SPICE_DLA_DSCSIZ,1] = size(dladsc) int32 = class(dladsc) item is an integer "keyword" parameter designating the double precision data item to fetch. [1,1] = size(item); int32 = class(item) 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 DSKMice parameter definition routine as shown: DSKMiceUser 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 is 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 1. This convention applies uniformly to all data. [1,1] = size(start); int32 = class(start) room is 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. [1,1] = size(room); int32 = class(room) the call: [values] = ## 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. Example(1): 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. function dskd02_t( dsk ) % % MiceUser globally defines DSK parameters. % For more information, please see DSKMiceUser.m and % DSKMice02.m. % MiceUser % % Set the dimensions of the array `vrtces', which % will be used later. % vrtces = zeros(3,3); % % Open the DSK file for read access. % We use the DAS-level interface for % this function. % handle = cspice_dasopr( dsk ); % % Begin a forward search through the % kernel, treating the file as a DLA. % In this example, it's a very short % search. % [dladsc, found] = cspice_dlabfs( handle ); if ~found % % We arrive here only if the kernel % contains no segments. This is % unexpected, but we're prepared for it. % fprintf( 'No segments found in DSK file %s\n', dsk ) return end % % If we made it this far, `dladsc' is the % DLA descriptor of the first segment. % % % Find the number of plates in the model. % ival = cspice_dski02( handle, dladsc, SPICE_DSK02_KWNP, 1, 1 ); np = ival(1); % % For each plate, look up the desired data. % Note that plate numbers range from 1 to np. % for i = 1:np % % 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) + 1; % % Fetch the ith plate. % vrtids = cspice_dski02( handle, dladsc, SPICE_DSK02_KWPLAT, ... start, 3 ); for j = 1:3 % % Fetch the jth vertex of the ith plate. % start = (vrtids(j)-1) * 3 +1; vtemp = ## ParticularsMost SPICE applications will not need to call this routine. The routines cspice_dskv02, cspice_dskp02, and cspice_dskz02 provide a higher-level interface for fetching DSK type 2 vertex and plate data. DSK files are built using the DLA low-level format and the DAS architecture; DLA files are a specialized type of DAS file in which data are organized as a doubly linked list of segments. Each segment's data belong to contiguous components of character, double precision, and integer type. Note that the DSK descriptor for the segment is not needed by this routine; the DLA descriptor contains the base address and size information for the integer, double precision, and character components of the segment, and these suffice for the purpose of fetching data. ## Required ReadingFor important details concerning this module's function, please refer to the CSPICE routine dskd02_c. MICE.REQ DAS.REQ DSK.REQ ## Version-Mice Version 1.0.0, 04-APR-2017, NJB (JPL), EDW (JPL), ML (JPL) ## Index_Entriesfetch double precision data from a type 2 dsk segment |

Wed Apr 5 18:00:30 2017