非構造格子データを読み込んでファイルに保存するスクリプト

vtkで図形を描いてファイルに保存する。pythonを使う。
やっとできるようになった。

参考:http://home.hiroshima-u.ac.jp/~tyoshida/dokuwiki/vtk

ソースコードは以下の通り。

from vtk import *

fname = 'tube.vtk'

reader = vtkUnstructuredGridReader()
reader.SetFileName(fname)
reader.Update()
output = reader.GetOutput()
scalar_range = output.GetScalarRange()

mapper = vtkDataSetMapper()
mapper.SetInput(output)
mapper.SetScalarRange(scalar_range)

actor = vtkActor()
actor.SetMapper(mapper)

ren = vtkRenderer()
ren.AddActor(actor)
ren.SetBackground(1,1,1)

renwin = vtkRenderWindow()
renwin.AddRenderer(ren)
renwin.Render()

w2if = vtkWindowToImageFilter()
w2if.SetInput(renwin)

writer = vtkPNGWriter()
writer.SetInputConnection(w2if.GetOutputPort())
writer.SetFileName("test.png")
writer.Write()

#ウィンドウに画像を表示してマウスで角度を変える場合に以下を使用する。
#iren = vtkRenderWindowInteractor() 
#iren.SetRenderWindow(renwin)
#iren.Initialize()
#iren.Start()

読み込むVTKファイル(tube.vtk)は事前に作成しておく。
↓結果の画像ファイル(test.png)。

でも、これだとファイルを保存したいだけなのに、一瞬描画ウィンドウが表示されてしまうので、もう少し改良の必要がある。