我在HDF5上使用HDF5包装器库,并希望降至copy,以便有效地将数据集从源HDF5文件复制到目标文件中。(在另一条道路上,但这不是重点)。
我可以访问目的地的低级别ID和路径,但对于源,我只有H5::DataSet C++包装实例,而H5Ocopy() (见下面的原型)需要包含dataset 的源文件的hid_t,并在该源文件中使用的路径。
是否有方法从H5::DataSet实例获取丢失的文件-hid_t和DataSet-路径?
直觉上,我认为一定有,但我找不到他们到那个地步。-DD
PS:从已知的API层开始,很难在API层中显示这些id/路径,因为想要执行H5OCopy的代码在时间和空间上都非常遥远。
H5_DLL herr_t H5Ocopy(
hid_t src_loc_id, const char *src_name,
hid_t dst_loc_id, const char *dst_name,
hid_t ocpypl_id, hid_t lcpl_id
);
发布于 2020-01-15 15:27:03
如果这是您的选择,请看一看HDFql,因为它可以极大地简化将数据集从一个HDF5文件复制到另一个HDF5文件的方法。例如,要将名为dset
的数据集从文件one.h5
复制到文件two.h5
,只需使用HDFql在C++中执行以下操作:
HDFql::execute("COPY DATASET one.h5 dset TO two.h5 dset");
此外,您可以将dset
复制到另一个组(从文件two.h5
)中,并为数据集提供另一个名称,例如:
HDFql::execute("COPY DATASET one.h5 dset TO two.h5 /group/new_dset");
有关其他信息和示例,请查看HDFql 参考手册。
https://stackoverflow.com/questions/59752718
复制相似问题