memory-management - 创建大型列表、字典或数组时出现内存错误

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

我需要读取大型 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/

相关文章:

c - 实现用户定义的 malloc() 函数?

python - 如何将python日志记录级别名称转换为整数代码

python - 值错误 : bad input shape in sklearn Python

python - 为包含深度嵌套 numpy 数组的 Python 对象实现 __eq__

c# - 是否有 CPU 模拟器或一种方法来查看事物是如何在内存中创建和销毁的

c++ - 如何检测指针是否被删除并安全删除?

c++ - 在不为数组分配内存的情况下工作

python - 冒泡错误条件的pythonic方法是什么

Python:处理大量数据。 Scipy 还是 Rpy?如何?

python - 条件搜索返回一维数组的数组元组?