Example: Reading an Image
The following example opens up the hdf5_test.h5 file and reads in a sample image. It is assumed that the user already knows the dataset name, either from using h5dump, or the H5G_GET_MEMBER_NAME function.
PRO ex_read_hdf5 ; Open the HDF5 file. file = FILEPATH('hdf5_test.h5', $ SUBDIRECTORY=['examples', 'data']) file_id = H5F_OPEN(file) ; Open the image dataset within the file. ; This is located within the /images group. ; We could also have used H5G_OPEN to open up the group first. dataset_id1 = H5D_OPEN(file_id, '/images/Eskimo') ; Read in the actual image data. image = H5D_READ(dataset_id1) ; Open up the dataspace associated with the Eskimo image. dataspace_id = H5D_GET_SPACE(dataset_id1) ; Retrieve the dimensions so we can set the window size. dimensions = H5S_GET_SIMPLE_EXTENT_DIMS(dataspace_id) ; Now open and read the color palette associated with ; this image. dataset_id2 = H5D_OPEN(file_id, '/images/Eskimo_palette') palette = H5D_READ(dataset_id2) ; Close all our identifiers so we don't leak resources. H5S_CLOSE, dataspace_id H5D_CLOSE, dataset_id1 H5D_CLOSE, dataset_id2 H5F_CLOSE, file_id ; Display the data. DEVICE, DECOMPOSED=0 WINDOW, XSIZE=dimensions[0], YSIZE=dimensions[1] TVLCT, palette[0,*], palette[1,*], palette[2,*] ; Use /ORDER since the image is stored top-to-bottom. TV, image, /ORDER END