【发布时间】:2014-06-02 00:26:19
【问题描述】:
我想从 VTK 文件中提取一些数据(例如标量)以及它们在网格上的坐标,然后在 Matplotlib 中对其进行处理。问题是我不知道如何从 VTK 文件中获取点/单元数据(例如,通过给出标量的名称)并使用 vtk_to_numpynumpy 数组中/strong>
我的代码应该是这样的:
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 tutorial 对学习处理 VTK 文件的基础知识非常有用
【问题讨论】:
-
vtk_to_numpy的文档对此有什么要说的?
标签: python arrays numpy matplotlib vtk