ipywidget for vtkRenderWindow
项目描述
ipyvtklink
一个用于vtkRenderWindow的ipywidget(之前称为ipyvtk-simple)
这是一个创建Jupyter接口到VTK的早期原型。这个工具包是一个概念证明,未来将通过ipyvtk
提供更完善的工具。
这里的代码是在MIT许可证下由Andras Lasso完成的工作基础上实现的(参见源代码)。
目标是为此小部件启用与任何服务器端 vtkRenderWindow
的兼容性。此渲染窗口可能来自 VTK Python、ParaView 或 PyVista。
请注意,vtk
没有作为此包的要求列出,以简化其在可能从源代码构建或与 ParaView 打包的虚拟环境中的安装。我们不希望从 PyPI 安装轮子。
安装
要用于 PyVista,只需使用 pip
或 conda
安装即可。
pip install ipyvtklink
或者
conda install -c conda-forge ipyvtklink
在 Docker 中运行
ipyvtklink 存储库的包中预先构建并托管了 Docker 镜像。
在 Docker 中运行
docker pull ghcr.io/kitware/ipyvtklink:latest
docker run -p 8888:8888 ghcr.io/kitware/ipyvtklink:latest
并打开 vtk.ipynb
笔记本。
此外,它还可以与 ParaView 一起使用。在 paraview.ipynb
中给出了一个示例,可以通过以下方式运行:
docker pull ghcr.io/kitware/ipyvtklink-paraview:latest
docker run -p 8878:8878 ghcr.io/kitware/ipyvtklink-paraview:latest
示例
您可能需要在 Lab 中构建 jupyter lab 扩展才能使其工作。已知它在 Notebook 中运行良好。
PyVista
PyVista 已完全实现了对 ipyvtklink
的下游支持。请参阅 PyVista 文档
请参阅 pyvista.ipynb
以了解原始概念验证。
Python VTK
此小部件可以与 VTK 一起使用。以下是一个最小示例,展示如何将任何 vtkRenderWindow
传递给 ViewInteractiveWidget
import vtk
from ipyvtklink.viewer import ViewInteractiveWidget
# Create some data
cylinder = vtk.vtkCylinderSource()
cylinder.SetResolution(8)
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(cylinder.GetOutputPort())
actor = vtk.vtkActor()
actor.SetMapper(mapper)
# Set up render window
ren = vtk.vtkRenderer()
ren_win = vtk.vtkRenderWindow()
ren_win.SetOffScreenRendering(1)
ren_win.SetSize(600, 600)
ren_win.AddRenderer(ren)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(ren_win)
style = vtk.vtkInteractorStyleTrackballCamera()
iren.SetInteractorStyle(style)
# Add actor to scene
ren.AddActor(actor)
ren.ResetCamera()
# Display
ViewInteractiveWidget(ren_win)
ParaView Python
有关在 Docker 容器中运行 ParaView 的说明,请参阅上面的说明。
import paraview.simple as pvs
from ipyvtklink.viewer import ViewInteractiveWidget
# Create data on the pipeline
wavelet = pvs.Wavelet()
contour = pvs.Contour(Input=wavelet)
contour.ContourBy = ['POINTS', 'RTData']
contour.Isosurfaces = [63, 143, 170, 197, 276]
# Set the data as visible
pvs.Show(contour)
# Fetch the view and render the scene
view = pvs.GetActiveView()
pvs.Render(view)
# Fetch the RenderWindow
ren_win = view.GetClientSideObject().GetRenderWindow()
# Display the RenderWindow with the widget
ViewInteractiveWidget(ren_win)
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于 安装包 的信息。