我需要读取大型 GIS 栅格文件 (162000 * 105000)。 我想将此栅格转换为 Numpy 数组(2*2 和 double 类型),然后使用该 numpy 数组进行多次分析。 我的操作系统是 windows 64,内存为 32Gb。但是,python 无法使用内存,并且出现“内存错误” 有没有办法为Python分配更多内存来避免这个错误? 谢谢
最佳答案
32Gb 不足以容纳您的图像,因此您无法将图像完全加载到计算机内存中。
每个像素占用 64 位(如果是单 channel ,或者乘以 d 以获得 d 维高光谱图像),您大约需要 162000 * 105000 * 64(位)/(1024^3 位)= 1013 Gbits(或大约 126Gb)的图像内存。
您最好使用 GIS 图像处理库,该库可以在核心外执行图像处理任务或仅在图像的特定子区域中加载。地理处理是图像处理中的一个非常具体的领域,最好使用适当的库来完成这项工作。检查this发布有关使用 gdal 库进行地理处理的更多详细信息。
关于memory-management - 创建大型列表、字典或数组时出现内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20736730/