TVTK của Mayavi có một cách xinh đẹp của tập tin văn bản VTK. Dưới đây là một ví dụ thử nghiệm tôi đã viết cho bản thân mình sau tài liệu @Joe và tvtk. Lợi thế nó có hơn evtk, là sự hỗ trợ cho cả ascii và html.Hope nó sẽ giúp người khác.
from tvtk.api import tvtk, write_data
import numpy as np
#data = np.random.random((3, 3, 3))
#
#i = tvtk.ImageData(spacing=(1, 1, 1), origin=(0, 0, 0))
#i.point_data.scalars = data.ravel()
#i.point_data.scalars.name = 'scalars'
#i.dimensions = data.shape
#
#w = tvtk.XMLImageDataWriter(input=i, file_name='spoints3d.vti')
#w.write()
points = np.array([[0,0,0], [1,0,0], [1,1,0], [0,1,0]], 'f')
(n1, n2) = points.shape
poly_edge = np.array([[0,1,2,3]])
print n1, n2
## Scalar Data
#temperature = np.array([10., 20., 30., 40.])
#pressure = np.random.rand(n1)
#
## Vector Data
#velocity = np.random.rand(n1,n2)
#force = np.random.rand(n1,n2)
#
##Tensor Data with
comp = 5
stress = np.random.rand(n1,comp)
#
#print stress.shape
## The TVTK dataset.
mesh = tvtk.PolyData(points=points, polys=poly_edge)
#
## Data 0 # scalar data
#mesh.point_data.scalars = temperature
#mesh.point_data.scalars.name = 'Temperature'
#
## Data 1 # additional scalar data
#mesh.point_data.add_array(pressure)
#mesh.point_data.get_array(1).name = 'Pressure'
#mesh.update()
#
## Data 2 # Vector data
#mesh.point_data.vectors = velocity
#mesh.point_data.vectors.name = 'Velocity'
#mesh.update()
#
## Data 3 additional vector data
#mesh.point_data.add_array(force)
#mesh.point_data.get_array(3).name = 'Force'
#mesh.update()
mesh.point_data.tensors = stress
mesh.point_data.tensors.name = 'Stress'
# Data 4 additional tensor Data
#mesh.point_data.add_array(stress)
#mesh.point_data.get_array(4).name = 'Stress'
#mesh.update()
write_data(mesh, 'polydata.vtk')
# XML format
# Method 1
#write_data(mesh, 'polydata')
# Method 2
#w = tvtk.XMLPolyDataWriter(input=mesh, file_name='polydata.vtk')
#w.write()
Mayavi có thể hiển thị mảng numpy 3d và xuất nó sang một vài định dạng 3D. Tôi không chắc chắn những gì bạn sau khi – theta
Paraview không làm việc với mảng numpy và đặc biệt là nếu bạn muốn ném một mảng 3D rectilinear với trục của nó ở đó. Dữ liệu như vậy cần phải được chuyển đổi sang một định dạng như .vtr đầu tiên. Chuyển đổi này là những gì Im sau. Bất kỳ ý tưởng? Bạn cũng có ý nghĩa gì về Mayavi hỗ trợ mảng có nhiều mảng? Ý tưởng là tạo một tệp từ một mảng được tạo ra bên ngoài Mayavi và nhập nó vào phần mềm như một tệp – somada141
ParaView làm việc với numpy (đọc hướng dẫn về "Bộ lọc lập trình Python") và Mayavi có thể đọc các mảng rất nhiều, và xuất nó sang các định dạng 3D khác nhau (được BTW hỗ trợ bởi ParaView) – theta