Creating new backends#
You can read different type of files) in
xr.open_dataset by specifying the engine to be used:
import xarray as xr xr.open_dataset("my_file.grib" , engine="cfgrib")
For each available engine there is an underlying backend, that reads the data and pack them in a dataset.
Xarray bundles several backends internally for the following formats:
netcdf4 - netCDF4
scipy - netCDF3
zarr - Zarr
pydap - DAP
External Backends that use the new backend API (xarray >= v0.18.0) that allows to add support for backend without any change to Xarray
Why using the Xarray backend API#
Your users don’t need to learn a new interface that is they can use
With little extra effort you can have lazy loading with Dask. you have to implement a function for reading blocks and Xarray will manage lazy loading with Dask for you
It’s easy to implement: you don’t need to integrate any code in Xarray
See the documentation for more.
Follow the tutorial on creating a new backend for binary files.