我已经获得了一个遗留格式的vtk文件(我认为它是一个非结构化的网格),我想用python读取它并输出一个.npy文件,因为我知道如何处理它.
该文件是来自ATHENA的转储,因此具有密度,速度,磁场以及坐标.
我是一个程序员程序员,因此所有这些对象都令人困惑......
我想从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)
...
Run Code Online (Sandbox Code Playgroud)
PS:我知道Paraview可以完成任务,但我正在尝试发布一些数据而无需打开Paraview.任何帮助表示赞赏
编辑1
我发现这个pdf教程对于学习处理VTK文件的基础知识非常有用