问题标签 [pyvista]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
67 浏览

python-3.x - 如何用 colorio 绘制 sRGB 色域切片?

我想在不同的颜色空间中绘制 Mac Adam 椭圆。为方便起见,我也想展示可能的 sRGB 色域。就像在这张图片中一样(也是用colorio包装制作的):

这个

这里我遇到了两个问题:

  1. 我不知道如何将 sRGB 切片添加到绘图中(它似乎使用不同的包进行 3D 绘图 - 即pyvista代替matplotlib
  2. 我不确定这是否是包中的错误,因为给定的 sRGB 色域切片不是在 Y 轴上而是在 x 轴上制作的。colorio.plot_rgb_slice(cs, .2).show()

我的代码:

0 投票
1 回答
383 浏览

plot - PyVista `add_volume`:输出乱码 & 比 ParaView 慢

问题:

2021 年 9 月 14 日更新: 将问题进一步简化为更小的 MRE。经过一番分析,似乎不是Qt线程是罪魁祸首,所以相应的Qt代码被删除。


  1. pyvista没有沿着正确的轴绘制我的音量并且输出是乱码。ParaView另一方面,正确地绘制事物。我怎样才能解决这个问题?

    注意: 我不能分享实际数据,因为它是机密的。但是,您可以在下面看到pyvista我的数据沿z-axis,而实际上它应该沿x-axis,并且它是乱码。我在 ParaView 中显示了边界框。

    无论我是否使用fixed_pointsmart体积映射器,结果都是相同的。fixed_point因为我在 Windows 上所以我使用。)

pyvista:

pyvista

副视图:

视景

  1. 绘制卷pyvista比 in 慢得多ParaView。有什么方法可以让这更快吗?

    我的代码与pyvistavs.的时间ParaView

    我曾经cProfile帮助识别问题区域(请参见下文)。


设置:

数据

DICOM 文件数量: 1,172
DICOM 文件大小: 5.96 MB
总扫描大小: 7GB
DICOM 图像尺寸: 2402 x 1301 像素

系统/硬件

操作系统: Windows 10 Professional x64 位,Build 1909
CPU: 2x Intel(R) Xeon(R) Gold 6248R
磁盘: 2TB NVMe M.2 SSD
RAM: 192 GB DDR4
计算 GPU: 2x NVIDIA Quadro RTX8000
显示 GPU: 1x NVIDIA Quadro RTX4000

软件

Python: 3.8.10 x64 位
pyvista: 0.32.1
VTK: 9.0.3
ParaView: 5.9.1
IDE: VSCode 1.59.0


代码:

输出:


2021 年 9 月 14 日更新 #2:

有趣的是,当尝试打印数据的形状以进行调试时,如下所示:

我收到以下错误:

错误:

输出:

0 投票
2 回答
392 浏览

python - 使用新标量更新 PyVista 绘图仪

尝试使用新标量更新网格数据我无法更新绘图

我也向 PyVista 支持报告了这些问题:https ://github.com/pyvista/pyvista-support/issues/501

我可以使用此示例进行图形更新:https ://github.com/pyvista/pyvista-support/issues/68

我的例子虽然不起作用

下面的示例代码:

0 投票
0 回答
291 浏览

python - 3D 中的 Alpha 形状 - 跟进

问题


我正在尝试为 python 中的 3D 点云的 alpha 形状实现 Edelsbrunner 算法,如这篇 SO post中所述。但是,我无法绘制结果。我的球体有一半看起来不错,而另一半则乱码。

我怀疑这可能与我有负坐标的事实有关,但我不确定。


定义


我正在添加这些,以便程序员可以做出贡献而不会被数学所困。这些是简化的定义,并不意味着精确(请随意跳过这部分;有关更多信息,请参阅Alpha 形状离散微分几何简介):

  • Delaunay 三角剖分: 对于 2D 点集,将点细分为三角形(即“三角剖分”),其中每个三角形的外接圆(即“外接圆”)不包含集合中的其他点。对于 3D 点,将“triangle”替换为“tetrahedron”,将“circumcircle”替换为“circumsphere”。

  • 仿射独立: 点的集合,p0, ..., pk使得所有向量vi := pi-p0都是线性独立的(即在 2D 中不共线,在 3D 中不共面);也称为“一般位置点”

  • k-单纯形: k+1 个仿射独立点的凸包;我们称这些点为顶点。

0-单纯形 = 点(由 0+1 = 1 个点组成)
1-单纯形 = 线(由 1+1 = 2 个点组成)
2-单纯形 = 三角形(由 2+1 = 3 个点组成)
3-单纯形 = 四面体(由 3+1 = 4 分组成)

  • 面: 任何单纯形,其顶点是另一个单纯形的顶点的子集;即“单纯形的一部分”

  • (几何)单纯复形: 单纯形的集合,其中(1)两个单纯形的交点是单纯形,(2)单纯形的每个面都在复合形中;即“一堆单纯形”

  • alpha-exposed: 点集中的单纯形,其中半径为 alpha 通过其顶点的圆 (2D) 或球 (3D) 不包含点集中的任何其他点

  • alpha 形状: 点集的所有 alpha 暴露单纯形的边界

