Combine two selections
H5Scombine_select(h5space1, op = h5default("H5S_SELECT"), h5space2)H5IdComponent objects representing a dataspaces.
Character string defined the operation used to join the two
dataspaces. See h5const("H5S_SELECT") for the list of available options.
Returns an H5IdComponent object representing a new dataspace.
The new dataspace will have the same extent as h5space1 with the
hyperslab selection being the result of combining the selections of
h5space1 and h5space2.
## create two 1 dimensional dataspaces
## of different sizes
sid_1 <- H5Screate_simple(dims = 20)
sid_2 <- H5Screate_simple(dims = 10)
## select a single block of 5 points in sid_1
## this is equivalent to [11:16] in R syntax
H5Sselect_hyperslab(sid_1,
start = 11, stride = 1,
block = 5, count = 1
)
## select 2 blocks of 1 point from sid_2
## equivalent to [c(3,5)] in R syntax
H5Sselect_hyperslab(sid_2,
start = 3, stride = 2,
block = 1, count = 2
)
## confirm we have select 5 and 2 points resepectively
H5Sget_select_npoints(sid_1)
#> [1] 5
H5Sget_select_npoints(sid_2)
#> [1] 2
## combine the two dataset selections keeping points that
## are in one or both of the selections
sid_3 <- H5Scombine_select(sid_1, "H5S_SELECT_OR", sid_2)
## extent of the new dataset is the same as sid_1
sid_3
#> HDF5 DATASPACE
#> rank 1
#> size 20
#> maxsize 20
## confirm the selection contains 7 points
H5Sget_select_npoints(sid_3)
#> [1] 7
## tidy up
H5Sclose(sid_1)
H5Sclose(sid_2)
H5Sclose(sid_3)