xbitinfo.bitround.bitround_along_dim#

xbitinfo.bitround.bitround_along_dim(ds, info_per_bit, dim, inflevels=[1.0, 0.9999, 0.99, 0.975, 0.95])[source]#

Apply bitrounding on slices along dim based on inflevels. Helper function to generate data for Fig. 3 in Klöwer et al. 2021.

Klöwer, M., Razinger, M., Dominguez, J. J., Düben, P. D., & Palmer, T. N. (2021). Compressing atmospheric data into its real information content. Nature Computational Science, 1(11), 713–724. doi: 10/gnm4jj

Parameters
  • ds (xarray.Dataset, xarray.DataArray) – Input

  • info_per_bit (dict) – Information content of each bit for each variable in ds. This is the output from get_bitinformation.

  • dim (str) – Name of dimension for slicing

  • inflevels (list of floats) – Level of information that shall be preserved. Defaults to [1.0, 0.9999, 0.99, 0.975, 0.95].

Returns

ds (xarray.Dataset, xarray.DataArray) – Bitrounded on slices along dim based on inflevels

Example

>>> ds = xr.tutorial.load_dataset("air_temperature")
>>> info_per_bit = xb.get_bitinformation(ds, dim="lon")
>>> ds_bitrounded_along_lon = xb.bitround.bitround_along_dim(
...     ds, info_per_bit, dim="lon"
... )
>>> (ds - ds_bitrounded_along_lon)["air"].isel(time=0).plot()  
<matplotlib.collections.QuadMesh object at ...>