The documentation for VTKHDF seems to suggest that the following code:
import h5py
import numpy as np
with h5py.File("wtf.hdf",'w') as hdffile:
# write support data
vtkhdf_group = hdffile.create_group("VTKHDF")
vtkhdf_group.attrs.create("Version", [1, 0])
vtkhdf_group.attrs.create("Type",np.string_("ImageData"))
whole_extent = (0, 3, 0, 1, 0, 0)
vtkhdf_group.attrs.create("WholeExtent", whole_extent)
vtkhdf_group.attrs.create("Origin", (0.0, 0.0, 0.0))
vtkhdf_group.attrs.create("Spacing", (1.0, 1.0, 1.0))
vtkhdf_group.attrs.create("Direction", (1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0))
# create the pointdata group and the dataset inside it
field_data_group = vtkhdf_group.create_group("PointData")
field_data_group.attrs.create('Scalars', ["D1","D2"],) ## Doesn't work
dset1 = field_data_group.create_dataset('D1',dtype=np.uint8,shape=(2,4))
dset1[:, :] = np.reshape([0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0],(2, 4))
dset2 = field_data_group.create_dataset('D2',dtype=np.uint8,shape=(2,4))
dset2[:, :] = np.reshape([7.0,6.0,5.0,4.0,3.0,2.0,1.0,0.0],(2, 4))
would generate a valid file with two PointData datasets, but when viewing is attempted in Paraview 5.1.1 it crashes. This is just to confirm I am reading the limited documentation correctly.