2

tvtk (Enthought の Canopy に含まれるパッケージ) を使用して、いくつかの配列を .vtk データに変換し、それを VisIt に渡すことができるようにしようとしています (mayavi が私の OS (Mac OS X) で文句を言います。ここで解決策のように見えるものを見つけました(Paraview/Mayavi で表示するために 3D numpy を VTK ファイルにエクスポートしています)しかし、回答の作成者が行う出力を回復していないので、誰かが私が間違っていることを教えてくれるかどうか疑問に思っていました。 Canopy ノートブックのコマンド、

import numpy as np
from enthought.tvtk.api import tvtk, write_data

data = np.random.random((10,10,10))

grid = tvtk.ImageData(spacing=(10, 5, -10), origin=(100, 350, 200), 
                  dimensions=data.shape)
grid.point_data.scalars = np.ravel([], order='F')
grid.point_data.scalars.name = 'Test Data'

# Writes legacy ".vtk" format if filename ends with "vtk", otherwise
# this will write data using the newer xml-based format.
write_data(grid, '/Users/Epictetus/Documents/Dropbox/Work/vtktest.vtk')

vtkファイルを作成しますが、前の回答の作成者が示唆する出力とは異なり、空白の出力が得られます.

# vtk DataFile Version 3.0
vtk output
ASCII
DATASET STRUCTURED_POINTS
DIMENSIONS 10 10 10
SPACING 10 5 -10
ORIGIN 100 350 200

私が間違っていることは明らかですか?ファイル I/O は私の得意分野ではありませんでした...

乾杯!

-user2275987

4

1 に答える 1

4

行を変更する

grid.point_data.scalars = np.ravel([], order='F')

grid.point_data.scalars = data.ravel(order='F')

グリッドにはデータがないため、vtk ファイルには何も保存されません! :-)

于 2013-08-02T03:42:22.160 に答える