问题标签 [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.
plot - PyVista `add_volume`:输出乱码 & 比 ParaView 慢
问题:
2021 年 9 月 14 日更新: 将问题进一步简化为更小的 MRE。经过一番分析,似乎不是Qt线程是罪魁祸首,所以相应的Qt代码被删除。
pyvista
没有沿着正确的轴绘制我的音量并且输出是乱码。ParaView
另一方面,正确地绘制事物。我怎样才能解决这个问题?(注意: 我不能分享实际数据,因为它是机密的。但是,您可以在下面看到
pyvista
我的数据沿z-axis
,而实际上它应该沿x-axis
,并且它是乱码。我在 ParaView 中显示了边界框。无论我是否使用
fixed_point
与smart
体积映射器,结果都是相同的。fixed_point
因为我在 Windows 上所以我使用。)
pyvista:
副视图:
绘制卷
pyvista
比 in 慢得多ParaView
。有什么方法可以让这更快吗?我的代码与
pyvista
vs.的时间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:
有趣的是,当尝试打印数据的形状以进行调试时,如下所示:
我收到以下错误:
错误:
输出:
python - 使用新标量更新 PyVista 绘图仪
尝试使用新标量更新网格数据我无法更新绘图
我也向 PyVista 支持报告了这些问题:https ://github.com/pyvista/pyvista-support/issues/501
我可以使用此示例进行图形更新:https ://github.com/pyvista/pyvista-support/issues/68
我的例子虽然不起作用
下面的示例代码:
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
:
DT
计算点云的 Delaunay 三角剖分- 查找 alpha 复形:搜索 Delaunay 三角剖分中的所有单纯形,并且 (a) 如果单纯形周围的任何球为空且半径小于
alpha
(称为“alpha 测试”),然后将其添加到 alpha 复形- 阿尔法复合体的边界是阿尔法形状
代码
输出
点云:
阿尔法形状:
2021 年 9 月 9 日更新
根据@akaszynski,问题确实似乎是独特点和负面点的结合。他通过以下方式解决了这个问题:
但是,如果有人可以进行更深入的调查以确定问题的原因,那将有所帮助。
2021 年 9 月 9 日更新 #2
根据@AndrasDeak,两者都pyvista
支持VTK
创建 2d 和 3d alpha 形状。该pyvista
函数在底层delaunay_3d
使用vtkDelaunay3D
,它接受一个alpha
参数。
(参见vtkDelaunay3D 文档)
python-3.x - Pyvista 曲面图?
我需要一种使用数百万个数据点制作 3 维曲面图的方法,因此我开始检查 pyvista,它应该可以很好地做到这一点。但是,pyvista 对我来说有点难以掌握。
我有 x,y,z 数据,其中 x 是时间,y 是不同的测量值,z 是这些测量值的值。我想要的只是让 pyvista 向我展示包含这些信息的曲面图。
例如,如果我在 matplotlib 或其他带有曲面图的库中使用此数组:
我得到这个输出:
但是,如果我在任何 pyvista 图上使用相同的数据,我会得到如下信息:
我设法使用这段代码获得了不同的“东西”:
但它只提供一串数据。我无法让其他任何东西正常工作。
有谁知道为什么 x,y,z 数据在 pyvista 中做奇怪的事情,以及我如何才能提供一个正常的表面图?将不胜感激,因为我很难过。
python - 一种对曲面顶部和底部切片进行排序的算法
我尝试这样做:
- 使用 PyVsita https://docs.pyvista.org/在 Z 坐标处剪切 STL 文件https://www.dropbox.com/s/pex20yqfgmxgt0w/wing_fish.stl?dl=0
- 在给定截面 Z 处提取点的坐标 X、Y
- 将点排序到上组和下组以进行进一步操作
这是我的代码:
是)我有的:
我想要的是:
我将非常感谢任何帮助和建议!提前致谢!
python - 如何使用 PyAnsys 和 PyVista 创建共享拓扑
我使用 PyVista 创建了两个圆柱网格,目的是使用 PyAnsys 在内圆柱(以蓝色显示)和外圆柱(以灰色显示)上执行模态分析。这些圆柱体中的每一个都具有不同的材料特性并构成单个模型的一部分:
网格生成脚本:
为此,我需要在灰色和蓝色网格之间共享拓扑。是否有可以处理此问题的 MAPDL 命令?
我查看了文档,但找不到任何可以做到这一点的东西(但是,我对库的理解不是很好,我可能会遗漏一些东西)。