2017-06-02 8 views
1

もっとたくさんのパーティクルを除いて、このようなプロットを作りたいと思います。 Matplotlibは悲惨なほど不十分です。 jupyterノートを走るのpython 3.5でpython-- mayaviから生成された多数の積み重ねられた球をプロットする?パラビューとpyevtk? .npyを.vtkに変換する方法

from google

今私が使用していますmayavi。 5x10^5球をプロットする必要があるので、時間はすでに2x10^4球での制限因子であるため、実用的ではありません。

ここで私のパイソンコードはmayaviプロットを生成します。私は値[a、r、x、y、z]の数の少ない配列を持っています。この問題の最初の数量は関係ありません。

"""VISUALIZATION WITH MAYAVI""" 
#I think this is too slow to be practical. 
#view particles with mayavi 
import mayavi 
from mayavi import mlab 
%gui qt 

def plot_sphere(p): #feed it p and get back a sphere \n", 
    t1,R,a,b,c = p 
    [phi,theta] = np.mgrid[0:2*np.pi:12j,0:np.pi:12j] #increase the numbers before j for better resolution but more time 
    x = R*np.cos(phi)*np.sin(theta) + a 
    y = R*np.sin(phi)*np.sin(theta) + b 
    z = R*np.cos(theta) + c 
    return mlab.mesh(x, y, z) 

#run s over all particles and plot it 
def view(particles): 
    for p in particles: 
     plot_sphere(p) 

view(spheres) 

このコードは次のようにプロットを生成します。私は、私は、その後、evtkを使用してファイルを.vtkために私のnumpyのアレイを書いてあるParaViewでこれらを可視化になるはずと言われている

enter image description here

。私はparaviewをダウンロードし、thisを読むが、おそらく私のバージョンのpythonは私を制限しているのだろうか?最初に、pyevtkをインストールしてください - okay: 私はconda install -c opengeostat pyevtk = 1.0.0をインストールしようとしましたが、Pythonバージョンとの互換性がないために失敗します。私は詳細を探しましたが、何も見つかりませんでした。

次へ私はリポジトリ[ここ] [https://pypi.python.org/pypi/PyEVTK/1.0.0]]をダウンロードし、ピップを使用して正常にインストールしました。

次へ私はevtk.py、vtk.py、hl.py、xml.pyを入れ、リポジトリにいくつかの例を試しました。どれも動作しません。いくつかの問題があると思われます。

from .vtk import * 

コマンドがあります。私は4つの.pyファイルでこれらすべてを置き換えようとしました。

from evtk import vtk 
from vtk import * 

などですが運はありません。長い話を簡単に言えば、pyevtkがnumpy配列を.vtkファイルとしてエクスポートすることはできません。私はこの点でいくつかの助けをすることができました、またはより良いまだ私は、私のnumpy配列をparaviewでレンダリングする別のオプションが大好きです。どんな助けもありがとう!

答えて

-1

solved

[OK]を、私は私自身の問題を解決しました。この画像は、pyevtkを使用してnumpy配列を.vtuオブジェクトに変換した後、paraviewを使用して作成されます。

デフォルトでは、リポジトリは機能しませんでした.4つの.pyファイル内にモジュールをインポートする際に問題がありましたので、すべて修正しました。 .vtk import *ではなく、ライブラリのすべてのモジュールでvtk import *などに変更しました。 evtk.pyはxml.pyからクラスをインポートできなかったので、コピーして貼り付けてからxml.pyを削除しました。エラーをなくすためにいくつかの微妙な変更と無修正の変更が行われた後、最終的には機能しました。

関連する問題