标签: paraview

如何使用python脚本在ParaView OpenFOAM情况下选择所有网格区域?

使用python在ParaView中加载OpenFOAM案例很简单:

ofReader = OpenFOAMReader(FileName='<some OpenFOAM case directory>')
Run Code Online (Sandbox Code Playgroud)

但是,默认情况下internalMesh,在阅读器对象中仅选择网格区域。

使用ParaView的trace方法没有任何帮助,因为对象的MeshRegion属性OpenFOAMReader只是设置为我通过鼠标输入选择的网格区域的值:

ofReader.MeshRegions = ['internalField', 'patch1', 'patch2']
Run Code Online (Sandbox Code Playgroud)

由于我事先不知道网格区域的名称是什么,因此无法在python ParaView脚本中生成这样的行。

如何使用python脚本和仅使用ParaView Python API功能在ParaView中选择和加载OpenFOAM案例的所有网格区域?

python paraview openfoam

5
推荐指数
1
解决办法
222
查看次数

Paraview-使用python脚本以x3d格式导出数据

我正在尝试使用paraview-python脚本以x3d格式导出OpenFOAM结果。当我通过paraview图形界面进行操作时,它可以工作并且可以在Blender中可视化结果,请参见下图

在此处输入图片说明

但是,当我尝试使用以下脚本执行相同的操作时

from paraview.simple import *
import fnmatch
import os
import shutil

#create alist of all vtk files
vtkFiles = []
for root, dirnames, filenames in os.walk('.'):
    for filename in fnmatch.filter(filenames, '*.vtk'):
        vtkFiles.append(os.path.join(root, filename))


vtkFilesGroups=[
    'U',
]


def ResetSession():
    pxm = servermanager.ProxyManager()
    pxm.UnRegisterProxies()
    del pxm
    Disconnect()
    Connect()


def x3dExport(output,r):
    #export in x3d format

    exporters = servermanager.createModule("exporters")
    Show(r)
    view = GetActiveView()
    render = Render()
    x3dExporter = exporters.X3DExporter(FileName=output)
    x3dExporter.SetView(view)
    x3dExporter.Write()
    ResetSession()

# group VTK files by gruop (fields in openfoam "vtkFilesGroups")
# …
Run Code Online (Sandbox Code Playgroud)

python x3d blender paraview openfoam

5
推荐指数
1
解决办法
338
查看次数

paraview:加载共享库时出错:libQt5Core.so.5:无法打开共享对象文件:没有这样的文件或目录

我在 Ubuntu 上安装了 OpenFOAM(它本身位于 Linux 的 WSL Windows 子系统上)。我在尝试启动时遇到问题paraFoam,出现以下错误:

Invalid $PV_PLUGIN_PATH and -plugin-path= not defined
No supplementary ParaView/OpenFOAM reader modules
Using builtin reader: paraFoam -vtk

paraview: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

它似乎来自 paraview 或 Qt,但我不知道该怎么做。该文件libQt5Core.so.5确实存在于计算机中

当我打字时qmake --version我有

QMake version 3.1
Using Qt version 5.12.8 in /usr/lib/x86_64-linux-gnu
Run Code Online (Sandbox Code Playgroud)

paraview openfoam

5
推荐指数
1
解决办法
1万
查看次数

输出精度高于双精度

我正在打印一些来自C++程序的数​​据,以便由ParaView处理/可视化,但我遇到浮点数问题.Paraview支持Float32和Float64数据类型.Float64相当于两倍,典型限制为+/- 1.7e +/- 308.但是,我的代码是打印数字,如6.5e-318.这是在读取数据时抛出ParaView中的错误.我已经验证将这些小数字舍入为零会使ParaView中的错误消失.我不知道为什么我有这样的"高精度"输出,可能是因为有些数字的存储精度高于双精度.例如,以下代码在我的系统上重现相同的行为:

