diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 1998-07-08 14:54:54 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 1998-07-08 14:54:54 (GMT) |
commit | bd1e676c521d881b3143829f493a28b5ced1294b (patch) | |
tree | 69c50f9fe21ce87f293d8617a6bd51b4cc1e0244 /doc/html/H5.api_map.html | |
parent | 73345095897d9698bb1f2f7df830bf80a56dc65a (diff) | |
download | hdf5-bd1e676c521d881b3143829f493a28b5ced1294b.zip hdf5-bd1e676c521d881b3143829f493a28b5ced1294b.tar.gz hdf5-bd1e676c521d881b3143829f493a28b5ced1294b.tar.bz2 |
[svn-r467] Restructuring documentation.
Diffstat (limited to 'doc/html/H5.api_map.html')
-rw-r--r-- | doc/html/H5.api_map.html | 849 |
1 files changed, 849 insertions, 0 deletions
diff --git a/doc/html/H5.api_map.html b/doc/html/H5.api_map.html new file mode 100644 index 0000000..c35102a --- /dev/null +++ b/doc/html/H5.api_map.html @@ -0,0 +1,849 @@ +<html><head><title> +HDF5 Legacy API Equivalence +</title></head><body> + +<center> +<h1>HDF5: API Mapping to legacy APIs</h1> +</center> + +<table border=1 cellpadding=2 cellspacing=0> +<tr> +<th>Functionality</th> +<th>netCDF</th> +<th>SD</th> +<th>AIO</th> +<th>HDF5</th> +<th>Comments</th> +</tr> + +<tr align=center> +<td>Open existing file for read/write</td> +<td>ncopen</td> +<td>SDstart</td> +<td>AIO_open</td> +<td>H5Fopen</td> +</tr> + +<tr align=center> +<td>Creates new file for read/write.</td> +<td>nccreate</td> +<td><hr></td> +<td><hr></td> +<td>H5Fcreate</td> +<td>SD API handles this with SDopen</td> +</tr> + +<tr align=center> +<td>Close file</td> +<td>ncclose</td> +<td>SDend</td> +<td>AIO_close</td> +<td>H5Fclose</td> +</tr> + +<tr align=center> +<td>Redefine parameters</td> +<td>ncredef</td> +<td><hr></td> +<td><hr></td> +<td><hr></td> +<td>Unneccessary under SD & HDF5 data-models</td> +</tr> + +<tr align=center> +<td>End "define" mode</td> +<td>ncendef</td> +<td><hr></td> +<td><hr></td> +<td><hr></td> +<td>Unneccessary under SD & HDF5 data-models</td> +</tr> + +<tr align=center> +<td>Query the number of datasets, dimensions and attributes in a file</td> +<td>ncinquire</td> +<td>SDfileinfo</td> +<td><hr></td> +<td>H5Dget_info<br>H5Rget_num_relations<br>H5Gget_num_contents</td> +<td>HDF5 interface is more granular and flexible</td> +</tr> + +<tr align=center> +<td>Update a writeable file with current changes</td> +<td>ncsync</td> +<td><hr></td> +<td>AIO_flush</td> +<td>H5Mflush</td> +<td>HDF5 interface is more flexible because it can be applied to parts of the +file hierarchy instead of the whole file at once. The SD interface does not +have this feature, although most of the lower HDF library supports it.</td> +</tr> + +<tr align=center> +<td>Close file access without applying recent changes</td> +<td>ncabort</td> +<td><hr></td> +<td><hr></td> +<td><hr></td> +<td>How useful is this feature?</td> +</tr> + +<tr align=center> +<td>Create new dimension</td> +<td>ncdimdef</td> +<td>SDsetdimname</td> +<td><hr></td> +<td>H5Mcreate</td> +<td>SD interface actually creates dimensions with datasets, this just allows +naming them</td> +</tr> + +<tr align=center> +<td>Get ID of existing dimension</td> +<td>ncdimid</td> +<td>SDgetdimid</td> +<td><hr></td> +<td>H5Maccess</td> +<td>SD interface looks up dimensions by index and the netCDF interface uses +names, but they are close enough. The HDF5 interface does not current allow +access to particular dimensions, only the dataspace as a whole.</td> +</tr> + +<tr align=center> +<td>Get size & name of dimension</td> +<td>ncdiminq</td> +<td>SDdiminfo</td> +<td><hr></td> +<td>H5Mget_name<br>H5Sget_lrank</td> +<td>Only a rough match</td> +</tr> + +<tr align=center> +<td>Rename dimension</td> +<td>ncdimrename</td> +<td>SDsetdimname</td> +<td><hr></td> +<td>H5Mset_name</td> +<td></td> +</tr> + +<tr align=center> +<td>Create a new dataset</td> +<td>ncvardef</td> +<td>SDcreate</td> +<td>AIO_mkarray</td> +<td>H5Mcreate</td> +<td></td> +</tr> + +<tr align=center> +<td>Attach to an existing dataset</td> +<td>ncvarid</td> +<td>SDselect</td> +<td>AIO_arr_load</td> +<td>H5Maccess</td> +<td></td> +</tr> + +<tr align=center> +<td>Get basic information about a dataset</td> +<td>ncvarinq</td> +<td>SDgetinfo</td> +<td>AIO_arr_get_btype<br>AIO_arr_get_nelmts<br>AIO_arr_get_nbdims<br>AIO_arr_get_bdims<br>AIO_arr_get_slab</td> +<td>H5Dget_info</td> +<td>All interfaces have different levels of information that they return, some +use of auxilliary functions is required to get equivalent amount of information</td> +</tr> + +<tr align=center> +<td>Write a single value to a dataset</td> +<td>ncvarput1</td> +<td>SDwritedata</td> +<td>AIO_write</td> +<td>H5Dwrite</td> +<td>What is this useful for?</td> +</tr> + +<tr align=center> +<td>Read a single value from a dataset</td> +<td>ncvarget1</td> +<td>SDreaddata</td> +<td>AIO_read</td> +<td>H5Dread</td> +<td>What is this useful for?</td> +</tr> + +<tr align=center> +<td>Write a solid hyperslab of data (i.e. subset) to a dataset</td> +<td>ncvarput</td> +<td>SDwritedata</td> +<td>AIO_write</td> +<td>H5Dwrite</td> +<td></td> +</tr> + +<tr align=center> +<td>Read a solid hyperslab of data (i.e. subset) from a dataset</td> +<td>ncvarget</td> +<td>SDreaddata</td> +<td>AIO_read</td> +<td>H5Dread</td> +<td></td> +</tr> + +<tr align=center> +<td>Write a general hyperslab of data (i.e. possibly subsampled) to a dataset</td> +<td>ncvarputg</td> +<td>SDwritedata</td> +<td>AIO_write</td> +<td>H5Dwrite</td> +<td></td> +</tr> + +<tr align=center> +<td>Read a general hyperslab of data (i.e. possibly subsampled) from a dataset</td> +<td>ncvargetg</td> +<td>SDreaddata</td> +<td>AIO_read</td> +<td>H5Dread</td> +<td></td> +</tr> + +<tr align=center> +<td>Rename a dataset variable</td> +<td>ncvarrename</td> +<td><hr></td> +<td><hr></td> +<td>H5Mset_name</td> +<td></td> +</tr> + +<tr align=center> +<td>Add an attribute to a dataset</td> +<td>ncattput</td> +<td>SDsetattr</td> +<td><hr></td> +<td>H5Rattach_oid</td> +<td>HDF5 requires creating a seperate object to attach to a dataset, but it also +allows objects to be attributes of any other object, even nested.</td> +</tr> + +<tr align=center> +<td>Get attribute information</td> +<td>ncattinq</td> +<td>SDattrinfo</td> +<td><hr></td> +<td>H5Dget_info</td> +<td>HDF5 has no specific function for attributes, they are treated as all other +objects in the file.</td> +</tr> + +<tr align=center> +<td>Retrieve attribute for a dataset</td> +<td>ncattget</td> +<td>SDreadattr</td> +<td><hr></td> +<td>H5Dread</td> +<td>HDF5 uses general dataset I/O for attributes.</td> +</tr> + +<tr align=center> +<td>Copy attribute from one dataset to another</td> +<td>ncattcopy</td> +<td><hr></td> +<td><hr></td> +<td><hr></td> +<td>What is this used for?</td> +</tr> + +<tr align=center> +<td>Get name of attribute</td> +<td>ncattname</td> +<td>SDattrinfo</td> +<td><hr></td> +<td>H5Mget_name</td> +<td></td> +</tr> + +<tr align=center> +<td>Rename attribute</td> +<td>ncattrename</td> +<td><hr></td> +<td><hr></td> +<td>H5Mset_name</td> +<td></td> +</tr> + +<tr align=center> +<td>Delete attribute</td> +<td>ncattdel</td> +<td><hr></td> +<td><hr></td> +<td>H5Mdelete</td> +<td>This can be faked in current HDF interface with lower-level calls</td> +</tr> + +<tr align=center> +<td>Compute # of bytes to store a number-type</td> +<td>nctypelen</td> +<td>DFKNTsize</td> +<td><hr></td> +<td><hr></td> +<td>Hmm, the HDF5 Datatype interface needs this functionality.</td> +</tr> + +<tr align=center> +<td>Indicate that fill-values are to be written to dataset</td> +<td>ncsetfill</td> +<td>SDsetfillmode</td> +<td><hr></td> +<td><hr></td> +<td>HDF5 Datatype interface should work on this functionality</td> +</tr> + +<tr align=center> +<td>Get information about "record" variables (Those datasets which share the +same unlimited dimension</td> +<td>ncrecinq</td> +<td><hr></td> +<td><hr></td> +<td><hr></td> +<td>This should probably be wrapped in a higher layer interface, if it's +needed for HDF5.</td> +</tr> + +<tr align=center> +<td>Get a record from each dataset sharing the unlimited dimension</td> +<td>ncrecget</td> +<td><hr></td> +<td><hr></td> +<td><hr></td> +<td>This is somewhat equivalent to reading a vdata with non-interlaced +fields, only in a dataset oriented way. This should also be wrapped in a +higher layer interface if it's necessary for HDF5.</td> +</tr> + +<tr align=center> +<td>Put a record from each dataset sharing the unlimited dimension</td> +<td>ncrecput</td> +<td><hr></td> +<td><hr></td> +<td><hr></td> +<td>This is somewhat equivalent to writing a vdata with non-interlaced +fields, only in a dataset oriented way. This should also be wrapped in a +higher layer interface if it's necessary for HDF5.</td> +</tr> + +<tr align=center> +<td>Map a dataset's name to an index to reference it with</td> +<td><hr></td> +<td>SDnametoindex</td> +<td><hr></td> +<td>H5Mfind_name</td> +<td>Equivalent functionality except HDF5 call returns an OID instead of an +index.</td> +</tr> + +<tr align=center> +<td>Get the valid range of values for data in a dataset</td> +<td><hr></td> +<td>SDgetrange</td> +<td><hr></td> +<td><hr></td> +<td>Easily implemented with attributes at a higher level for HDF5.</td> +</tr> + +<tr align=center> +<td>Release access to a dataset</td> +<td><hr></td> +<td>SDendaccess</td> +<td>AIO_arr_destroy</td> +<td>H5Mrelease</td> +<td>Odd that the netCDF API doesn't have this...</td> +</tr> + +<tr align=center> +<td>Set the valid range of data in a dataset</td> +<td><hr></td> +<td>SDsetrange</td> +<td><hr></td> +<td><hr></td> +<td>Easily implemented with attributes at a higher level for HDF5.</td> +</tr> + +<tr align=center> +<td>Set the label, units, format, etc. of the data values in a dataset</td> +<td><hr></td> +<td>SDsetdatastrs</td> +<td><hr></td> +<td><hr></td> +<td>Easily implemented with attributes at a higher level for HDF5.</td> +</tr> + +<tr align=center> +<td>Get the label, units, format, etc. of the data values in a dataset</td> +<td><hr></td> +<td>SDgetdatastrs</td> +<td><hr></td> +<td><hr></td> +<td>Easily implemented with attributes at a higher level for HDF5.</td> +</tr> + +<tr align=center> +<td>Set the label, units, format, etc. of the dimensions in a dataset</td> +<td><hr></td> +<td>SDsetdimstrs</td> +<td><hr></td> +<td><hr></td> +<td>Easily implemented with attributes at a higher level for HDF5.</td> +</tr> + +<tr align=center> +<td>Get the label, units, format, etc. of the dimensions in a dataset</td> +<td><hr></td> +<td>SDgetdimstrs</td> +<td><hr></td> +<td><hr></td> +<td>Easily implemented with attributes at a higher level for HDF5.</td> +</tr> + +<tr align=center> +<td>Set the scale of the dimensions in a dataset</td> +<td><hr></td> +<td>SDsetdimscale</td> +<td><hr></td> +<td><hr></td> +<td>Easily implemented with attributes at a higher level for HDF5.</td> +</tr> + +<tr align=center> +<td>Get the scale of the dimensions in a dataset</td> +<td><hr></td> +<td>SDgetdimscale</td> +<td><hr></td> +<td><hr></td> +<td>Easily implemented with attributes at a higher level for HDF5.</td> +</tr> + +<tr align=center> +<td>Set the calibration parameters of the data values in a dataset</td> +<td><hr></td> +<td>SDsetcal</td> +<td><hr></td> +<td><hr></td> +<td>Easily implemented with attributes at a higher level for HDF5.</td> +</tr> + +<tr align=center> +<td>Get the calibration parameters of the data values in a dataset</td> +<td><hr></td> +<td>SDgetcal</td> +<td><hr></td> +<td><hr></td> +<td>Easily implemented with attributes at a higher level for HDF5.</td> +</tr> + +<tr align=center> +<td>Set the fill value for the data values in a dataset</td> +<td><hr></td> +<td>SDsetfillvalue</td> +<td><hr></td> +<td><hr></td> +<td>HDF5 needs something like this, I'm not certain where to put it.</td> +</tr> + +<tr align=center> +<td>Get the fill value for the data values in a dataset</td> +<td><hr></td> +<td>SDgetfillvalue</td> +<td><hr></td> +<td><hr></td> +<td>HDF5 needs something like this, I'm not certain where to put it.</td> +</tr> + +<tr align=center> +<td>Move/Set the dataset to be in an 'external' file</td> +<td><hr></td> +<td>SDsetexternalfile</td> +<td><hr></td> +<td>H5Dset_storage</td> +<td>HDF5 has simple functions for this, but needs an API for setting up the +storage flow.</td> +</tr> + +<tr align=center> +<td>Move/Set the dataset to be stored using only certain bits from the dataset</td> +<td><hr></td> +<td>SDsetnbitdataset</td> +<td><hr></td> +<td>H5Dset_storage</td> +<td>HDF5 has simple functions for this, but needs an API for setting up the +storage flow.</td> +</tr> + +<tr align=center> +<td>Move/Set the dataset to be stored in compressed form</td> +<td><hr></td> +<td>SDsetcompress</td> +<td><hr></td> +<td>H5Dset_storage</td> +<td>HDF5 has simple functions for this, but needs an API for setting up the +storage flow.</td> +</tr> + +<tr align=center> +<td>Search for an dataset attribute with particular name</td> +<td><hr></td> +<td>SDfindattr</td> +<td><hr></td> +<td>H5Mfind_name<br>H5Mwild_search</td> +<td>HDF5 can handle wildcard searchs for this feature.</td> +</tr> + +<tr align=center> +<td>Map a run-time dataset handle to a persistant disk reference</td> +<td><hr></td> +<td>SDidtoref</td> +<td><hr></td> +<td><hr></td> +<td>I'm not certain this is needed for HDF5.</td> +</tr> + +<tr align=center> +<td>Map a persistant disk reference for a dataset to an index in a group</td> +<td><hr></td> +<td>SDreftoindex</td> +<td><hr></td> +<td><hr></td> +<td>I'm not certain this is needed for HDF5.</td> +</tr> + +<tr align=center> +<td>Determine if a dataset is a 'record' variable (i.e. it has an unlimited dimension)</td> +<td><hr></td> +<td>SDisrecord</td> +<td><hr></td> +<td><hr></td> +<td>Easily implemented by querying the dimensionality at a higher level for HDF5.</td> +</tr> + +<tr align=center> +<td>Determine if a dataset is a 'coordinate' variable (i.e. it is used as a dimension)</td> +<td><hr></td> +<td>SDiscoord</td> +<td><hr></td> +<td><hr></td> +<td>I'm not certain this is needed for HDF5.</td> +</tr> + +<tr align=center> +<td>Set the access type (i.e. parallel or serial) for dataset I/O</td> +<td><hr></td> +<td>SDsetaccesstype</td> +<td><hr></td> +<td><hr></td> +<td>HDF5 has functions for reading the information about this, but needs a better +API for setting up the storage flow.</td> +</tr> + +<tr align=center> +<td>Set the size of blocks used to store a dataset with unlimited dimensions</td> +<td><hr></td> +<td>SDsetblocksize</td> +<td><hr></td> +<td><hr></td> +<td>HDF5 has functions for reading the information about this, but needs a better +API for setting up the storage flow.</td> +</tr> + +<tr align=center> +<td>Sets backward compatibility of dimensions created.</td> +<td><hr></td> +<td>SDsetdimval_comp</td> +<td><hr></td> +<td><hr></td> +<td>Unneccessary in HDF5.</td> +</tr> + +<tr align=center> +<td>Checks backward compatibility of dimensions created.</td> +<td><hr></td> +<td>SDisdimval_comp</td> +<td><hr></td> +<td><hr></td> +<td>Unneccessary in HDF5.</td> +</tr> + +<tr align=center> +<td>Move/Set the dataset to be stored in chunked form</td> +<td><hr></td> +<td>SDsetchunk</td> +<td><hr></td> +<td>H5Dset_storage</td> +<td>HDF5 has simple functions for this, but needs an API for setting up the +storage flow.</td> +</tr> + +<tr align=center> +<td>Get the chunking information for a dataset stored in chunked form</td> +<td><hr></td> +<td>SDgetchunkinfo</td> +<td><hr></td> +<td>H5Dstorage_detail</td> +<td></td> +</tr> + +<tr align=center> +<td>Read/Write chunks of a dataset using a chunk index</td> +<td><hr></td> +<td>SDreadchunk<br>SDwritechunk</td> +<td><hr></td> +<td><hr></td> +<td>I'm not certain that HDF5 needs something like this.</td> +</tr> + +<tr align=center> +<td>Tune chunk caching parameters for chunked datasets</td> +<td><hr></td> +<td>SDsetchunkcache</td> +<td><hr></td> +<td><hr></td> +<td>HDF5 needs something like this.</td> +</tr> + +<tr align=center> +<td>Change some default behavior of the library</td> +<td><hr></td> +<td><hr></td> +<td>AIO_defaults</td> +<td><hr></td> +<td>Something like this would be useful in HDF5, to tune I/O pipelines, etc.</td> +</tr> + +<tr align=center> +<td>Flush and close all open files</td> +<td><hr></td> +<td><hr></td> +<td>AIO_exit</td> +<td><hr></td> +<td>Something like this might be useful in HDF5, although it could be + encapsulated with a higher-level function.</td> +</tr> + +<tr align=center> +<td>Target an architecture for data-type storage</td> +<td><hr></td> +<td><hr></td> +<td>AIO_target</td> +<td><hr></td> +<td>There are some rough parallels with using the data-type in HDF5 to create + data-type objects which can be used to write out future datasets.</td> +</tr> + +<tr align=center> +<td>Map a filename to a file ID</td> +<td><hr></td> +<td><hr></td> +<td>AIO_filename</td> +<td>H5Mget_name</td> +<td></td> +</tr> + +<tr align=center> +<td>Get the active directory (where new datasets are created)</td> +<td><hr></td> +<td><hr></td> +<td>AIO_getcwd</td> +<td><hr></td> +<td>HDF5 allows multiple directories (groups) to be attached to, any of which + can have new datasets created within it.</td> +</tr> + +<tr align=center> +<td>Change active directory</td> +<td><hr></td> +<td><hr></td> +<td>AIO_chdir</td> +<td><hr></td> +<td>Since HDF5 has a slightly different access method for directories (groups), + this functionality can be wrapped around calls to H5Gget_oid_by_name.</td> +</tr> + +<tr align=center> +<td>Create directory</td> +<td><hr></td> +<td><hr></td> +<td>AIO_mkdir</td> +<td>H5Mcreate</td> +<td></td> +</tr> + +<tr align=center> +<td>Return detailed information about an object</td> +<td><hr></td> +<td><hr></td> +<td>AIO_stat</td> +<td>H5Dget_info<br>H5Dstorage_detail</td> +<td>Perhaps more information should be provided through another function in + HDF5?</td> +</tr> + +<tr align=center> +<td>Get "flag" information</td> +<td><hr></td> +<td><hr></td> +<td>AIO_getflags</td> +<td><hr></td> +<td>Not required in HDF5.</td> +</tr> + +<tr align=center> +<td>Set "flag" information</td> +<td><hr></td> +<td><hr></td> +<td>AIO_setflags</td> +<td><hr></td> +<td>Not required in HDF5.</td> +</tr> + +<tr align=center> +<td>Get detailed information about all objects in a directory</td> +<td><hr></td> +<td><hr></td> +<td>AIO_ls</td> +<td>H5Gget_content_info_mult<br>H5Dget_info<br>H5Dstorage_detail</td> +<td>Only roughly equivalent functionality in HDF5, perhaps more should be + added?</td> +</tr> + +<tr align=center> +<td>Get base type of object</td> +<td><hr></td> +<td><hr></td> +<td>AIO_BASIC</td> +<td>H5Gget_content_info</td> +<td></td> +</tr> + +<tr align=center> +<td>Set base type of dataset</td> +<td><hr></td> +<td><hr></td> +<td>AIO_arr_set_btype</td> +<td>H5Mcreate(DATATYPE)</td> +<td></td> +</tr> + +<tr align=center> +<td>Set dimensionality of dataset</td> +<td><hr></td> +<td><hr></td> +<td>AIO_arr_set_bdims</td> +<td>H5Mcreate(DATASPACE)</td> +<td></td> +</tr> + +<tr align=center> +<td>Set slab of dataset to write</td> +<td><hr></td> +<td><hr></td> +<td>AIO_arr_set_slab</td> +<td><hr></td> +<td>This is similar to the process of creating a dataspace for use when + performing I/O on an HDF5 dataset</td> +</tr> + +<tr align=center> +<td>Describe chunking of dataset to write</td> +<td><hr></td> +<td><hr></td> +<td>AIO_arr_set_chunk</td> +<td>H5Dset_storage</td> +<td></td> +</tr> + +<tr align=center> +<td>Describe array index permutation of dataset to write</td> +<td><hr></td> +<td><hr></td> +<td>AIO_arr_set_perm</td> +<td>H5Dset_storage</td> +<td></td> +</tr> + +<tr align=center> +<td>Create a new dataset with dataspace and datatype information from an + existing dataset.</td> +<td><hr></td> +<td><hr></td> +<td>AIO_arr_copy</td> +<td><hr></td> +<td>This can be mimicked in HDF5 by attaching to the datatype and dataspace of +an existing dataset and using the IDs to create new datasets.</td> +</tr> + +<tr align=center> +<td>Create a new directory to group objects within</td> +<td><hr></td> +<td><hr></td> +<td>AIO_mkgroup</td> +<td>H5Mcreate(GROUP)</td> +<td></td> +</tr> + +<tr align=center> +<td>Read name of objects in directory</td> +<td><hr></td> +<td><hr></td> +<td>AIO_read_group</td> +<td>H5Gget_content_info_mult</td> +<td></td> +</tr> + +<tr align=center> +<td>Add objects to directory</td> +<td><hr></td> +<td><hr></td> +<td>AIO_write_group</td> +<td>H5Ginsert_item_mult</td> +<td></td> +</tr> + +<tr align=center> +<td>Combine an architecture and numeric type to derive the format's datatype</td> +<td><hr></td> +<td><hr></td> +<td>AIO_COMBINE</td> +<td><hr></td> +<td>This is a nice feature to add to HDF5.</td> +</tr> + +<tr align=center> +<td>Derive an architecture from the format's datatype</td> +<td><hr></td> +<td><hr></td> +<td>AIO_ARCH</td> +<td><hr></td> +<td>This is a nice feature to add to HDF5.</td> +</tr> + +<tr align=center> +<td>Derive a numeric type from the format's datatype</td> +<td><hr></td> +<td><hr></td> +<td>AIO_PNT</td> +<td><hr></td> +<td>This is a nice feature to add to HDF5.</td> +</tr> + +<tr align=center> +<td>Register error handling function for library to call when errors occur</td> +<td><hr></td> +<td><hr></td> +<td>AIO_error_handler</td> +<td><hr></td> +<td>This should be added to HDF5.</td> +</tr> + +</table> + |