Skip to content

Add support to subset by non-equidistant index values #334

@Mikejmnez

Description

@Mikejmnez

minimal example

Consider a tiled, multiple dimensional array. For example this one visualized in Figure 1:
https://pydap.github.io/pydap/en/notebooks/ECCO.html#download-a-single-variable

The array has a dimension called tile of length 13. Each tile represents a region of the world. Imagine I want to subset 3 tiles at once, and stream the data into a local file. If these tiles are contiguous (or equidistant) I can do the following:

<base_url>.dap?dap4.ce=/Depth[0:2,:,:] # <--- example case 1: tiles=0,1,2

<base_url>.dap?dap4.ce=/Depth[2:2:6,:,:] # <--- example case 2: tiles=2,4,6

# or

<base_url>.dap?dap4.ce=/tile=[0:2];/Depth # <--- example case 1: tiles=0,1,2
<base_url>.dap?dap4.ce=/tile=[2:2:6];/Depth # <--- example case 2: tiles=2,4,6

the examples above work because the tiles 0,1,2 are contiguous. But say I want to extract tiles that are NOT contiguous:

<base_url>.dap?dap4.ce=/Depth[(2,5,10),:,:]
# or

<base_url>.dap?dap4.ce=/tile=[2,5,10];/Depth

NOTE: I added ( and ) in the first case above to illustrate the elements I want to subset along the first dimension. In the case of subsetting using shared dimensions, the syntax would be cleaner.

I do not think this is supported: https://opendap.github.io/dap4-specification/DAP4.html#_array_subsetting_in_index_space

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions