MayaVi

MayaVi は Python で書かれた科学データビジュアライザで、 VTK を使用し、 Tkinter 経由で GUI を提供する。MayaViはPrabhu Ramachandranによって開発され、 BSD License の下で無料で配布されている。 クロスプラットフォーム であり、PythonとVTKの両方が利用可能なすべてのプラットフォームで動作する(ほとんどすべての Unix 、 Mac OS X 、または Windows )。 MayaVi は単一の名前として発音される。 "Ma-ya-vee" は、 サンスクリット で「魔法」を意味する。MayaViのコードは、 Maya やテキストエディタの Vi とは関係ない。 

Mayavi2と呼ばれるMayaViの最新バージョンは、科学的なPythonプログラムの Enthought スイートのコンポーネントである。オリジナルのMayaViとの違いは、インタラクティブなプログラムだけでなく、Pythonでの3Dプロット用の再利用可能なコンポーネントの作成にも重点を置いている点である。公開されるインタフェースと API はオリジナルのMayaViとは若干異なるが、より多くの機能が追加されている。

主な機能 

 計算グリッド、スカラー、ベクトル、テンソルデータの視覚化。
 使いやすい GUI
 他のPythonプログラムからPythonモジュールとしてインポート、Pythonインタプリタからスクリプトを作成。
 テクスチャおよびレイキャストマッパによるデータのボリューム可視化。
 VTKデータ形式を使用する任意のVTKデータセットのサポート
 PLOT3D データのサポート
 複数のデータセットを同時に使用可能
 VTKパイプライン内のオブジェクトを参照および編集できるパイプラインブラウザ
 シンプルな VRML and 3D Studio シーンのインポート
 カスタム・モジュールおよびデータ・フィルタの追加
 PostScript ファイル, PPM/BMP/TIFF/JPEG/PNG 画像, Open Inventor, Geomview OOGL, VRML ファイル, Wavefront .obj file, または RenderMan RIB ファイルの出力

例

球面調和関数 

from numpy import linspace, meshgrid, array, sin, cos, pi, abs
from scipy.special import sph_harm
from mayavi import mlab

theta_1d = linspace(0,   pi,  91) 
phi_1d   = linspace(0, 2*pi, 181)

theta_2d, phi_2d = meshgrid(theta_1d, phi_1d)
xyz_2d = array([sin(theta_2d) * sin(phi_2d),
                sin(theta_2d) * cos(phi_2d),
                cos(theta_2d)]) 
l = 3
m = 0

Y_lm = sph_harm(m, l, phi_2d, theta_2d)
r = abs(Y_lm.real) * xyz_2d

mlab.figure(size=(700, 830))
mlab.mesh(r[0], r[1], r[2], scalars=Y_lm.real, colormap="cool")
mlab.view(azimuth=0, elevation=75, distance=2.4, roll=-50)
mlab.savefig("Y_%i_%i.jpg" % (l, m))
mlab.show()

参考文献

外部リンク 

 
 
グラフィックソフトウェア
フリーソフトウェア