Skip to main content

HDF5 Plugins for windows,MacOS and linux

Project description

This module provides HDF5 compression filters (namely: blosc, bitshuffle and lz4) 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()

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()

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()

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.2.0.tar.gz (10.8 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.2.0-py3-none-win_amd64.whl (368.3 kB view details)

Uploaded Python 3Windows x86-64

hdf5plugin-2.2.0-py2.py3-none-manylinux2014_x86_64.whl (4.8 MB view details)

Uploaded Python 2Python 3

hdf5plugin-2.2.0-py2.py3-none-manylinux1_x86_64.whl (2.4 MB view details)

Uploaded Python 2Python 3

hdf5plugin-2.2.0-py2.py3-none-macosx_10_9_x86_64.whl (758.8 kB view details)

Uploaded Python 2Python 3macOS 10.9+ x86-64

hdf5plugin-2.2.0-py2-none-win_amd64.whl (436.2 kB view details)

Uploaded Python 2Windows x86-64

File details

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

File metadata

  • Download URL: hdf5plugin-2.2.0.tar.gz
  • Upload date:
  • Size: 10.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 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.2.0.tar.gz
Algorithm Hash digest
SHA256 484250ec6e23ca12dc6812cba901fcefcc21b1c5ee6abd35bc56c121181aecc5
MD5 a4c9c8298633a15dcaf50b2ecba81a32
BLAKE2b-256 c1a38d7668d2c46f23ad9d2b5df9ab40caffbd4b169dde3159b7020dab8fcec1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hdf5plugin-2.2.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 368.3 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 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.2.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 b5c08ba10c327d8f1bb8a1d029da8232801695b9bd51fb42bdb32a0cc6f177e1
MD5 e5474522fb4b9f4de1cf9b683d62b9ff
BLAKE2b-256 2f045300b2292b9ba74ee7938980abcd53d94caf82e5aa686fd7fc20aa0a855f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hdf5plugin-2.2.0-py2.py3-none-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 4.8 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 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.2.0-py2.py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 286c446dc4477122dfc48f63cd55f4ed412731a7a98f90fd2709c1a14f9b8aa7
MD5 fb7e2269990dda1a14cdafc3c1cb7c78
BLAKE2b-256 b898530be3ed4b94c87dc2da5aecc98ec6e8283a1d3c7234473561992f0339dd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hdf5plugin-2.2.0-py2.py3-none-manylinux1_x86_64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 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.2.0-py2.py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b25b3fb5391351a1c27a56fa9026f2b00b5992367b2b94a8eb489b8854c7f0fb
MD5 d65194988503d7b1be598a80ab1fd213
BLAKE2b-256 d9b677d659813d4167605546dfd2bd0f20a9f85208d16f5effcc3f8b8c6c89b9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hdf5plugin-2.2.0-py2.py3-none-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 758.8 kB
  • Tags: Python 2, Python 3, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 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.2.0-py2.py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 eeeef773e58a9109f59e81b555fb1f52557fb4004ab037c14e333f92753426c4
MD5 8c8c991aa96f96ab0044ee4e79f7c3ee
BLAKE2b-256 2263ee8de9b27ed50aa74af7f9d313d1b323c2e747016e3ba94329ed0526cc4f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hdf5plugin-2.2.0-py2-none-win_amd64.whl
  • Upload date:
  • Size: 436.2 kB
  • Tags: Python 2, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 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.2.0-py2-none-win_amd64.whl
Algorithm Hash digest
SHA256 49a6980d5cf8cc293bac5797505f5a4de0027cd4d34ccb198d20c13c970c41b1
MD5 3ef5fd7a715797d90937fa5308b0d554
BLAKE2b-256 ce73ab0b065379871f4a5e7cd7b5db177daa252ead5e7fc390abafefd03f7005

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