Skip to main content

HDF5 Plugins for windows,MacOS and linux

Project description

This module provides HDF5 compression filters (namely: blosc, bitshuffle, lz4, FCIDECOMP, ZFP) and registers them to the HDF5 library used by h5py.

  • Supported operating systems: Linux, Windows, macOS.

  • Supported versions of Python: 2.7 and >= 3.4

hdf5plugin provides a generic way to enable the use of the provided HDF5 compression filters with h5py that can be installed via pip or conda.

Alternatives to install HDF5 compression filters are: system-wide installation on Linux or other conda packages: blosc-hdf5-plugin, hdf5-lz4.

The HDF5 plugin sources were obtained from:

Installation

To install, run:

pip install hdf5plugin [--user]

or, with conda (https://anaconda.org/conda-forge/hdf5plugin):

conda install -c conda-forge hdf5plugin

To install from source and recompile the HDF5 plugins, run:

pip install hdf5plugin --no-binary hdf5plugin [--user]

Installing from source can achieve better performances by enabling AVX2 and OpenMP if available.

Documentation

To use it, just use import hdf5plugin and supported compression filters are available from h5py.

Sample code:

import numpy
import h5py
import hdf5plugin

# Compression
f = h5py.File('test.h5', 'w')
f.create_dataset('data', data=numpy.arange(100), **hdf5plugin.LZ4())
f.close()

# Decompression
f = h5py.File('test.h5', 'r')
data = f['data'][()]
f.close()

hdf5plugin provides:

Bitshuffle(nelems=0, lz4=True)

This class takes the following arguments and returns the compression options to feed into h5py.Group.create_dataset for using the bitshuffle filter:

  • nelems the number of elements per block, needs to be divisible by eight (default is 0, about 8kB per block)

  • lz4 if True the elements get compressed using lz4 (default is True)

It can be passed as keyword arguments.

Sample code:

f = h5py.File('test.h5', 'w')
f.create_dataset('bitshuffle_with_lz4', data=numpy.arange(100),
      **hdf5plugin.Bitshuffle(nelems=0, lz4=True))
f.close()

Blosc(cname=’lz4’, clevel=5, shuffle=SHUFFLE)

This class takes the following arguments and returns the compression options to feed into h5py.Group.create_dataset for using the blosc filter:

  • cname the compression algorithm, one of:

    • ‘blosclz’

    • ‘lz4’ (default)

    • ‘lz4hc’

    • ‘snappy’ (optional, requires C++11)

    • ‘zlib’

    • ‘zstd’

  • clevel the compression level, from 0 to 9 (default is 5)

  • shuffle the shuffling mode, in:

    • Blosc.NOSHUFFLE (0): No shuffle

    • Blosc.SHUFFLE (1): byte-wise shuffle (default)

    • Blosc.BITSHUFFLE (2): bit-wise shuffle

It can be passed as keyword arguments.

Sample code:

f = h5py.File('test.h5', 'w')
f.create_dataset('blosc_byte_shuffle_blosclz', data=numpy.arange(100),
    **hdf5plugin.Blosc(cname='blosclz', clevel=9, shuffle=hdf5plugin.Blosc.SHUFFLE))
f.close()

FciDecomp()

This class returns the compression options to feed into h5py.Group.create_dataset for using the FciDecomp filter:

It can be passed as keyword arguments.

Sample code:

f = h5py.File('test.h5', 'w')
f.create_dataset('fcidecomp', data=numpy.arange(100),
    **hdf5plugin.FciDecomp())
f.close()

LZ4(nbytes=0)

This class takes the number of bytes per block as argument and returns the compression options to feed into h5py.Group.create_dataset for using the lz4 filter:

  • nbytes number of bytes per block needs to be in the range of 0 < nbytes < 2113929216 (1,9GB). The default value is 0 (for 1GB).

It can be passed as keyword arguments.

Sample code:

f = h5py.File('test.h5', 'w')
f.create_dataset('lz4', data=numpy.arange(100),
    **hdf5plugin.LZ4(nbytes=0))
f.close()

Zfp()

This class returns the compression options to feed into h5py.Group.create_dataset for using the zfp filter:

It can be passed as keyword arguments.

Sample code:

f = h5py.File('test.h5', 'w')
f.create_dataset('zfp', data=numpy.random.random(100),
    **hdf5plugin.Zfp())
f.close()

The zfp filter compression mode is defined by the provided arguments. The following compression modes are supported:

  • Fixed-rate mode: For details, see zfp fixed-rate mode.

    f.create_dataset('zfp_fixed_rate', data=numpy.random.random(100),
        **hdf5plugin.Zfp(rate=10.0))
  • Fixed-precision mode: For details, see zfp fixed-precision mode.

    f.create_dataset('zfp_fixed_precision', data=numpy.random.random(100),
        **hdf5plugin.Zfp(precision=10))
  • Fixed-accuracy mode: For details, see zfp fixed-accuracy mode.

    f.create_dataset('zfp_fixed_accuracy', data=numpy.random.random(100),
        **hdf5plugin.Zfp(accuracy=0.001))
  • Reversible (i.e., lossless) mode: For details, see zfp reversible mode.

    f.create_dataset('zfp_reversible', data=numpy.random.random(100),
        **hdf5plugin.Zfp(reversible=True))
  • Expert mode: For details, see zfp expert mode.

    f.create_dataset('zfp_expert', data=numpy.random.random(100),
        **hdf5plugin.Zfp(minbits=1, maxbits=16657, maxprec=64, minexp=-1074))

Dependencies

Testing

To run self-contained tests, from Python:

import hdf5plugin.test
hdf5plugin.test.run_tests()

Or, from the command line:

python -m hdf5plugin.test

To also run tests relying on actual HDF5 files, run from the source directory:

python test/test.py

This tests the installed version of hdf5plugin.

License

The source code of hdf5plugin itself is licensed under the MIT license. Use it at your own risk. See LICENSE

The source code of the embedded HDF5 filter plugin libraries is licensed under different open-source licenses. Please read the different licenses:

The HDF5 v1.10.5 headers (and Windows .lib file) used to build the filters are stored for convenience in the repository. The license is available here: src/hdf5/COPYING.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hdf5plugin-2.3.2.tar.gz (11.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

hdf5plugin-2.3.2-py3-none-win_amd64.whl (476.4 kB view details)

Uploaded Python 3Windows x86-64

hdf5plugin-2.3.2-py2.py3-none-manylinux2014_x86_64.whl (5.4 MB view details)

Uploaded Python 2Python 3

hdf5plugin-2.3.2-py2.py3-none-manylinux2014_ppc64le.whl (5.3 MB view details)

Uploaded Python 2Python 3

hdf5plugin-2.3.2-py2.py3-none-manylinux1_x86_64.whl (2.8 MB view details)

Uploaded Python 2Python 3

hdf5plugin-2.3.2-py2.py3-none-macosx_10_9_x86_64.whl (829.1 kB view details)

Uploaded Python 2Python 3macOS 10.9+ x86-64

hdf5plugin-2.3.2-py2-none-win_amd64.whl (437.7 kB view details)

Uploaded Python 2Windows x86-64

File details

Details for the file hdf5plugin-2.3.2.tar.gz.

File metadata

  • Download URL: hdf5plugin-2.3.2.tar.gz
  • Upload date:
  • Size: 11.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-2.3.2.tar.gz
Algorithm Hash digest
SHA256 c3c982953745abb7eb432afdcbf50ab837d18f056d92465a4bf6f8a86cff63b7
MD5 59d3e6c797e935db5966e5999a9afd9c
BLAKE2b-256 79a0e26234dcacf69cadc4db4352b2d734e45b8bc443f15eb2e71ef1171260e8

See more details on using hashes here.

File details

Details for the file hdf5plugin-2.3.2-py3-none-win_amd64.whl.

File metadata

  • Download URL: hdf5plugin-2.3.2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 476.4 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-2.3.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 2fcf65b38791b2e7d51806d431a752aa56318c9aa45f9ef240377e83cad79234
MD5 a829b33ca3d7616da7bd4ac046bc57e1
BLAKE2b-256 51882a4db5b975a54ffb0f1d4ef65978a45ddafd2541ac13908fbf0ac58d7169

See more details on using hashes here.

File details

Details for the file hdf5plugin-2.3.2-py2.py3-none-manylinux2014_x86_64.whl.

File metadata

  • Download URL: hdf5plugin-2.3.2-py2.py3-none-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 5.4 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-2.3.2-py2.py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 70e0a574c1e66b6f69ee0cf8d5929f1a0e753e3bb180f2a54ae09a3547144f95
MD5 44552855f63e46bcbc67741d67aa1ec6
BLAKE2b-256 60e6c95b71bc4e903aabd1fa84367bb6cce7a70d66910741df505cf8d10f80b5

See more details on using hashes here.

File details

Details for the file hdf5plugin-2.3.2-py2.py3-none-manylinux2014_ppc64le.whl.

File metadata

  • Download URL: hdf5plugin-2.3.2-py2.py3-none-manylinux2014_ppc64le.whl
  • Upload date:
  • Size: 5.3 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-2.3.2-py2.py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 9c26b9f87cfbead265873630edfd34123629d25b0af267261ac927a3b274f3cc
MD5 7603f413b12c878ca3d2916853878e7d
BLAKE2b-256 92a37c8fae9491dfa85eb26b856bcf5cb8e104ee6ea85ecefddb89a6d3659aeb

See more details on using hashes here.

File details

Details for the file hdf5plugin-2.3.2-py2.py3-none-manylinux1_x86_64.whl.

File metadata

  • Download URL: hdf5plugin-2.3.2-py2.py3-none-manylinux1_x86_64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-2.3.2-py2.py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d66d8327ca87aba9f4e8832dff87ecb5924991719b1fcbdef653fdf40e38997a
MD5 6031a31cbacbc3e3ce3059de37003443
BLAKE2b-256 7ae9fafd6b0ea54ae9422e78f87ed0a88e78abc6f6d78de2923b76789f45aa2e

See more details on using hashes here.

File details

Details for the file hdf5plugin-2.3.2-py2.py3-none-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: hdf5plugin-2.3.2-py2.py3-none-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 829.1 kB
  • Tags: Python 2, Python 3, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-2.3.2-py2.py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3969d012a26950ea1af7996b166c240645237f992f945cddb0f68e8c414ab625
MD5 df30f9853228edd4a683e8a0c2869ad4
BLAKE2b-256 b8f297c68937c2d3fa35fc0c2d8680fae4762fbc2b5e450d62a14106d373753d

See more details on using hashes here.

File details

Details for the file hdf5plugin-2.3.2-py2-none-win_amd64.whl.

File metadata

  • Download URL: hdf5plugin-2.3.2-py2-none-win_amd64.whl
  • Upload date:
  • Size: 437.7 kB
  • Tags: Python 2, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-2.3.2-py2-none-win_amd64.whl
Algorithm Hash digest
SHA256 c8d27b66706e63e8348691d014c651196f825362b2bf2877484a60f029d0e031
MD5 2c69e12849473a9f079e7d3fae99ea67
BLAKE2b-256 e4cda6ea6da1f4212e28b0f849cf8b501c73fa98751cf05f92bad333c643041d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page