我正在使用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()
但没有任何反应!这意味着,在仅跟踪几条流线之后,我的计算机会慢下来直到它冻结。 任何的想法?有人用过MayaVi吗?
干杯, Noctu