2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pyvista の Export scene as HTML 機能を使う

Last updated at Posted at 2023-11-17

Pyvista の Export scene as HTML 機能を使うと、可視化した 3D データをほかの人に見せやすいので、簡単に紹介します。

以下のデモのテスト環境

  • WIndows 11

  • Pyvista 0.42.3

  • Jupyterlab 4.0.2

  • ipywidgets 8.1.1

  • trame 3.3.0

概要

Jupyter lab 内で Pyvista 0.42.3 を使って、Plotter による 3D 可視化を行ったとき、ツールバーの右端に、 ”Export scene as HTML” というボタンがあります。(ドキュメントを見たところ 0.40 以降では存在していると推測します。)

この機能を使って生成した HTML をブラウザで開くと、 vtk.js を使って 3D オブジェクトを表示します。マウス操作で回転と拡大縮小ができるので、解析結果の可視化を人に渡して見せるのに使えます。つまり paraview や Python をインストールしていない人にも、3D のままのデータを見せることが簡単にできます。

Pyvista の example を使って作ったものをご覧ください。(リンク先 GitHub pages の html ファイルは、マウス操作可能です)

d-orbit.png

このファイルを作るためのコード

Pyvista の使い方がわかっていれば、HTML ファイル生成は、メニュー操作だけです。

以下のコードを Jupyter lab の中で実行します。

import numpy as np

import pyvista as pv
from pyvista import examples

#%%
grid = examples.load_hydrogen_orbital(3, 2, 0)

#%%
eval_at = grid['real_wf'].max() * 0.1
contours = grid.contour(
    [eval_at],
    scalars=np.abs(grid['real_wf']),
    method='marching_cubes',
)
contours = contours.interpolate(grid)
contours.plot(
    smooth_shading=True,
    show_scalar_bar=False,
)

Jupyter lab 内に表示された図の上のメニューバーから、Export scene as HTML を選ぶと、html 形式のファイルを保存できます。

examples.load_hydrogen_orbital の機能については、help で確認してください。

help(examples.load_hydrogen_orbital)

以上です。

追記 2024/4/19

コードからもこの 3D scene を生成できます

import pyvista as pv
from pyvista import examples

mesh = examples.load_uniform()
pl = pv.Plotter(shape=(1, 2))
_ = pl.add_mesh(
    mesh, scalars='Spatial Point Data', show_edges=True
)
pl.subplot(0, 1)
_ = pl.add_mesh(
    mesh, scalars='Spatial Cell Data', show_edges=True
)

pl.export_html('pv.html')  

linux の場合

以下の2つの方法のいずれかで、Display がない環境 (ターミナル接続、リモートデスクトップ接続) でも export_html 機能を利用できます。

  1. xvfb がインストールされていること(X11 の機能なので、たぶんインストールに管理者権限が必要)
  2. vtk ライブラリーの代わりに vtk-osmesa を利用する。1

この場合、ターミナル接続で pl.show() を呼ぶとハングします。
Jupyter lab 内では OK に見えますが、この動作確認部分は Windows 環境での仮のチェック結果です。

pip install pyvista[all,trame]
pip uninstall vtk -y
pip install --extra-index-url https://wheels.vtk.org vtk-osmesa

追記 2. 2024/11/19

vtk 9.4 から linux での Off screen 描画に vtk-osmesa は不要になったようです。2
まだ手元での確認はしていません。

  1. https://discourse.vtk.org/t/status-update-vtk-python-wheels/11212

  2. https://discourse.vtk.org/t//14583

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?