算法


Edelsbrunner 算法如下:

给定一个点云pts

  1. DT计算点云的 Delaunay 三角剖分
  2. 查找 alpha 复形:搜索 Delaunay 三角剖分中的所有单纯形,并且 (a) 如果单纯形周围的任何球为空且半径小于alpha(称为“alpha 测试”),然后将其添加到 alpha 复形
  3. 阿尔法复合体的边界是阿尔法形状

代码


输出

点云:

点云

阿尔法形状:

阿尔法形状

2021 年 9 月 9 日更新

根据@akaszynski,问题确实似乎是独特点和负面点的结合。他通过以下方式解决了这个问题:

固定球体

但是,如果有人可以进行更深入的调查以确定问题的原因,那将有所帮助。

2021 年 9 月 9 日更新 #2

根据@AndrasDeak,两者都pyvista支持VTK创建 2d 和 3d alpha 形状。该pyvista函数在底层delaunay_3d使用vtkDelaunay3D,它接受一个alpha参数。

(参见vtkDelaunay3D 文档

0 投票
1 回答
132 浏览

python-3.x - Pyvista 曲面图?

我需要一种使用数百万个数据点制作 3 维曲面图的方法,因此我开始检查 pyvista,它应该可以很好地做到这一点。但是,pyvista 对我来说有点难以掌握。

我有 x,y,z 数据,其中 x 是时间,y 是不同的测量值,z 是这些测量值的值。我想要的只是让 pyvista 向我展示包含这些信息的曲面图。

例如,如果我在 matplotlib 或其他带有曲面图的库中使用此数组:

我得到这个输出:

在此处输入图像描述

但是,如果我在任何 pyvista 图上使用相同的数据,我会得到如下信息:

在此处输入图像描述

在此处输入图像描述

我设法使用这段代码获得了不同的“东西”:

在此处输入图像描述

但它只提供一串数据。我无法让其他任何东西正常工作。

有谁知道为什么 x,y,z 数据在 pyvista 中做奇怪的事情,以及我如何才能提供一个正常的表面图?将不胜感激,因为我很难过。

0 投票
1 回答
183 浏览

python-3.x - 将 pyvista 添加到 pyqt 小部件中?

我正在尝试实现一个 pyvista 情节

进入在 qtdesigner 中创建的 pyqt 选项卡小部件

但我的尝试导致了各种错误。我不确定这些字段的正确信息是什么

在此处输入图像描述

我尝试了各种基类类型和名称,但我真的只是在黑暗中拍摄,因为我还不是很擅长。

即使在我尝试添加任何 pyvistaqt 逻辑之前,它也无法加载基本选项卡小部件模板,从而导致此错误

谁能帮我吗?我发现 pyqt 是一个非常复杂且难以理解的库,因为无论如何我都需要将 pyvista 图集成到 pyqt 中,所以我希望让这个图正常工作,这样我就可以玩弄它以试图理解 pyqt 的荒谬性.

0 投票
1 回答
80 浏览

python - 一种对曲面顶部和底部切片进行排序的算法

我尝试这样做:

  1. 使用 PyVsita https://docs.pyvista.org/在 Z 坐标处剪切 STL 文件https://www.dropbox.com/s/pex20yqfgmxgt0w/wing_fish.stl?dl=0
  2. 在给定截面 Z 处提取点的坐标 X、Y
  3. 将点排序到上组和下组以进行进一步操作

这是我的代码:

是)我有的:

在此处输入图像描述

我想要的是:

在此处输入图像描述

我将非常感谢任何帮助和建议!提前致谢!

0 投票
2 回答
340 浏览

python - 如何使用 PyAnsys 和 PyVista 创建共享拓扑

我使用 PyVista 创建了两个圆柱网格,目的是使用 PyAnsys 在内圆柱(以蓝色显示)和外圆柱(以灰色显示)上执行模态分析。这些圆柱体中的每一个都具有不同的材料特性并构成单个模型的一部分:

外筒 在此处输入图像描述

内筒 在此处输入图像描述

网格生成脚本:

为此,我需要在灰色和蓝色网格之间共享拓扑。是否有可以处理此问题的 MAPDL 命令?

我查看了文档,但找不到任何可以做到这一点的东西(但是,我对库的理解不是很好,我可能会遗漏一些东西)。

https://mapdldocs.pyansys.com/mapdl_commands/index.html

0 投票
0 回答
225 浏览

python - python - 为什么我安装后无法在python中导入pyvista包

我想在 Spyder 中使用 pyvista 包。我使用 pip 安装了 pyvista 并得到以下确认:

在此处输入图像描述

但是当我尝试在 python(Spyder 或 Jupyter 笔记本)中导入它时,我收到以下错误。

我尝试卸载 pyvista 并重新安装,但无济于事。

任何帮助表示赞赏。

0 投票
1 回答
104 浏览

python - 如何平滑 pyvista.StructuredGrid?

这是一个用 Python 和 PyVista 制作的 Hopf 圆环:

在此处输入图像描述

颜色并不完全光滑:在右下角的叶瓣上,你可以看到一条分隔淡灰色和深灰色的线。如何摆脱这条线?