This function packs a set IDL variable into an array of raw byte data. It is useful in constructing the input to multi-field HDF Vdata writing routines, such as those found in HDF-EOS, from a set of IDL variables. The packed data is output as an array of bytes which is organized as a number of records. Each record consists of one or more data fields. A record is defined using the HDF_TYPE and HDF_ORDER keywords. These define the record layout in terms of HDF data types. This function first converts the input arrays into the type defined by the HDF_TYPE keyword using IDL type conversion rules. The function then walks through the input IDL arrays and copies the values into output array. There must be as many entries in the HDF_TYPE and HDF_ORDER keywords as there are data arguments. The function will output as many complete records as can be created from the input data arrays or the value of the NREC keyword, whichever is smaller.
Syntax
Result = HDF_PACKDATA( data1 [, data2 [, data3 [, data4 [, data5 [, data6 [, data7 [, data8]]]]]]] [, HDF_ORDER=array] [, HDF_TYPE=array] [, NREC=records] )
Return Value
Returns a 2-D BYTE array of packed data. The trailing dimension corresponds to each record in the input data.
Arguments
data1...data8
These arguments specify IDL arrays to be packed. The arguments are first converted to the types specified by HDF_TYPE. If the corresponding HDF_ORDER value is greater than one, more than one value will be read from the input array and placed in the packed array for each record. Strings are output as fixed width fields. If an input string is longer than its HDF_ORDER value, it is truncated before being packed. If an input string is shorter than its HDF_ORDER value, the extra space is filled with the value 0.
Keywords
HDF_ORDER
Set this keyword to an array the same length as the number of data fields. The value in the array is equal to the number of elements in the data argument for each record. In the case of strings, this is the length (in characters) of the string to be packed. A value of zero is interpreted as one element. The default for this keyword is an array of ones.
HDF_TYPE
Set this keyword to an array the same length as the number of data fields. The value in the array is an HDF data type for each argument. The IDL variables are converted to these types before being packed into the output array. The default for this keyword is an array of the value 5 (an HDF 32 bit float).
NREC
Set this keyword to the number of records to be packed. The default is to pack as many complete records as can be formed by all of the input arrays.
Examples
See HDF_UNPACKDATA.
Version History
See Also
HDF_UNPACKDATA, EOS_PT_WRITELEVEL, HDF_VD_WRITE