Dear HDF users,
I would like to use a variable length datatype, which I would like to store
in a dataset with compression enabled (I am using HDF 1.8.2)
Unfortunately, I am unable to create the dataset when dataset create
properties set to compression. I am getting the following error message.
.HDF5-DIAG: Error detected in HDF5 (1.8.2) thread 0:
#000: ..\..\..\src\H5D.c line 171 in H5Dcreate2(): unable to create
dataset
major: Dataset
minor: Unable to initialize object
... etc (for entire error message see bottom of e-mail).
The same code with Data-set create properties set to H5P_DEFAULT works fine.
I also can't create a dataset when I use vl datatypes and set maxdims in
H5Screate_simpel to H5S_UNLIMITED
The code causing the error messages looks like that:
hid_t peaklist = H5Tvlen_create(H5T_NATIVE_DOUBLE);
hid_t h5file_ = H5Fcreate("testfile.h5" , H5F_ACC_TRUNC, H5P_DEFAULT,
H5P_DEFAULT);
std::string datasetname("Array");
const int length = 10000;
const int RANK = 1;
hsize_t dim[] = {length}; /* Dataspace dimensions */
hsize_t maxdims[] = {H5S_UNLIMITED};
hid_t dataspace_ = H5Screate_simple(RANK, dim, NULL);
//hid_t datasepace_ = H5Screate_simple(RANK, dim, maxdims); //creates error.
/*!
* Create the dataset.
*/
hid_t dscreateProperties_ = H5Pcreate(H5P_DATASET_CREATE);
H5Pset_szip(dscreateProperties_
, H5_SZIP_NN_OPTION_MASK , 16 );
hid_t dataset_ = H5Dcreate2
(
h5file_,
datasetname.c_str(),
peaklist,
dataspace_,
H5P_DEFAULT,
dscreateProperties_, //does not work
// H5P_DEFAULT, // works
H5P_DEFAULT
);
exit(0);
Is compression incompatible with variable datasets?
Thank you
Eryk
Error message:
.HDF5-DIAG: Error detected in HDF5 (1.8.2) thread 0:
#000: ..\..\..\src\H5D.c line 171 in H5Dcreate2(): unable to create
dataset
major: Dataset
minor: Unable to initialize object
#001: ..\..\..\src\H5Dint.c line 429 in H5D_create_named(): unable to
create and link to dataset
major: Dataset
minor: Unable to initialize object
#002: ..\..\..\src\H5L.c line 1633 in H5L_link_object(): unable to create
new link to object
major: Links
minor: Unable to initialize object
#003: ..\..\..\src\H5L.c line 1856 in H5L_create_real(): can't insert link
major: Symbol table
minor: Unable to insert object
#004: ..\..\..\src\H5Gtraverse.c line 877 in H5G_traverse(): internal path
traversal failed
major: Symbol table
minor: Object not found
#005: ..\..\..\src\H5Gtraverse.c line 703 in H5G_traverse_real():
traversal operator failed
major: Symbol table
minor: Callback failed
#006: ..\..\..\src\H5L.c line 1679 in H5L_link_cb(): unable to create
object
major: Object header
minor: Unable to initialize object
#007: ..\..\..\src\H5O.c line 2531 in H5O_obj_create(): unable to open
object
major: Object header
minor: Can't open object
#008: ..\..\..\src\H5Doh.c line 278 in H5O_dset_create(): unable to create
dataset
major: Dataset
minor: Unable to initialize object
#009: ..\..\..\src\H5Dint.c line 1089 in H5D_create(): filters can only be
used with chunked layout
major: Dataset
minor: Bad value
···
--
Witold Eryk Wolski
Heidmark str 5
D-28329 Bremen
tel.: 04215261837