通过Python脚本在ParaView中保存动画

3 投票
3 回答
3312 浏览
提问于 2025-04-18 17:12

我正在尝试通过 Python 脚本在 ParaView 中保存一个 .avi 动画。虽然我写的脚本可以运行,但生成的动画只是一帧静态画面。我应该做些什么才能从我的 ParaView 模型中获得包含所有 10 帧的动画呢?

这是我的脚本(movie.py):

from paraview.simple import *
movie = servermanager.animation.AnimationScene()
movie.ViewModules = [GetActiveView()]
movie.NumberOfFrames = 10
movie_writer = servermanager.vtkSMAnimationSceneImageWriter()
movie_writer.SetFileName("/Users/wbr/Desktop/movie.avi")
movie_writer.SetFrameRate(1)
movie_writer.SetQuality(2)
movie_writer.SetAnimationScene(movie.SMProxy)
movie_writer.Save()

3 个回答

0

最新版本(白色背景的电影):

from paraview.simple import *
viewModel = GetActiveView()
viewModel.Background = [1,1,1]
Show()
Render()
paraview.simple.WriteAnimation(filename="/Users/wilsondasilva/Desktop/movie.avi",FrameRate=15.0)
0

这是我找到的一个方法,可以通过编程的方式导出ParaView动画:

reader = GetActiveSource()
view = GetActiveView()
AnimateReader(reader,view,filename="../movie.avi")

唯一的问题是我无法设置帧率。有什么建议吗?

0

在ParaView 4.2(RC1)版本中,当我生成一个保存动画的操作的Python记录时,得到的脚本是这样的。

#### import the simple module from the paraview
from paraview.simple import *

# save animation images/movie
WriteAnimation('/tmp/movie.ogv', Magnification=1, FrameRate=15.0, Compression=True)

撰写回答