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.0.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.0-py3-none-win_amd64.whl (451.4 kB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 2Python 3

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

Uploaded Python 2Python 3

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

Uploaded Python 2Python 3

hdf5plugin-2.3.0-py2.py3-none-macosx_10_9_x86_64.whl (876.6 kB view details)

Uploaded Python 2Python 3macOS 10.9+ x86-64

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

Uploaded Python 2Windows x86-64

File details

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

File metadata

  • Download URL: hdf5plugin-2.3.0.tar.gz
  • Upload date:
  • Size: 11.1 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.3.0.tar.gz
Algorithm Hash digest
SHA256 890516eb1281ae0f4dbc55c4cee8a6eda017493da7abe7640d47e7b90b73fceb
MD5 13bca28397835d600f6f8a3dd0e7d962
BLAKE2b-256 dc07eb209d1a578169d028a7ec03de05b9e6caada9ce6913a7a14511ffb1279d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hdf5plugin-2.3.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 451.4 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.3.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 af018994fcd60925da3f93f85f55885f452ee15e72b49cc5d12dd7d37e680563
MD5 a93f0a991e964d275e57ca2c8dc24d25
BLAKE2b-256 ad3ed64a425cedf037a63fd0958a4d08773884a9f2f441f231c355968eabbc8f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hdf5plugin-2.3.0-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.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.3.0-py2.py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9ee369587e129c13832521cbb9644b4aa867e324c39b0ab44cc0ed8a844c6b9a
MD5 285977ef119fcc824e3ef9c1c0f26ed2
BLAKE2b-256 f02c1dfab3cf0dbba35d53db9c3c5653c50cd9cb5795c23056f643830efc8de5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hdf5plugin-2.3.0-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.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.3.0-py2.py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d2b1d8197abc04a02d8df9898f83098059d1fd18b827c4abd18114c2630c0751
MD5 a1fe76cee472905de752807d98d0a7f6
BLAKE2b-256 ced181ae53aed59da0eb30ec840650ed9ad69cfe3579251da1e84cd2f3d06cf0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hdf5plugin-2.3.0-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.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.3.0-py2.py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 39d71d1f3a412c5461b93285eeb28c6429a19f9e199669c57684b60f38fd968b
MD5 4f2d20fbaacb0d2453fe4f3867521013
BLAKE2b-256 1b2ac9f9a0f4bfc1a2afc1202bf03936baace6906f925ebc40661d1f3393453a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hdf5plugin-2.3.0-py2.py3-none-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 876.6 kB
  • Tags: Python 2, Python 3, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/46.3.1 requests-toolbelt/0.8.0 tqdm/4.23.1 CPython/3.6.8

File hashes

Hashes for hdf5plugin-2.3.0-py2.py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f93126352bb6d79105c6ae20787b070d11ba352dbe19df22a4e55190788bfa4e
MD5 a7fde500cf6502818955dadec8592895
BLAKE2b-256 1e4c5403177a4618c02bbf3ebe42954720ff18b4a2901515215d79e7ae3ad661

See more details on using hashes here.

File details

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

File metadata

  • Download URL: hdf5plugin-2.3.0-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.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.3.0-py2-none-win_amd64.whl
Algorithm Hash digest
SHA256 cbe4008da2c9703f70ea57bcb227611a66369f90b9ea3f920d251f5b24f3e18c
MD5 29dd595832e76b365e94dce875297bf0
BLAKE2b-256 d203c1f97933dd3f2daaeb3b1257cc8445642b198543e836f74309467eeee631

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