VTK 数据未出现在 CellData 或 PointData 中(numpy 接口)

VTK Data does not appear in CellData or PointData (numpy interface)

我有一个 VTK 文件可以正确填充 ParaView 中的数据:

然而,当我用 VTK 的 Python API 打开同一个文件时,我似乎终究无法找到这些相同的标记数据集。这是我尝试过的:

import vtk
from vtk.numpy_interface import dataset_adapter as dsa

reader = vtk.vtkUnstructuredGridReader()
reader.SetFileName('test.vtk')
reader.Update()

adapter = dsa.WrapDataObject(reader.GetOutput())
print(adapter.PointData.keys()) # ['hu', 'disp']
print(adapter.CellData.keys())  # []
print(adapter.FieldData.keys()) # []

因此,ParaView 似乎能够识别除 'hu' 和 'disp' 之外的其他数据集,但我似乎无法在相应的 Python 对象中找到它们。

我假设它就在某处。任何人都知道为什么他们,例如 'meanstress',不作为键出现?

您需要让 reader 读取所有数据。

reader.ReadAllScalarsOn()
reader.ReadAllVectorsOn()
...

依赖于您尝试加载的数据类型。 (标量、向量、张量...查看整个列表:https://vtk.org/doc/nightly/html/classvtkDataReader.html#a831f470c6fbfc6e7209a1243ccb546e2