xtensor-r icon indicating copy to clipboard operation
xtensor-r copied to clipboard

combining z5 headers with xtensor-r

Open gdkrmr opened this issue 4 years ago • 3 comments

I am writing a package to read zarr arrays (https://zarr.readthedocs.io/en/stable/) in R. For this I am using the z5 headers (https://github.com/constantinpape/z5/tree/master/include/z5) and xtensor-r. z5 includes facilities to read data into xarrays (https://github.com/constantinpape/z5/blob/master/include/z5/multiarray/xtensor_access.hxx).

I have tried reading data directly into rarrays (https://github.com/gdkrmr/zarr-R/blob/31c4176bcba8b841080d56abed231d2c8f773cd3/src/xtensor-write.cpp#L156) but this failed when reading in entire chunks. Reading into an xarray and then copying into an rarray works fine.

My question is if this is a bug or if I tried to use rarrays in a way I was not supposed to.

CC: @constantinpape

The related issue can be found here: https://github.com/gdkrmr/zarr-R/issues/12

gdkrmr avatar Feb 06 '20 14:02 gdkrmr

hmmm ... do you know how memory allocation is performed when reading these arrays? could be that there lies the problem with xtensor-r.

wolfv avatar Feb 10 '20 11:02 wolfv

hmm. the other potential problem could be that R uses col-major and xtensor by default uses row-major? Not sure about zarr.

wolfv avatar Feb 10 '20 11:02 wolfv

I think zarr can be both, but z5 currently only supports row major. If this is a problem, why does

transform(xarray.begin(), xarray.end(), rarray.begin(), [](auto x){ return x; });

work fine?

gdkrmr avatar Feb 10 '20 13:02 gdkrmr