0

MayaVi を使用して、特定のベクトル フィールドのストリームラインをトレースしています。ストリームラインごとに、必要なすべての情報を抽出できます (たとえば、ストリームライン ポイントの座標、ベクトル モジュールの値など)。
問題は、合理化プロセスが非常にメモリを消費することです。数百のストリームラインをトレースする必要があり、各ストリームラインの後でメモリを解放したいのですが、方法がわかりません! ここに私が使用しているコードがあります

#Vx, Vy, Vz are three NxNxN matrices (N is of the order of 400)

from enthought.mayavi.mlab import *

figure() #it opens the MayaVI graphic window
fl = flow(Vx,Vy,Vz,seedtype='point')

dataset = fl.outputs[0]
x,y,z = dataset.points.to_array().T

このように、点の位置が「x」「y」「z」に格納されます。

ここで、ターミナルから「top」コマンドを使用すると、メモリの大部分が使用されていることがわかります。メモリを解放するために、プロットから流線を削除しようとしました

fl.remove()

非推奨のものと同様に

gc.collect()

しかし、何も起こりません!これは、2、3 の流線をトレースしただけで、コンピューターがフリーズするまで遅くなることを意味します。何か案が?MayaVi使った人いますか?

乾杯、ノクトゥ

4

0 に答える 0