pytables。警告使用f.get_node()访问节点

时间:2013-09-29 20:30:31

标签: python hdf5 pytables

我正在使用pythonpytables阅读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中数据的外观: enter image description here

问题在于DIMENSION_LIST,但我不知道如何在没有警告的情况下访问此节点。

1 个答案:

答案 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