Description
It has come time to formalize the API for Xarray backends. We now have the following backends implemented in xarray:
Backend | Read | Write |
---|---|---|
netcdf4-python | x | x |
h5netcdf | x | x |
pydap | x | |
pynio | x | |
scipy | x | x |
rasterio* | x | |
zarr | x | x |
* currently does not inherit from backends.AbstractDatastore
And there are conversations about adding additional backends, for example:
- TileDB: Xarray backends or storage api's pangeo-data/storage-benchmarks#6
- PseudoNetCDF: Added PNC backend to xarray #1905
However, as anyone who has worked on implementing or optimizing any of our current backends can attest, the existing DataStore API is not particularly user/developer friendly. @shoyer asked me to open an issue to discuss what a more user friendly backend API would look like so that is what this issue will be. I have left out a thorough description of the current API because, well, I don't think it can done in a succinct manner (thats the problem).
Note that @shoyer started down a API refactor some time ago in #1087 but that effort has stalled, presumably because we don't have a well defined set of development goals here.
cc @pydata/xarray