Source code for intake_xarray.xzarr

from .base import DataSourceMixin


[docs]class ZarrSource(DataSourceMixin): """Open a xarray dataset. Parameters ---------- urlpath: str Path to source. This can be a local directory or a remote data service (i.e., with a protocol specifier like ``'s3://``). storage_options: dict Parameters passed to the backend file-system kwargs: Further parameters are passed to xr.open_zarr """ name = 'zarr' def __init__(self, urlpath, storage_options=None, metadata=None, **kwargs): super(ZarrSource, self).__init__(metadata=metadata) self.urlpath = urlpath self.storage_options = storage_options or {} self.kwargs = kwargs self._ds = None def _open_dataset(self): import xarray as xr from fsspec import get_mapper self._mapper = get_mapper(self.urlpath, **self.storage_options) self._ds = xr.open_zarr(self._mapper, **self.kwargs)
[docs] def close(self): super(ZarrSource, self).close() self._fs = None self._mapper = None