xbitinfo
xbitinfo copied to clipboard
Python wrapper of BitInformation.jl to easily compress xarray datasets based on their information content
xbitinfo: Retrieve information content and compress accordingly
This is an xarray
-wrapper around BitInformation.jl to retrieve and apply bitrounding from within python.
The package intends to present an easy pipeline to compress (climate) datasets based on the real information content.
How the science works
Paper
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
Video
Julia Repository
How to install
Preferred installation
conda install -c conda-forge xbitinfo
Alternative installation
pip install xbitinfo
# ensure to install julia manually
How to use
import xarray as xr
import xbitinfo as xb
example_dataset = 'eraint_uvz'
ds = xr.tutorial.load_dataset(example_dataset)
bitinfo = xb.get_bitinformation(ds, dim="longitude") # calling bitinformation.jl.bitinformation
keepbits = xb.get_keepbits(bitinfo, inflevel=0.99) # get number of mantissa bits to keep for 99% real information
ds_bitrounded = xb.xr_bitround(ds, keepbits) # bitrounding keeping only keepbits mantissa bits
ds_bitrounded.to_compressed_netcdf(outpath) # save to netcdf with compression