pro mg_extend_h5_example
compile_opt strictarr
datFilename = filepath('head.dat', subdir=['examples', 'data'])
hdfFilename = file_basename(datFilename, '.dat') + '.h5'
openr, lun, datFilename, /get_lun
im = assoc(lun, bytarr(80, 100))
if (file_test(hdfFilename)) then file_delete, hdfFilename
fullDims = [57, 80, 100]
dims = [1, 80, 100]
fileId = h5f_create(hdfFilename)
typeId = h5t_idl_create(1B)
fullSpaceId = h5s_create_simple(dims, max_dimensions=fullDims)
datasetId = h5d_create(fileId, 'head', typeId, fullSpaceId, $
chunk_dimensions=dims)
memorySpaceId = h5d_get_space(datasetId)
for f = 0L, 57L - 1L do begin
h5d_extend, datasetId, [f + 1L, dims[1L:2L]]
fileSpaceId = h5d_get_space(datasetId)
h5s_select_hyperslab, fileSpaceId, [f, 0, 0], dims, /reset
h5d_write, datasetId, reform(im[f], $
dims[0], dims[1], dims[2]), $
file_space=fileSpaceId, $
memory_space=memorySpaceId
h5s_close, fileSpaceId
endfor
h5d_close, datasetId
h5s_close, memorySpaceId
h5s_close, fullSpaceId
h5t_close, typeId
h5f_close, fileId
free_lun, lun
end
mg_extend_h5_example
data = h5_parse('head.h5', /read_data)
window, /free, xsize=80, ysize=100
tv, reform(data.head._data[30, *, *])
end