GUI programs to view HDF5/NetCDF4 data

1 minute read

Related: Check HDF5 files for corruption


Here are a few options for graphically browsing and editing HDF5 data files from Linux, Mac and Windows.

HDFview

HDFview is maintained by the curators of the HDF5 format, the HDF Group. HDFView enables editing (writing) as well as reading HDF5.

  • Linux: apt install hdfview
  • Mac, Windows download

HDFview needs compiling if running from source, unlike ImageJ, which is a pure platform-independent Java program.

Ubuntu 18.04

It seems that Ubuntu 18.04 has a broken hdfview such that the program opens, but silently fails to read any HDF5/NetCDF4 files. As an alternative, I use HDF-Compass on Ubuntu 18.04

HDF-Compass

HDF Compass is also by the HDF Group. Unlike HDFView, HDF Compass is read-only.

apt install hdf-compass

Instead of using the menus, I typically open one or more HDF5/NetCDF4 files from Terminal like:

HDFCompass f1.h5 f2.nc

ViTables

ViTables is a Python-based HDF5 viewing program.

apt install libhdf5-dev

python -m pip install pyqt5

python -m pip install vitables

Unfortunately at this time PyQT5 doesn’t have a .whl for armhf, so that means ViTables only works on non-ARM systems (laptops, desktops, NOT Raspberry Pi).

PanoplyJ

PanoplyJ is downloaded for Mac, Linux or Windows. PanoplyJ does not require compiling, just run it using Java.

  1. Linux PanoplyJ requires Java 8 or newer.
    apt install openjdk-8-jre
    
  2. extract PanoplyJ and make executable
    unzip PanoplyJ-4*.zip -d ~
    
    chmod +x ~/PanoplyJ/panoply.sh
    
  3. run PanoplyJ
    ~/PanoplyJ/panoply.sh
    
  4. Make a command-line shortcut by adding to ~/.bash_aliases
    alias panoply='$HOME/PanoplyJ/panoply.sh'
    

If you get PanoplyJ error

Unknown superblock version=3

This is because PanoplyJ ≤ 4.8.5:

  • isn’t yet ready for the new HDF5 1.10 library.
  • is compatible with legacy HDF5 1.8 library.

If you’re writing the HDF5 files from h5py, you can use in your Python program writing the data:

with h5py.File('myfile.h5',libver='earliest') as f:
   ....

which should write in HDF5 1.8-compatible way.

Leave a comment