我想从一个VTK文件中提取一些数据(例如标量),并获取它们在网格上的坐标,然后在Matplotlib中处理。问题是我不知道如何通过名称获取VTK文件中的点/单元格数据(例如给定标量名称),并使用vtk_to_numpy将它们加载到numpy数组中。
我的代码应该像这样:
我的代码应该像这样:
import matplotlib.pyplot as plt
from scipy.interpolate import griddata
import numpy as np
from vtk import *
from vtk.util.numpy_support import vtk_to_numpy
# load input data
reader = vtk.vtkXMLUnstructuredGridReader()
reader.SetFileName("my_input_data.vtk")
reader.Update()
(...missing steps)
# VTK to Numpy
my_numpy_array = vtk_to_numpy(...arguments ?)
#Numpy to Matplotlib (after converting my_numpy_array to x,y and z)
CS = plt.contour(x,y,z,NbLevels)
...
PS: 我知道Paraview可以完成这个任务,但我想在不打开Paraview的情况下后处理一些数据。非常感谢任何帮助。
编辑1
我发现这个pdf教程在学习处理VTK文件的基础知识方面非常有用。
vtk_to_numpy
的文档对此有何说明? - tacaswell