【问题标题】:Plotting a large number of stacked spheres generated from python-- mayavi? paraview and pyevtk? How to transmute .npy to .vtk?绘制大量由python生成的堆叠球体——mayavi? paraview 和 pyevtk?如何将 .npy 转换为 .vtk?
【发布时间】:2019-11-27 02:18:46
【问题描述】:

我想制作这样的图,除了更多的粒子。 Matplotlib 严重不足。

现在我在 python 3.5 中使用 mayavi 通过 jupyter notebook 运行。因为我需要绘制 5x10^5 球体,所以它不实用,因为时间已经是 2x10^4 球体的限制因素。

这是我用来生成 mayavi 图的 Python 代码。我有一个 numpy 值数组 [a,r,x,y,z]。对于这个问题,第一个数量是什么无关紧要。

"""VISUALIZATION WITH MAYAVI"""
#I think this is too slow to be practical. 
#view particles with mayavi
import mayavi
from mayavi import mlab
%gui qt

def plot_sphere(p):  #feed it p and get back a sphere \n",
    t1,R,a,b,c = p
    [phi,theta] = np.mgrid[0:2*np.pi:12j,0:np.pi:12j]  #increase the numbers before j for better resolution but more time
    x = R*np.cos(phi)*np.sin(theta) + a
    y = R*np.sin(phi)*np.sin(theta) + b
    z = R*np.cos(theta) + c
    return mlab.mesh(x, y, z)  

#run s over all particles and plot it
def view(particles): 
    for p in particles:
        plot_sphere(p)

view(spheres)

此代码生成如下图:

有人告诉我应该考虑使用 evtk 将我的 numpy 数组写入 .vtk 文件,然后在 paraview 中可视化这些。我下载了 paraview 并阅读了this,但也许我的 python 版本限制了我?首先,安装 pyevtk——好的: 我尝试了 conda install -c opengeostat pyevtk=1.0.0,但由于与我的 python 版本不兼容而失败。我寻找细节,但找不到任何东西。

接下来我下载了仓库[这里][https://pypi.python.org/pypi/PyEVTK/1.0.0],然后使用pip安装成功。

接下来,我将 evtk.py、vtk.py、hl.py 和 xml.py,并在存储库中尝试了一些示例 - 它们都不起作用。貌似有问题

from .vtk import *

键入命令。我尝试用

替换四个 .py 文件中的所有这些
from evtk import vtk 
from vtk import * 

等等,但没有运气。长话短说,我无法让 pyevtk 将我的 numpy 数组导出为 .vtk 文件。在这方面我可以使用一些帮助,或者更好的是,我希望有一个不同的选项来让我的 numpy 数组由 paraview 呈现。任何帮助表示赞赏!

【问题讨论】:

    标签: python vtk mayavi


    【解决方案1】:

    好的,我解决了我自己的问题。此图像是在使用 pyevtk 将 numpy 数组转换为 .vtu 对象后使用 paraview 制作的。

    开箱即用,存储库不起作用,导入四个 .py 文件中的模块时出现问题,所以我全部修改了它们。在库中的每个模块中,我将其更改为 from vtk import *,而不是 from .vtk import *,依此类推。 evtk.py 无法从 xml.py 导入类,所以我只是复制并粘贴,然后删除 xml.py。经过一些修补和毫无头绪的修改以使错误消失,最终它起作用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多