2

UNSTRUCTURED POINTS データセットを含む vtk ファイルがあります。内部にはいくつかのデータセット (フィールド、電流、密度) があります。

このファイルを python にロードし、すべてのデータセットを numpy 配列に変換して、matplotlib でプロットしたいと思います。これを行う方法?

4

2 に答える 2

4

ファイルの例がないと、正確な答えを出すのは困難です。しかし、vtk ファイルについて私が知っていることから、4 行のヘッダーの後に ASCII データまたはバイナリ データを含めることができます。

vtk のデータが ASCII の場合、

np.loadtxt(filename, skiplines=4)

動作するはずです。繰り返しますが、多数の異なるフィールドがある場合、ファイルの構造によってこれが難しくなる可能性があります。

データがバイナリの場合、次のようなものを使用する必要があります

filename.read()
struct.unpack()

また

np.fromfile() 
于 2012-10-11T17:13:36.777 に答える
1

解決策は、VTK パッケージのvtk_to_numpy関数によって提供されます。グリッド形式 (構造化または非構造化) に応じて、Vtk グリッド リーダーと共に使用されます。

サンプル コードは次のようになります。

from vtk import *
from vtk.util.numpy_support import vtk_to_numpy

# load a vtk file as input
reader = vtk.vtkXMLUnstructuredGridReader()
reader.SetFileName("my_input_data.vtk")
reader.Update()

#The "Temperature" field is the third scalar in my vtk file
temperature_vtk_array = reader.GetOutput().GetPointData().GetArray(3)

#Get the coordinates of the nodes and their temperatures
nodes_nummpy_array = vtk_to_numpy(nodes_vtk_array)
temperature_numpy_array = vtk_to_numpy(temperature_vtk_array)

x,y,z= nodes_nummpy_array[:,0] , 
       nodes_nummpy_array[:,1] , 
       nodes_nummpy_array[:,2]


(...continue with matplotlib)

matplotib プロットを含むより長いバージョンは、このスレッドにあります: VTK to Maplotlib using Numpy

于 2014-05-04T20:50:23.457 に答える