我正在使用 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 吗?
干杯,夜图