Title: MATLAB's%20HDF5%20Updates
1MATLAB's HDF5 Updates John Evans Image and
Scientific Data Formats
2Quick Overview
The MATLAB HDF5 low-level interface is divided
into packages that correspond to the HDF5
interfaces. One such class is H5F, which has
open as a member function. H5, H5A, H5D, H5DS,
H5E, H5F, H5G, H5I, H5L, H5ML(??), H5O, H5P, H5R,
H5S, H5T, H5Z. H5ML is a special MATLAB helper
package.
3R2009b
What's New In R2009b
- HDF5 offerings based on library version 1.8.1
- Support for H5L, H5O, H5DS interfaces
- A little bit more speed!
- Over 300 functions in corresponding to HDF5 C API
3
4R2009b
Link Interface
gtgt help H5L Contents for H5L Link
interface H5L.create_hard - Creates
a hard link H5L.create_soft -
Creates a soft link H5L.delete
- Deletes a link H5L.exists
- Checks for the existence of a link
H5L.get_info - Returns information
about a link H5L.get_val -
Returns the value of a symbolic link
H5L.iterate - Iterates through
links in a group H5L.iterate_by_name -
Iterates through links in a group H5L.move
- Moves a link from one location
to another H5L.visit -
Iterate through all links in and below a group
H5L.visit_by_name - Iterate through all
links in and below a group
4
5R2009b
H5COPY
gtgt help h5copy H5COPY copies an object from one
HDF5 file to another file. h5copy(INPUTFILE,OUT
PUTFILE,SRCOBJ,DSTOBJ) copies the source
object name SRCOBJ in the input HDF5 file
INPUTFILE to the destination identified by
DSTOBJ in OUTPUTFILE. The behavior of the copy
is to recursively copy all objects below the
group, keep soft links as they are, keep external
links as they are, update only the values of
object references, and to copy attributes
along with the object. This program was
translated from the source code of "h5copy.c"
written by Pedro Vicente Nunes and Quincey
Koziol, THG.
5
6R2009b
H5COPY
open input file ifid H5F.open(ifile,'H5F_ACC_R
DONLY','H5P_DEFAULT') open output file if
exist(ofile,'file') ofid H5F.open(ofile,'H5F
_ACC_RDWR','H5P_DEFAULT') else fcpl
H5P.create('H5P_FILE_CREATE') ofid
H5F.create(ofile,'H5F_ACC_TRUNC',fcpl,'H5P_DEFAULT
') H5P.close(fcpl) end create property
lists for copy ocpl H5P.create('H5P_OBJECT_COPY'
)
6
7R2009b
H5COPY
create link creation property list lcpl
H5P.create('H5P_LINK_CREATE') Set the
intermediate creation property H5P.set_create_inte
rmediate_group(lcpl,true) do the
copy H5O.copy(ifid,srcObjName,ofid,dstObjName,ocpl
,lcpl) H5P.close(lcpl) H5P.close(ocpl) H5F.clo
se(ifid) H5F.close(ofid)
7
8NetCDF-4? Well, sort of...
- Native support for netCDF-3 since R2008b, not
just yet for netCDF-4 - but NetCDF-4 is HDF5 under the hood, so you can
read with low-level HDF5 interface now. - Java? Yep, it's possible to use netcdf-java
right now in MATLAB. - 3rd party mex-file mexcdf recompiled statically
with HDF5 and NetCDF-4.
9References
- MathWorks http//www.mathworks.com
- HDF5TOOLS go to http//www.mathworks.com/matlabce
ntral/fileexchange/ and search for HDF5TOOLS - NetCDF Java Library http//www.unidata.ucar.edu/
software/netcdf-java/ - SNCTOOLS http//mexcdf.sourceforge.net/
- HDF5 Group go to http//www.hdfgroup.org/ftp/HDF
5/examples/examples-by-api/ and look for the
MATLAB examples