Point selection


I am trying to figure out how to create a point selection in the HSDS query as described here: https://github.com/HDFGroup/hsds/issues/215

Summarizing, I would like to create a point selection like this:

    [2, 4],
    [1, 3],
    [9, 9]

which I translate into a query string like this (which does not work):
http://hsdshdflab.hdfgroup.org/datasets/d-d38053ea-3418fe27-22d9-478e7b-913279/value?domain=/shared/tall.h5&select=[[2, 1, 9],[4, 3, 9]]

I hope anybody can point me in the right direction. Thanks :slight_smile:

GET Value requests always do a hyperslab selection. You will need to do a POST requests with the points you want in the body of the request. Something like this:

POST http://hsdshdflab.hdfgroup.org/datasets/d-d38053ea-3418fe27-22d9-478e7b-913279/value?domain=/shared/tall.h5
   points: [[2,4],[1,3],[9,9]]

The rational for use POST vs GET is that it’s very possible that clients will make point selections with 1000’s of points. Listing all of those as query parameters in a GET request could cause problems because some browsers and servers have a limit on the length of the query string. There’s no such limit on the size of the request body, so POST works well for point selections.

There’s an example of doing a point selection over a 2D dataset here: https://github.com/HDFGroup/hsds/blob/master/tests/integ/pointsel_test.py#L171.

Also see the rest-api docs: https://github.com/HDFGroup/hdf-rest-api/blob/master/DatasetOps/POST_Value.md

Let me know if this helps!

Thanks for giving the rationale (makes sense!) and the corrected post message. With your help and that of jhendersonHDF in GitHub it works fine now :slight_smile: