PyVistaは...

  • "人間のためのVTK": Visualization Toolkit (VTK) の高レベルAPI

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

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

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

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

このプロジェクトをTwitterで共有する: tweet

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

簡単な例

以下に,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')

有限要素解析

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

from pyvista import examples
mesh = examples.download_notch_stress()
mesh.plot(scalars='Nodal Stress', component=0, cmap='turbo', cpos='xy')

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

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

import numpy as np
import pyvista

point_cloud = np.random.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)
pc.plot(cmap='Reds')

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

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)

メッシュ上のブール演算

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

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()
    surf.flip_normals()
    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=False)

翻訳

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

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

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

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

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

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

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

  6. 翻訳された文書は Read The Docs で見ることができます.

詳細はこちら: https://docs.transifex.com/getting-started-1/translators

状態

デプロイメント

pypi

conda

ビルドステータス

azure

GH-CI

メトリクス

codacy

codecov

活動

PyPIact

condaact

GitHub

contributors

GitHub

引用

joss

zenodo

ライセンス

MIT

コミュニティ

slack

discuss

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