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

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.1.0.tar.gz (4.6 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.1.0-py3-none-win_amd64.whl (314.1 kB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 2Python 3

hdf5plugin-2.1.0-py2.py3-none-macosx_10_9_x86_64.whl (674.8 kB view details)

Uploaded Python 2Python 3macOS 10.9+ x86-64

hdf5plugin-2.1.0-py2-none-win_amd64.whl (435.8 kB view details)

Uploaded Python 2Windows x86-64

File details

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

File metadata

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

File hashes

Hashes for hdf5plugin-2.1.0.tar.gz
Algorithm Hash digest
SHA256 dce81b1cfc370eac8753580f3648526933ce54fa584efac6743633cb99348eaf
MD5 b985e7a3e4acaa5da37580f8886fea71
BLAKE2b-256 43a6cd1d7aadd2305e0c0fc8afd6e2a3555c9e5e6fd5f83e496f03753d713def

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for hdf5plugin-2.1.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ab1921e4f3b4891d2f56a197bc0e5d9f424cb9e29a77b659b9956439d7d50415
MD5 eb0176e2cf209b93c29c8621e9d60fa8
BLAKE2b-256 64a352415537d59edc8f4589960e6566b4aa6f2e401286fdf90f3bda5495de97

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hdf5plugin-2.1.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/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.3

File hashes

Hashes for hdf5plugin-2.1.0-py2.py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 3d8da71344359d5bd1cc230d70e8aca05bbfaddca801c8d87f5b54bd4fc30b41
MD5 bab842584a95e4af559af0a69b758761
BLAKE2b-256 50f7f15f90f8450ce63aa9b3b6821f3a919d353a6242bf349102dda16be0a70a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for hdf5plugin-2.1.0-py2.py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 73bbf3a7b702ca83828fc293731178725c879bb56ca6c0d3f9f59b330a84f415
MD5 7507fa75373b09f95276efcaaff0560b
BLAKE2b-256 3e0f5e7a6ecc63a1c619dbc18816e7e08b544384d26d2eaf80e6fc1211f55e5a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for hdf5plugin-2.1.0-py2-none-win_amd64.whl
Algorithm Hash digest
SHA256 28a96c7704a596e97d6cfe3512a55a19303de123bca64630a2d2028cb946e2e0
MD5 3c84b442b61d677f034e4eeb86394a86
BLAKE2b-256 213909ad30a29b44d8e70e503005ff13b27c6765c35a101c552fc5a930220052

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