vtk文件的输出(python)


我需要为VisIt创建3D可视化的vtk文件。
如果您正在寻找一种使用python的方法,那么使用pyevtk似乎更好。

通过参考

安装pyevtk

  • https://pypi.python.org/pypi/PyEVTK
  • https://pyscience.wordpress.com/2014/09/06/numpy-to-vtk-converting-your-numpy-arrays-to-vtk-arrays-and-files/

这是一个简单而无聊的示例。
用三维高斯函数创建一个球体。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import numpy as np
from pyevtk.hl import *

ix = 128
jx = 128
kx = 128

xmin = 0.
xmax = 1.
ymin = 0.
ymax = 1.
zmin = 0.
zmax = 1.

dx = (xmax-xmin)/ix
dy = (ymax-ymin)/jx
dz = (zmax-zmin)/kx

x = xmin + 0.5*dx + np.arange(ix)*dx
y = ymin + 0.5*dy + np.arange(jx)*dy
z = zmin + 0.5*dz + np.arange(kx)*dz

xx,yy,zz = np.meshgrid(x,y,z)

ds = 0.1

x0 = (xmax+xmin)/2.
y0 = (ymax+ymin)/2.
z0 = (zmax+zmin)/2.

amp = 1.0

rr = (xx-x0)**2+(yy-y0)**2+(zz-z0)**2
qq = amp*np.exp(-rr/(2.*ds**2))

imageToVTK('./test',pointData={'quantity':qq})

重要的是从顶部开始的第二行和最后一行。

1
from pyevtk.hl import *

您可以写

而不用考虑任何事情。

1
imageToVTK('./test',pointData={'quantity':qq})

我正在用

制作vtk文件。
'./test'部分指定要保存的文件的名称。在当前目录中创建一个名为test.vti的文件。
'quantity'部分是使用VisIt打开文件时变量的名称。您可以使用任何喜欢的变量名。
指定要保存在qq中的变量。

下图显示了具有VisIt和可视化效果的test.vti的实际读数。
visit0001.png

imageToVTK无法指定坐标,因此,如果要指定坐标,请使用gridToVTK和

1
gridToVTK('./test',x,y,z,pointData={'quantity':qq})

可以是

。可以在当前目录中创建test.vtr

如果您有特殊的网格,请
https://www.vtk.org/Wiki/VTK/Writing_VTK_files_using_python
看到。