Skip to main content

Command-line tool and python library for visualising small 3D datasets

Project description

Simple matplotlib-based tool for viewing small amounts of 3D image data; helpful for debugging.


Due to the circumstances in which matplotlib holds open figure windows, and stops updates during blocks, the entire array must be read into memory before it can be viewed. It is a smalldataviewer after all…


pip install smalldataviewer

Some file types require additional dependencies:

  • HDF5: h5py

    • pip install h5py

  • zarr, N5: z5py

    • conda install -c cpape -c conda-forge z5py


As executable

usage: smalldataviewer [-h] [-i INTERNAL_PATH] [-t TYPE] [-o ORDER]
                       [-f OFFSET] [-s SHAPE] [-v]

positional arguments:
  path                  Path to HDF5, N5, zarr, npy or npz file containing a
                        3D dataset

optional arguments:
  -h, --help            show this help message and exit
  -i INTERNAL_PATH, --internal_path INTERNAL_PATH
                        Internal path of dataset inside HDF5, N5, zarr or npz
  -t TYPE, --type TYPE  Dataset file type. Inferred from extension if not
  -o ORDER, --order ORDER
                        Order of spatial axes for axis labelling purposes.
                        Data is not transposed: dimension 0 will be scrolled
                        through, dimension 1 will be on the up-down axis,
                        dimension 2 will be on the left-right axis,
                        anddimension 3, if it exists, will be used as the
                        colour channels. Default "zyx".
  -f OFFSET, --offset OFFSET
                        3D offset of ROI from (0, 0, 0) in pixels
  -s SHAPE, --shape SHAPE
                        3D shape of ROI in pixels
  -v, --verbose         Increase output verbosity

>>> my_data.hdf5 -i /my_group/my_volume

As library

from smalldataviewer import DataViewer, dataviewer_from_file

# data can be anything which slices like a np.ndarray (e.g. h5py dataset)
import numpy as np
data = np.random.random((30, 100, 100))

viewer = DataViewer(data)  # or

viewer2 = dataviewer_from_file(dataviewer, "my_data.npz", "volume") as viewer2:


Because of the circumstances under which python holds file descriptors open and matplotlib blocks, file-based volumes may need to read into numpy arrays to be scrolled through if the .show() is at the end of the script.

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

smalldataviewer-0.3.0.tar.gz (6.7 kB view hashes)

Uploaded source

Built Distribution

smalldataviewer-0.3.0-py2.py3-none-any.whl (9.7 kB view hashes)

Uploaded py2 py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page