概要#

PyVistaは:

  • Pythonic VTK: Visualization Toolkit (VTK) の高レベルAPI

  • 空間データセットのメッシュデータ構造とフィルタリング方法

  • 大規模/複雑なデータジオメトリ用にシンプルかつ構築された3 Dプロット

PyVistaはVisualization Toolkit (VTK) 用のヘルパーライブラリで,NumPyと配列への直接アクセスを介してVTKとのインターフェースを取るための,異なるアプローチをとっています.このパッケージは,VTKの強力な可視化バックエンドを公開するPythonの十分に文書化されたインターフェースを提供し,空間的に参照されたデータセットの迅速なプロトタイピング,分析,および視覚的統合を容易にします.

このモジュールは,他のメッシュ依存Pythonモジュールのサポートモジュールと同様に,プレゼンテーションや研究論文の科学的プロットにも使用できます.

PyVistaを試してみたいですか?MyBinderのライブサンプルをチェックしてみてください: Launch on Binder

PyVistaはNumFOCUS提携プロジェクトです
NumFOCUS提携プロジェクト
https://numfocus.org/sponsored-projects/affiliated-projects

簡単な例#

以下に,PyVistaの使用方法を示す簡単な対話型の例をいくつか示します.

マップと地球科学#

St.Helens山の標高マップをダウンロードしてプロットします.

from pyvista import examples
mesh = examples.download_st_helens()
warped = mesh.warp_by_scalar('Elevation')
surf = warped.extract_surface().triangulate()
surf = surf.decimate_pro(0.75)  # reduce the density of the mesh by 75%
surf.plot(cmap='gist_earth')
_images/index-2_00_002.png

有限要素解析#

3 D切欠き試験片の弾性応力の 'X' 成分をプロットします.

from pyvista import examples
mesh = examples.download_notch_stress()
mesh.plot(scalars='Nodal Stress', component=0, cmap='turbo', cpos='xy')
_images/index-3_00_001.png

NumPyを使用した単純なポイントクラウド#

NumPyと簡単に統合し,さまざまなジオメトリを作成してプロットできます.任意のジオメトリを使用して字形を作成したり,点を直接プロットすることもできます.

import numpy as np
import pyvista

rng = np.random.default_rng(seed=0)
point_cloud = rng.random((100, 3))
pdata = pyvista.PolyData(point_cloud)
pdata['orig_sphere'] = np.arange(100)

# create many spheres from the point cloud
sphere = pyvista.Sphere(radius=0.02, phi_resolution=10, theta_resolution=10)
pc = pdata.glyph(scale=False, geom=sphere, orient=False)
pc.plot(cmap='Reds')
_images/index-4_00_00.png

スプラインをプロットする#

NumPyの点の配列からスプラインを生成します.

import numpy as np
import pyvista

# Make the xyz points
theta = np.linspace(-10 * np.pi, 10 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z**2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
points = np.column_stack((x, y, z))

spline = pyvista.Spline(points, 500).tube(radius=0.1)
spline.plot(scalars='arc_length', show_scalar_bar=False)
_images/index-5_00_00.png

メッシュ上のブール演算#

立方体メッシュから球体を減算します.

import pyvista
import numpy as np

def make_cube():
    x = np.linspace(-0.5, 0.5, 25)
    grid = pyvista.StructuredGrid(*np.meshgrid(x, x, x))
    surf = grid.extract_surface().triangulate().flip_faces()
    return surf

# Create example PolyData meshes for boolean operations
sphere = pyvista.Sphere(radius=0.65, center=(0, 0, 0))
cube = make_cube()

# Perform a boolean difference
boolean = cube.boolean_difference(sphere)
boolean.plot(color='darkgrey', smooth_shading=True, split_sharp_edges=True)
_images/index-6_00_00.png

体積データのプロット#

水素原子の \(3d_{xy}\) 軌道をプロットしてください.

注釈

この例では, sympy が必要です.

from pyvista import examples
grid = examples.load_hydrogen_orbital(3, 2, -2)
grid.plot(volume=True, opacity=[1, 0, 1], cmap='magma')
_images/index-7_00_00.png

翻訳#

新しいコントリビューターが PyVista の文書を翻訳するために推奨される方法は,Transifexの翻訳チームに参加することです.

pyvista (main) 文書用の pyvista translation page があります.

  1. transifex サービスにログインします.

  2. pyvista translation page に行ってください.

  3. Request language をクリックし,フォームに入力します.

  4. transifex pyvista翻訳メンテナからの承認を待ちます.

  5. (承諾後) transifexで翻訳してください.

  6. atsphinx-mini18n を使用して翻訳文書をホストすることができます。

  7. 翻訳は pyvista-doc-translations にバックアップされています.

詳細はこちら: https://help.transifex.com/en/

状態#

デプロイメント

pypi

conda

ビルドステータス

GH-CI

python

メトリクス

codacy

codecov

活動

PyPIact

condaact

GitHub

contributors

GitHub

引用

joss

zenodo

ライセンス

MIT

コミュニティ

slack

discuss

プロフェッショナルサポート#

PyVistaは大きなコミュニティを持つオープンソースプロジェクトですが,専門的なサポートを求めているかもしれません.このセクションでは,VTK/PyVistaの専門知識を持ち,あなたのソフトウェアプロジェクトを手助けしてくれる企業を紹介します.

会社名

Kitware Inc.

説明

Kitware は,定評あるオープンソースプラットフォームをベースに,お客様のためのソリューションを構築することに専念しています.

専門知識

CMake, VTK, PyVista, ParaView, Trame

お問い合わせ

https://www.kitware.com/contact/

プロジェクトインデックス#