vtk reader不会从二进制文件中读取所有的数据数组

2024-10-01 04:49:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把binary.vtk文件的内容上传到python中。我的python-vtk包装器是与conda一起安装的,版本是8.2.0。你知道吗

虽然我知道该文件应该至少包含9个标量数组和2个向量数组,但我的脚本输出显示只有2个。我的剧本在下面。你知道吗

import vtk
reader = vtk.vtkDataSetReader()
reader.SetFileName("output_binary_6.vtk")
reader.Update()

dataSet = reader.GetOutput()

vtkPointData = dataSet.GetPointData()

pd = dataSet.GetPointData()
pd.GetNumberOfArrays() # Gives 0

cd = dataSet.GetCellData()
cd.GetNumberOfArrays() # Gives 2, I expect 11

应用于输出文件的ASCII版本的grep给出了以下文本行

CoRheoS 2 Output Data
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 269104 float
CELLS 255162 2296458
CELL_TYPES 255162
FIELD FieldData 1
TIME 1 1 double
CELL_DATA 255162
SCALARS concentration float
LOOKUP_TABLE default
SCALARS potential float
LOOKUP_TABLE default
VECTORS particle_flux float
VECTORS current_density float
SCALARS overpotential float
LOOKUP_TABLE default
SCALARS materialIdentifier float
LOOKUP_TABLE default
SCALARS ise float
LOOKUP_TABLE default
SCALARS iseAverage float
LOOKUP_TABLE default
SCALARS individualOCV float
LOOKUP_TABLE default
SCALARS platingCondition float
LOOKUP_TABLE default

但是上面的脚本仍然只看到2个。你知道吗

如何获取剩余数据?vtk文档很大,所以我可能错过了什么?你知道吗


Tags: 文件版本脚本defaulttable数组floatlookup
1条回答
网友
1楼 · 发布于 2024-10-01 04:49:26

缺少ReadAll*On方法。见文件: https://vtk.org/doc/nightly/html/classvtkDataReader.html#a5dbeb7d4ead33542721785646f8bb94f

import vtk
reader = vtk.vtkDataSetReader()
reader.SetFileName("output_binary_6.vtk")
reader.ReadAllScalarsOn()
reader.ReadAllVectorsOn()
reader.ReadAllTensorsOn()
reader.ReadAllFieldsOn()
reader.Update()

相关问题 更多 >