在 hdf5 中设置标量固定长度字符串属性

set scalar fixed length string attribute in hdf5

我需要向 HDF 文件添加一些字符串标量属性,这是我的 python:

hdf = h5py.File('data.hdf', 'r+')
hdf['program'].attrs['filename'] = '.\cover.tif'
hdf['program'].attrs['gis'] = 'cover'
hdf.close()

这是有效的,因为它确实添加了两个属性,但是当我在 HDFViewer 中检查它们时,它们具有类型:String, length=variable,我需要在类型中具有实际长度,例如:String, length=5 对于 'cover',我该怎么做?

必须使用如下所示的attrs.create方法:

hdf['program'].attrs.create('gis', 'cover', None, dtype='<S5')

参数是:

name: 'gis'
data: 'cover'
shape: None
dtype (Numpy dtype): '<S5'

dtype 参数中的最后一个 5 是标量字符串的长度。这样,属性的类型将为 String, length=5