#include <iostream>
int main(void)
{
  const double var1 = 1.0e-318, var2 = 1.5e-318;
  std::cout << 1.0e-318 << std::endl; 
  std::cout << var1 << std::endl; 
  std::cout << var1 - var2 << std::endl; 
  std::cout.setf(std::ios_base::fixed | std::ios_base::scientific, std::ios_base::floatfield);
  std::cout << 1.0e-318 << std::endl; 
  std::cout << var1 << std::endl; 
  std::cout << var1 - var2 << std::endl; 

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的输出是:

9.99999e-319
9.99999e-319
-4.99999e-319
9.99999e-319
9.99999e-319
-4.99999e-319
Run Code Online (Sandbox Code Playgroud)

我的系统是Mac OS X Snow Leopard,我用GCC 4.2和GCC 4.6测试了上面的标志-m32,-m64并且-ffloat-store(不确定这是否有用).

实际上我的输出很好,但对于ParaView则没有.我只是想知道为什么我有这个区别.我很可能忽略了与浮点数相关的东西,这可能很重要.请问你能给我一些关于双打输出/数值行为的线索吗?

c++ double-precision long-double floating-point-precision paraview

4
推荐指数
1
解决办法
739
查看次数

将剪辑滤镜应用于多个源

我在Paraview中有几个数据源,并将所有这些数据源(使用Clip过滤器)剪辑到我此刻需要查看的内容.将剪辑域设置为三次(或更多次)非常有意义.是否可以以某种方式共享这些参数,或将相同的过滤器实例应用于多个数据源?

pipeline paraview

4
推荐指数
1
解决办法
559
查看次数

如何在ParaView中为一系列旧版VTK文件设置自定义时间步长值?

我的序列遗留VTK文件,例如:file_0.vtkfile_1.vtkfile_2.vtk,我可以在的Paraview作为时间序列(打开这里所描述)为file_..vtk,和文件的顺序可以查看和使用时间控制动画。我目前正在使用ParaView 4.4.0。

旧版VTK文件如下所示,其中timestep值存储在标题(第二行)中:

# vtk DataFile Version 3.0
vtk output: file at time       0.0    
ASCII
...
Run Code Online (Sandbox Code Playgroud)

但是,在ParaView中,时间步长值假定与索引相同,即索引0为时间0.0,索引1为时间1.0,索引2为时间2.0。并且添加AnnotateTime筛选器还会显示这些时间步长作为时间步长索引。

但是,我的文件使用可变的时间步长,如每个文件的标题中所述。(我认为传统的VTK格式无法指定这些值)。我已经查看了ParaView的应用程序,以查看是否可以导入或修改这些值,但找不到。

使用内置的Python Shell,这是我用LegacyVTKReader创建对象的不幸尝试:

files = ['file_0.vtk', 'file_1.vtk', 'file_2.vtk']
times = [0.0, 0.022608, 0.73781]
# First attempt
r = LegacyVTKReader(FileNames=files, TimestepValues=times)
print(r.TimestepValues)  # [0.0, 1.0, 2.0]

# Second attempt to try and fix it
r.TimestepValues = times
print(r.TimestepValues)  # [0.0, 0.022608, 0.73781]

Show(r)
Run Code Online (Sandbox Code Playgroud)

在我添加一个AnnotateTimeFilter之前,它将在对象“ Information”对话框中正确显示,将AnnotateTimeFilter重置为0到0、1到1和2到2。

是否可以使用鼠标单击或Python更新ParaView中旧VTK对象的每个索引的时间步值?

python time-series vtk paraview

4
推荐指数
1
解决办法
2476
查看次数

如何在基于paraview的python脚本中显示vtkUnstructuredGrid?

我在我的 Ubuntu 18.04 系统上安装了 paraview 5.6,我想编写一个 python 脚本来显示一个 vtkUnstructuredGrid。

import numpy as np
from paraview.simple import *
import paraview.vtk as vtk
from paraview.vtk.numpy_interface import dataset_adapter as dsa
import paraview.vtk.util.numpy_support as vnp

node = np.array(
        [[0.0, 0.0, 0.0],
         [1.0, 0.0, 0.0],
         [1.0, 1.0, 0.0],
         [0.0, 1.0, 0.0]], dtype=np.float)
cell = np.array([[3, 1, 2, 0], [3, 3, 0, 2]], dtype=np.int)
NC = cell.shape[0]

points = vtk.vtkPoints()
points.SetData(vnp.numpy_to_vtk(node))
cells = vtk.vtkCellArray()
cells.SetCells(NC, vnp.numpy_to_vtkIdTypeArray(cell))

uGrid =vtk.vtkUnstructuredGrid() 
uGrid.SetPoints(points)
uGrid.SetCells(vtk.VTK_TRIANGLE, cells)
# how to put uGrid …
Run Code Online (Sandbox Code Playgroud)

python paraview pvpython

4
推荐指数
1
解决办法
931
查看次数

paraview:从 csv 文件中绘制数据

我正在尝试使用 paraview 来绘制 xy 图。我想要的图只是 x 和 y 之间的线性关系。所以我将我的数据文件 (data.csv) 导入到 paraview 中。我的数据如下所示:

X Y
0 0
1 1
2 6
3 8
4 15
Run Code Online (Sandbox Code Playgroud)

然后我将分隔符设置为“”。之后我可以看到数据在 x 和 y 列中排序。但我没有找到让 paraview 绘制数据的选项。有什么帮助吗?谢谢你。这是我的界面的屏幕截图:截屏

paraview

4
推荐指数
1
解决办法
1672
查看次数

如何在 Paraview 中显示内部线条?

我在 VTK 中制作了一个 blob 的图片。Blob 由许多三角形金字塔组成,它们的顶点位于 Blob 的中心。

在此处输入图片说明

我想查看所有线条,但 Paraview 隐藏了 blob 的所有内部线条。是否可以使这些线条可见?

paraview

3
推荐指数
1
解决办法
853
查看次数

从 Python IDLE 控制 Paraview GUI

我正在尝试使用 IDLE 以交互方式控制 Paraview。这将涉及从 IDLE 发送命令并查看 Paraview 中发生的更改。我宁愿不使用in-Paraview python shell。

到目前为止,我已经成功地从 IDLE 导入了 Paraview 模块(simple、servermanager 等)。但是发送的命令不会反映在 Paraview 中。例如:

>>> from paraview.simple import *
>>> cone = Cone()
>>> Show()
>>> Render()
Run Code Online (Sandbox Code Playgroud)

确实创建了一个锥体。然而,锥体输出到一个新的、独立的 OpenGL 窗口,而不是 Paraview GUI。

是否可以使用 IDLE 以交互方式控制 Paraview?如果是这样如何做到这一点?谢谢

python python-idle python-2.7 paraview

3
推荐指数
1
解决办法
763
查看次数