引用HDF5 Hyperslab doc-:
块数组确定从中选择的元素块的大小 数据空间。该示例在2x2数据集中显示,其参数设置如下:
start offset is specified as [1,1], stride is [4,4], count is [3,7], and block is [2,2]
将产生21个2x2数据块。这里的选择将是(1,1), (5,1), (9,1), (1,5), (5,5)
,我可以理解,因为起点是(1,1),选择从那个点开始,也因为步幅是(4,4),它在每个维度上移动4,计数是(3,7),它在X方向上递增3乘4,在Y,ie方向上递增7乘4。在其对应的维度中。
但我不明白的是块大小是怎么回事?这是否意味着我将得到21 2x2维的块?这意味着每个块包含4个元素,,但计数已设置为1维的3个元素,因此这将如何实现?
通过H5SSELECT_HYSERSLABLE()创建的超级标签选择允许您创建由重复的元素块定义的区域。
HDF5用户指南found here的第7.4.2.2节介绍了这一点(稍微向下滚动到7.4.2.2)。H5Sselect_hyperslab()参考手册条目也可能有所帮助。
这是UG的图表:
下面是该图中使用的值:
偏移量=(0,1) Stride=(4,3) 计数=(2,4) 块=(3,2)请注意,重复单元是3x2元素块。所以,是的,在你的情况下,你将得到21个2x2积木。将有一个网格,在一个维度上有三个块,在另一个维度上有七个块,每个块在每个方向上间隔4个元素。第一个块将偏移1,1。
此API调用最令人困惑的是,其中三个参数以元素为单位,而count以块为单位。
编辑:也许这将使块和计数的使用更明显...