我需要为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文件。
指定要保存在
下图显示了具有VisIt和可视化效果的test.vti的实际读数。
imageToVTK无法指定坐标,因此,如果要指定坐标,请使用gridToVTK和
1 | gridToVTK('./test',x,y,z,pointData={'quantity':qq}) |
可以是
。可以在当前目录中创建
如果您有特殊的网格,请
https://www.vtk.org/Wiki/VTK/Writing_VTK_files_using_python
看到。