内存创建大型列表或词典或数组时出错

时间:2013-12-23 03:50:24

标签: memory-management python-3.x numpy gis

我需要阅读一个大型GIS光栅文件(162000 * 105000)。 我想将此栅格转换为Numpy数组(2 * 2和double类型),然后使用该numpy数组进行多次分析。 我的操作系统是Windows 64,我有32Gb内存。但是,python无法使用内存,我得到'内存错误' 有没有办法为Python分配更多内存以避免此错误? 感谢

1 个答案:

答案 0 :(得分:3)

32Gb不足以保存您的图像,因此您无法将图像完全加载到计算机的内存中。

每个像素占64位(如果是单通道,或者d乘以d维高光谱图像),则需要大约162000 * 105000 * 64(位)/(1024 ^ 3位)= 1013 G位(或大约126Gb内存为您的图像。

最好使用GIS图像处理库,它可以在核心外执行图像处理任务,或者只在图像的特定子区域中加载。地理处理是图像处理中非常特定的领域,您最好使用适当的库来完成工作。有关使用gdal库进行地理处理的详细信息,请查看this帖子。