提问人:Muhammed Ibraaheem Noufal 提问时间:6/12/2023 最后编辑:OneCricketeerMuhammed Ibraaheem Noufal 更新时间:6/12/2023 访问量:125
从 vtk 文件中读取字段数据
Reading field data from a vtk file
问:
在下面的 vtk 数据文件中。我不知道如何访问字段数据。我熟悉读取 Polydata 的函数,但不确定如何读取其下方的字段数据。有人可以帮我吗?
# vtk DataFile Version 2.0
sampleSurface
ASCII
DATASET POLYDATA
POINTS 3721 float
0 0 0 0 0.0139286 0 0 0.0278571 0 0 0.0417857
0 0 0.0557143 0 0 0.0696429 0 0 0.0835714 0
0 0.0975 0 0 0.111429 0 0 0.125357 0 0
0.139286 0 0 0.153214 0 0 0.167143 0 0 0.181071
0 0 0.195 0 0 0.208929 0 0 0.222857 0
0 0.236786 0 0 0.250714 0 0 0.264643 0 0
0.278571 0 0 0.2925 0 0 0.306429 0 0 0.320357
0 0 0.334286 0 0 0.348214 0 0 0.362143 0
POLYGONS 3600 18000
4 62 61 0 1 4 63 62 1 2 4
64 63 2 3 4 65 64 3 4 4
66 65 4 5 4 67 66 5 6 4
68 67 6 7 4 69 68 7 8 4
70 69 8 9 4 71 70 9 10 4
72 71 10 11 4 73 72 11 12 4
74 73 12 13 4 75 74 13 14 4
76 75 14 15 4 77 76 15 16 4
78 77 16 17 4 79 78 17 18 4
80 79 18 19 4 81 80 19 20 4
82 81 20 21 4 83 82 21 22 4
84 83 22 23 4 85 84 23 24 4
86 85 24 25 4 87 86 25 26 4
88 87 26 27 4 89 88 27 28 4
90 89 28 29 4 91 90 29 30 4
92 91 30 31 4 93 92 31 32 4
CELL_DATA 3600
FIELD attributes 2
p 1 3600 float
81.7602 82.0853 81.4747 81.251 80.6114 79.9061 79.044 78.027 76.8713 75.5719 74.1311
72.551 70.8329 68.9783 66.9892 64.8677 62.6162 60.2374 57.7347 55.1119 52.3734
49.5245 46.5713 43.5209 40.3816 37.163 33.8764 30.5347 27.1528 23.7481 20.3405
16.953 13.6121 10.3482 7.19618 4.19617 1.39389 -1.15773 -3.3983 -5.2636 -6.67261
-7.52487 -7.68399 -7.59999 -7.35818 -6.99297 -6.53171 -5.99927 -5.41668 -4.80168 -4.16905
-3.52961 -2.89437 -2.27506 -1.67807 -1.03211 -0.572529 -0.157589 1.07343 0.446295 82.0853
82.4052 81.7922 81.5632 80.9185 80.2079 79.3401 78.3174 77.1558 75.8504 74.4034
答:
1赞
yoonghm
6/12/2023
#1
考虑一个非常简单的 vtk 数据文件:data.vtk
# vtk DataFile Version 3.0
VTK example file
ASCII
DATASET POLYDATA
POINTS 3 float
0 0 0
1 0 0
0 1 0
POLYGONS 1 4
3 0 1 2
您可以使用以下代码读取 vtk 数据文件:
import numpy as np
import pyvista as pv
# Read from the current directory in Windows
data = pv.read(".\\data.vtk")
print(f'{data=}')
这是输出:
data=PolyData (0x19455cd0f40)
N Cells: 1
N Points: 3
N Strips: 0
X Bounds: 0.000e+00, 1.000e+00
Y Bounds: 0.000e+00, 1.000e+00
Z Bounds: 0.000e+00, 0.000e+00
N Arrays: 0
vtk 数据文件描述了一个顶点位于 , , 的三角形:(0,0,0)
(1,0,0)
(0,1,0)
POINTS 3 float
指定数据集中有 3 个点,采用浮点数据类型。3 个点的坐标在以下 3 条线中:0 0 0 1 0 0 0 1 0
- 指定数据集中有一个多边形,以及 4 个整数来索引这些点: 3:多边形中有 3 个点
0:第1点在数据集的索引0处,即1:第2点在数据集的索引1处,即2:第3点在数据集的索引2处,即
POLYGONS 1 4
3 0 1 2
(0,0,0)
(1,0,0)
(0,1,0)
您可以从 https://examples.vtk.org/site/VTKFileFormats/ 找到有关 vtk 数据格式的更多信息
评论