Gdal内存泄漏,但是Anaconda不会让我升级到较新版本

时间:2019-07-16 22:43:36

标签: python ubuntu anaconda gdal rasterio

我正在尝试使用RasterioGDAL运行一些简单的操作,但是内存泄漏正在扼杀我的计算机。我只是想打开并绘制一个tif文件,所以大约需要50 GB !!!即使图像本身只有1.2 GB,

代码非常简单。

import rasterio
from rasterio.plot import show
src = rasterio.open("../temp.tif", mode="r+")
datimg = src.read(1)
show(src.read(1))

这是中间面板中的内存使用情况的图片。这就是所有RAM。

Memory utilization

所以该过程从未真正起作用,现在我有了 基本上注销并重新登录我的计算机帐户以清除内存。

我安装了gdal版本2.3.3和rasterio版本1.0.21,所以我希望将gdal版本升级到3.0.1的人可以解决此问题。

我在python 3.7,Ubuntu linux 18.04 LTS上使用Anaconda发行版。但是,当我尝试使用conda install -c conda-forge gdal gdal==3.0.1升级到较新的gdal版本时,出现错误,表明与其他软件包不兼容。

conda install -c conda-forge gdal gdal==3.0.1
Collecting package metadata (current_repodata.json): done
Solving environment: failed
Collecting package metadata (repodata.json): done
Solving environment: failed

UnsatisfiableError: The following specifications were found to be incompatible with each other:

  - _anaconda_depends -> mkl-service
  - anaconda -> mkl-service==1.1.2=py36he904b0f_5
  - fiona -> gdal[version='>=2.4.1,<2.5.0a0'] -> libgdal==2.4.2=h0845e09_2
  - gdal==3.0.1 -> libgdal==3.0.1=h0845e09_3
  - geopandas -> fiona -> gdal[version='>=2.4.1,<2.5.0a0'] -> libgdal==2.4.2=h0845e09_2
  - libgdal
  - pkgs/main/linux-64::importlib_metadata==0.8=py37_0
  - pkgs/main/linux-64::mkl-service==1.1.2=py37he904b0f_5
  - pkgs/main/linux-64::path.py==11.5.0=py37_0 -> importlib_metadata[version='>=0.5']
  - rasterio -> libgdal[version='>=2.4.1,<2.5.0a0']

所以我不确定我应该在这里做什么?每次运行命令时,我都无法保持注销状态并重新登录帐户。内存永远不会释放,因此,如果我再次运行任何rasterio或gdal命令,则整个系统将锁定。

1 个答案:

答案 0 :(得分:0)

我建议您使用Google Colab。据我所记得,它允许近20 GB的RAM。在Colab中尝试一下,至少可以确保计算机不会再崩溃。另一个建议是,尝试使用较小的地图来观察可能出了什么问题。