Trame#
Kitware's Trame は,インタラクティブで強力なビジュアル分析アプリケーションを作成するためのオープンソースプラットフォームです.Pythonをベースとし,VTK,ParaView,Vegaなどのプラットフォームを活用することで,ウェブベースのアプリケーションを数分で作成することができます.
Trameとは?#
Trameはリアクティブなウェブアプリケーションを構築するためのPythonフレームワークです.
すべてのロジックとUI定義は,プレーンなPython で行うことができます
ラップトップ,デスクトップ,クラスター,クラウド上で動作し,あらゆる場所(携帯電話,タブレット,ラップトップ,ワークステーション)で表示されます.
Trameについてさらに詳しく
Trameドキュメンテーション
チュートリアルを通じて,Trameを実際に体験してください.
Trameチュートリアル
ウェブアプリケーションにおける3Dビジュアライゼーション#
PyVistaとTrameは,リアクティブなWebアプリケーションで3D視覚化のための最先端機能を提供するために,見事に連携します.
Trameはリアクティブでステートフルなウェブアプリケーションを構築するためのハイレベルなフレームワークを提供します.
PyVistaは3Dビジュアライゼーションのためのハイレベルなフレームワークを提供し,VTKを "Pythonic" な方法で公開する.
ハイレベルなフレームワーク1 + ハイレベルなフレームワーク2 = 3Dビジュアライゼーションを前面に押し出したパワフルなウェブアプリケーションを作るための合理的なアプローチです.
次のコードは,UI に PyVista プロッタを組み込んだシンプルな Trame アプリケーションを作成します.このコードは,PyVistaですべてのTrameアプリケーションを構築するためのベースとして使用できます.
import pyvista as pv
from pyvista import examples
from pyvista.trame.ui import plotter_ui
from trame.app import get_server
from trame.ui.vuetify3 import SinglePageLayout
# Always set PyVista to plot off screen with Trame
pv.OFF_SCREEN = True
server = get_server()
state, ctrl = server.state, server.controller
mesh = examples.load_random_hills()
pl = pv.Plotter()
pl.add_mesh(mesh)
with SinglePageLayout(server) as layout:
with layout.content:
# Use PyVista's Trame UI helper method
# this will add UI controls
view = plotter_ui(pl)
server.start()
注釈
PyVistaのJupyterバックエンドはTrameで動いています! 最近JupyterでPyVistaを使っているなら,ずっとTrameを使っているはずです.JupyterバックエンドはマイクロTrameアプリケーションです.
Trame アプリケーション#
既存のアプリを使用する
from trame.app.demo import Cone
app = Cone("demo")
await app.ui.ready
app.ui
Pan3Dを試す: pip install pan3d
from pan3d import DatasetBuilder
builder = DatasetBuilder(viewer=True)
builder.import_config('example_sst_xarray.json')
# Show viewer in cell output
await builder.viewer.ready
builder.viewer.ui
演習#
これらの例をJupyterで実行するのではなく,スタンドアロンのスクリプトとして実行すること.