Example: Reading Partial Datasets
To read a portion of a compound dataset or attribute, create a datatype that matches only the elements you wish to retrieve, and specify that datatype as the second argument to the H5D_READ function. The following example creates a simple HDF5 data file in the current directory, then opens the file and reads a portion of the data.
; Create sample data in an array of structures with two fields struct = {time:0.0, data:intarr(40)} r = REPLICATE(struct,20) r.time = RANDOMU(seed,20)*1000 r.data = INDGEN(40,20) ; Create a file file = 'h5_test.h5' fid = H5F_CREATE(file) ; Create a datatype based on a single element of the arrary dt = H5T_IDL_CREATE(struct) ; Create a 20 element dataspace ds = H5S_CREATE_SIMPLE(N_ELEMENTS(r)) ; Create and write the dataset d = H5D_CREATE(fid, 'dataset', dt, ds) H5D_WRITE, d, r ; Close the file H5F_CLOSE, fid ; Open the file for reading fid = H5F_OPEN(file) ; Open the dataset d = H5D_OPEN(fid, 'dataset') ; Define the data we want to read from the dataset struct = {data:intarr(40)} ; Create datatype denoting the portion to be read dt = H5T_IDL_CREATE(struct) ; Read only the data that matches our datatype. The ; returned value will be a 20 element structure with only ; one tag, 'DATA'. Each element of which will be a [40] ; element integer array result = H5D_READ(d, dt) H5F_CLOSE, fid