跳转到主要内容

ipywidget for vtkRenderWindow

项目描述

ipyvtklink

Binder PyPI conda

一个用于vtkRenderWindow的ipywidget(之前称为ipyvtk-simple)

这是一个创建Jupyter接口到VTK的早期原型。这个工具包是一个概念证明,未来将通过ipyvtk提供更完善的工具。

这里的代码是在MIT许可证下由Andras Lasso完成的工作基础上实现的(参见源代码)。

目标是为此小部件启用与任何服务器端 vtkRenderWindow 的兼容性。此渲染窗口可能来自 VTK PythonParaViewPyVista

请注意,vtk 没有作为此包的要求列出,以简化其在可能从源代码构建或与 ParaView 打包的虚拟环境中的安装。我们不希望从 PyPI 安装轮子。

安装

要用于 PyVista,只需使用 pipconda 安装即可。

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 以了解原始概念验证。

demo-1

demo-2

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)

demo-3

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)

demo-4

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

ipyvtklink-0.2.3.tar.gz (10.5 kB 查看哈希值)

上传时间

构建分布

ipyvtklink-0.2.3-py3-none-any.whl (9.4 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面