簡體   English   中英

vtk閱讀器無法從二進制.vtk文件讀取所有數據數組

[英]vtk reader doesn't read all the data arrays from a binary .vtk file

我想將二進制.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文檔很大,所以也許我錯過了什么?

您缺少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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM