问题描述
items: [
{
type: "foo",foo_a: [1,2,3],foo_b: "Dave",foo_c: false
},{
type: "bar",bar_a: 4,bar_b: [false,true]
},...
]
换句话说,我有一组标记的联合。在HDF5中存储此数据的最佳方法是什么?据我所知,它不是natively support unions:
HDF5不支持具有可区分记录或等同于C并集的数据类型
在HDF5中,我找到的关于工会的唯一其他参考文献是在a wishlist from 2007中:
支持联合(区分,变体等)数据类型。
联合(或联合)数据类型是一种可以在同一位置存储几种不同类型的数据类型。这类似于C中的并集数据类型。 它的一种变体是“标记联合”类型,其中标记字段指示在任何给定实例中表示的是哪种类型,以便数据元素 在访问元素时正确处理。联盟可以通过重叠每种类型的存储区域来节省存储空间,因为一次只能使用一个。 对此功能有很多兴趣,但到目前为止,我们尚未获得此功能的资源。
如何存储这些数据?我能想到的唯一选择是:
- 将每个变体存储在引用它们的单独数据集中:
items: [
{
type: "foo",index: 0
},...
],items_foo: [
{
foo_a: [1,items_bar: [
{
bar_a: 4,...
]
items: [
{
type: "foo",foo_c: false,bar_a: 0,bar_b: []
},true],foo_a: [],foo_b: "",...
]
所有这些选项都很糟糕(尽管我认为第一个选项可能是最好,最干净的)。有更好的方法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)