找到蒙面ndarray的蒙面中位数时的内存问题

时间:2016-11-13 19:20:24

标签: python numpy masked-array

我试图通过创建一个立方体(尺寸大于图像; 60x3000x4000)来对齐60个图像,该立方体存储有关每个图像的信息以及它移动了多少。然后我通过找到屏蔽任意0值的立方体然后找到沿0轴投影的蒙版中值来组合它。

然而,由于某些原因,需要花费很长时间才能找到蒙面中位数(约30-40分钟),无论我是为2张图像还是30张图像。当我运行60张图像时,它只会说我已经用尽了应用程序内存。我试过在Mac OSx和Debian系统上运行这个问题同样的问题。

不确定如何解决此问题。

我的代码的相关部分

#for loop beginning:
#    more code
     cube[k, 200-yShift[k]:200-yShift[k]+data.shape[0], 200-xShift[k]:200-xShift[k]+data.shape[1]] = data
#for loop ending:

masked_cube = ma.MaskedArray(cube, mask=cube==0)
del cube
median_mask = ma.median(masked_cube, axis = 0).filled(0)
hdu = fits.PrimaryHDU(median_mask)
hdulist = fits.HDUList([hdu])
hdulist.writeto(output_file)

0 个答案:

没有答案