[英]Reading .vtk file with multiple scalars
我在讀取具有多個標量的.vtk文件時遇到問題。 這是一個示例文件“ data_test”,我假設它描述了單細胞網格上的兩個標量。
# vtk DataFile Version 2.0
1, sec.
ASCII
DATASET RECTILINEAR_GRID
FIELD FieldData 2
TIME 1 1 double
1.0
SPACE 1 1 int
2
DIMENSIONS 2 2 1
X_COORDINATES 2 double
0.00000000000000E+0000
4.00000000000000E-0004
Y_COORDINATES 2 double
-4.28049291420691E-0002
-4.24045609948740E-0002
Z_COORDINATES 1 double
0.00000000000000E+0000
CELL_DATA 1
SCALARS first_scalar double 1
LOOKUP_TABLE default
1.00000071870987E+0012
SCALARS second_scalar double 1
LOOKUP_TABLE default
2.78177630625252E-0002
這是我嘗試使用標准python-vtk工具解析此文件的嘗試
from vtk import *
reader = vtk.vtkGenericDataObjectReader()
reader.SetFileName(r'data_test')
reader.Update()
vtk_out = reader.GetOutput()
scalar_names = [reader.GetScalarsNameInFile(i) for i in range(0, reader.GetNumberOfScalarsInFile())]
print 'scalar names\n', scalar_names
print '\ncell data\n', vtk_out.GetCellData()
評價給
scalar names
**['first_scalar', 'second_scalar']**
cell data
vtkCellData (0x86671c0)
Debug: Off
Modified Time: 468
Reference Count: 2
Registered Events: (none)
**Number Of Arrays: 1**
**Array 0 name = first_scalar**
Number Of Components: 1
Number Of Tuples: 1
Copy Tuple Flags: ( 1 1 1 1 1 0 1 1 )
Interpolate Flags: ( 1 1 1 1 1 0 0 1 )
Pass Through Flags: ( 1 1 1 1 1 1 1 1 )
Scalars:
Debug: Off
Modified Time: 441
Reference Count: 1
Registered Events: (none)
Name: first_scalar
Data type: double
Size: 1
MaxId: 0
NumberOfComponents: 1
Information: 0
Name: first_scalar
Number Of Components: 1
Number Of Tuples: 1
Size: 1
MaxId: 0
LookupTable: (none)
Array: 0x8887198
Vectors: (none)
Normals: (none)
TCoords: (none)
Tensors: (none)
GlobalIds: (none)
PedigreeIds: (none)
EdgeFlag: (none)
這里的問題是第二個標量僅出現在名稱空間中,而不出現在單元格數據中,而且我不知道如何訪問它。 例如,我可以使用vtk_out.GetCellData().GetArray('first_scalar')
但vtk_out.GetCellData().GetArray('second_scalar')
會引發錯誤。 我究竟做錯了什么?
表達命令
reader.ReadAllScalarsOn()
放置在reader.Update()
之前,hm。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.