pytables. Предупреждение о доступе к узлу с помощью f.get_node()

Я использую 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, но я понятия не имею, как получить доступ к этому узлу без предупреждения.


person Salvador Dali    schedule 29.09.2013    source источник


Ответы (1)


Не зная фактического типа данных DIMENSION_LIST, я предполагаю, что этот файл не был создан с помощью PyTables и что атрибут DIMENSION_LIST использует тип данных, о котором PyTables не знает, например float16 или что-то подобное. Предупреждение не имеет большого значения, если вам не требуется явный доступ к этому атрибуту.

В соответствии с вашей конкретной проблемой отсутствия отображения предупреждения вы должны использовать обычный Перехватчики предупреждений Python для подавления такого поведения. Учитывая ваш код выше,

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
person Anthony Scopatz    schedule 30.09.2013