python - 用 pvpython 画线
问题描述
下午好,我正在尝试在 Python 脚本中使用 Paraview 的过滤器“Plot Over Line”。基本上,我想:
- 打开文件“.vtu”;
- 使用过滤器 PlotOverLine 作为速度;
- 将数据保存在“.csv”文件中。
在互联网上,我找到了一种可能的方法,但如果使用 pvpython 运行它会出错(即使在命令前使用“简单”一词):
from paraview import simple
import csv
flow = GetActiveSource()
plotOverLine1 = PlotOverLine(Input=flow, Source='High Resolution Line Source')
passArrays1 = PassArrays(Input=plotOverLine1)
passArrays1.PointDataArrays = ['U']
plotOverLine1.Source.Point1 = [0, 0, 0]
plotOverLine1.Source.Point2 = [0, 0.4, 0]
writer = CreateWriter('data.csv')
writer.UpdatePipeline()
解决方案
首先,您可以在这里报告您的错误。
正如您所建议的,您的脚本无法按原样运行,您应该将导入更改为from paraview.simple import *
.
此外,您的作者没有明确的输入。我建议使用CreateWriter(filename='path', input=myInput)
, 或者,对于一次性写入,SaveData(filename='path', input=myInput)
.
最后,生成此类脚本的一种方法是使用Tools / Start Trace
菜单选项(使用默认配置)。然后在界面中执行操作。最后Tools / Stop Trace
给你对应你的动作的python脚本。
推荐阅读
- python - users.models.Profile.user.RelatedObjectDoesNotExist:配置文件没有用户
- python - Python tkinter 不能使用 Entry.get() 函数
- angularjs - 关于如何根据字段值重复 ng-repeat 中的表,我有这个问题
- html - 悬停动画反弹
- javascript - 摆脱 html 元素 - React
- r - X 必须是一个数值
- node.js - router.get 发送 res 两次
- php - 在 laravel 控制器中访问中间件
- php - 如何使用 str_split() 函数逐字符打印字符串
- google-cloud-platform - 连接被拒绝:在将 Google Cloud postgresql 与 Cloud Function 连接时