Hello
I got two array of points, wich i can easily read in the dataset using H5Sselect_hyperslab or H5Sselect_elements.
But i would like to select only the points present in both array.
Is there any way to do that with hdf5 or do i need to do it myself ?
Thanks
Mathieu
Hi,
if i understand you correctly, you need to use one of the following values
as first argument in the H5Sselect_hyperslab function:
From H5Spublic.h.
/* Different ways of combining selections */
typedef enum H5S_seloper_t {
H5S_SELECT_NOOP = -1, /* error
*/
H5S_SELECT_SET = 0, /* Select "set" operation */
H5S_SELECT_OR, /* Binary "or" operation for hyperslabs
* (add new selection to existing selection)
* Original region: AAAAAAAAAA
* New region: BBBBBBBBBB
* A or B: CCCCCCCCCCCCCCCC
*/
H5S_SELECT_AND, /* Binary "and" operation for hyperslabs
* (only leave overlapped regions in
selection)
* Original region: AAAAAAAAAA
* New region: BBBBBBBBBB
* A and B: CCCC
*/
H5S_SELECT_XOR, /* Binary "xor" operation for hyperslabs
* (only leave non-overlapped regions in
selection)
* Original region: AAAAAAAAAA
* New region: BBBBBBBBBB
* A xor B: CCCCCC CCCCCC
*/
H5S_SELECT_NOTB, /* Binary "not" operation for hyperslabs
* (only leave non-overlapped regions in
original selection)
* Original region: AAAAAAAAAA
* New region: BBBBBBBBBB
* A not B: CCCCCC
*/
H5S_SELECT_NOTA, /* Binary "not" operation for hyperslabs
* (only leave non-overlapped regions in
new selection)
* Original region: AAAAAAAAAA
* New region: BBBBBBBBBB
* B not A: CCCCCC
*/
H5S_SELECT_APPEND, /* Append elements to end of point
selection */
H5S_SELECT_PREPEND, /* Prepend elements to beginning of point
selection */
H5S_SELECT_INVALID /* Invalid upper bound on selection
operations */
} H5S_seloper_t;
···
On 14 May 2012 23:14, <mathieu.westphal@obs.ujf-grenoble.fr> wrote:
Hello
I got two array of points, wich i can easily read in the dataset using
H5Sselect_hyperslab or H5Sselect_elements.
But i would like to select only the points present in both array.
Is there any way to do that with hdf5 or do i need to do it myself ?
Thanks
Mathieu
______________________________**_________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/**mailman/listinfo/hdf-forum_**hdfgroup.org<http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org>
--
*V.Daskalov*
I've succeded to do what i want, but it's kind of complicated.
I Select all the dataset in dataspace,
i use select_hyperlabs with H5S_SELECT_NOTB with dataspace and second array of hyperslabs.
i extract the current block of selection (let's say array3)
I select the first array or hyperslab in dataspace2
I use select_hyperslab on dataspace 2 with H5S_SELECT_NOTB and Array3.
Mathieu
Quoting Vladimir Daskalov <valado.89@gmail.com>:
···
Hi,
if i understand you correctly, you need to use one of the following values
as first argument in the H5Sselect_hyperslab function:
From H5Spublic.h.
/* Different ways of combining selections */
typedef enum H5S_seloper_t {
H5S_SELECT_NOOP = -1, /* error
*/
H5S_SELECT_SET = 0, /* Select "set" operation */
H5S_SELECT_OR, /* Binary "or" operation for hyperslabs
* (add new selection to existing selection)
* Original region: AAAAAAAAAA
* New region: BBBBBBBBBB
* A or B: CCCCCCCCCCCCCCCC
*/
H5S_SELECT_AND, /* Binary "and" operation for hyperslabs
* (only leave overlapped regions in
selection)
* Original region: AAAAAAAAAA
* New region: BBBBBBBBBB
* A and B: CCCC
*/
H5S_SELECT_XOR, /* Binary "xor" operation for hyperslabs
* (only leave non-overlapped regions in
selection)
* Original region: AAAAAAAAAA
* New region: BBBBBBBBBB
* A xor B: CCCCCC CCCCCC
*/
H5S_SELECT_NOTB, /* Binary "not" operation for hyperslabs
* (only leave non-overlapped regions in
original selection)
* Original region: AAAAAAAAAA
* New region: BBBBBBBBBB
* A not B: CCCCCC
*/
H5S_SELECT_NOTA, /* Binary "not" operation for hyperslabs
* (only leave non-overlapped regions in
new selection)
* Original region: AAAAAAAAAA
* New region: BBBBBBBBBB
* B not A: CCCCCC
*/
H5S_SELECT_APPEND, /* Append elements to end of point
selection */
H5S_SELECT_PREPEND, /* Prepend elements to beginning of point
selection */
H5S_SELECT_INVALID /* Invalid upper bound on selection
operations */
} H5S_seloper_t;
On 14 May 2012 23:14, <mathieu.westphal@obs.ujf-grenoble.fr> wrote:
Hello
I got two array of points, wich i can easily read in the dataset using
H5Sselect_hyperslab or H5Sselect_elements.
But i would like to select only the points present in both array.
Is there any way to do that with hdf5 or do i need to do it myself ?
Thanks
Mathieu
______________________________**_________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/**mailman/listinfo/hdf-forum_**hdfgroup.org<http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org>
--
*V.Daskalov*