我正在使用python
与pytables
阅读h5 file
。
基本上我正在做的是:
f = t.open_file(file, mode='r')
root = f.root
obj = f.get_node(root, 'density_100m')
问题是我在访问get_node
时收到警告:
DataTypeWarning: Unsupported type for attribute 'DIMENSION_LIST' in node 'density_100m'. Offending HDF5 class:
它正确地输出节点内部的矩阵,但警告仍在那里。
以下是hdfViewer中数据的外观:
问题在于DIMENSION_LIST,但我不知道如何在没有警告的情况下访问此节点。
答案 0 :(得分:2)
在不知道DIMENSION_LIST的实际数据类型的情况下,我的猜测是这个文件不是用PyTables创建的,而且DIMENSION_LIST属性使用的是PyTables不知道的数据类型,例如float16或类似的东西。只要您不需要显式访问此属性,警告就不是什么大问题。
根据您未显示警告的具体问题,您应该使用正常的Python warning hooks来抑制此行为。鉴于上面的代码,
import warnings
f = t.open_file(file, mode='r')
root = f.root
with warnings.catch_warnings():
warnings.simplefilter("ignore")
obj = f.get_node(root, 'density_100m')
# do stuff with obj