Yeah I agree. Rather than remote sensing / satellite I think the basis should be fully domain agnostic. And if we want we can sprinkle domain specific convenience functions on top in separate packages. This approach is also used for GeoData.jl.
But indeed I also like AxisKeys.jl + NamedDims.jl. GeoArrays.jl uses an affine map rather than keys, but in AxisKeys ranges could be used instead. I have xarray in the back of my head, that is also why I posted here: [ANN] FileTrees.jl -- easy everyday parallelism on trees of files - #6 by visr. Because if we have nice composable packages for:
- named dimensions (e.g. NamedDims.jl)
- fancy array indexing (e.g. AxisKeys.jl)
- chunked arrays (e.g. DiskArrays.jl)
- and can process the chunks in parallel using Dagger.jl / FileTrees.jl / DataSets.jl (see FileTrees link above)
If we have that, we’d be essentially there. But we can take small steps, and not all components are always needed (such as lazy / parallel operations).