崔学皓
Python GDAL 对大型 tiff文件(BigGeoTiff)的不支持的解决方案
2018-4-12 11:08
阅读:11110
标签:gdal, gdal

    最近忙着硕士毕业论文,然后就很少做东西也没空写博客了,前几天毕业论文写完送国审了,正打算搞个单片机玩一玩,看看自己能不能做出个数据采集器,把想要的气象数据采集一下。由于缺了传感器还没邮到,只能复习起来C语言。

    可就在前天,手贱了一下,在Anaconda 命令器来了个conda update --all  ,然后把前几天写的一个程序试着跑一下,居然告诉我NO attribution named GetRasterBand() 然后就一脸蒙比,隐隐有种不妙的感觉。又跑了一下发现还是报错。打开变量窗口,查看文件读出的为None。这就是GDAL的尿性,打不开从来不报错,却返回一个None type value 。

   尝试一下,gdal的UseException 函数,问题出来了,GDAL 或者Libtiff 不支持bigtiff 文件。米听说过更新新版本后功能还退化了啊~~尼玛~

  有问题找stack overflow 绝对没毛病,原帖 https://stackoverflow.com/questions/49744330/why-gdal-cant-open-big-geo-tiff    ,发现也有人跟我出现了一样的毛病 ,并通过更新第三方库解决了。于是我去打开anaconda 更新gdal 发现最新版本为2.2.2 ,根据BIGtiff 的说辞GDAL在2.0版本之后,libtiff 大于4.0后就已经支持了对大型(>4GB)文件的读取。然而,并不好使。依旧打不开大文件。

  此时,突然想到pip 试着更新一下,发下最新版本为2.2.4 ,此时Anaconda的弊端暴露出来了,为了追求系统的稳定安全,Python库的更新太慢,导致对一些功能的支持失败。可是安装会报错,缺少VC++14 生成器,同时发现tar(不到1M) 版本和whl 版本体积相差甚大(大约19M)同时参考:https://blog.csdn.net/nima1994/article/details/79207805  ,最终还是选择使用whl版本的安装包,装上VC++14 pip 安装,又报错:C:\Program Files (x86)\Microsoft Visual Studio 14\VC\BIN\amd86\cl.ex e"' failed with exit status 2    ,参考了https://github.com/zeromq/pyzmq/issues/220   https://stackoverflow.com/questions/12511815/using-pip-to-install-modules-in-python-failing   这2篇帖子,我估计还是VC++14 里面有些东西不能识别或者系统找不到,既然找不到文件,那我就直接采用VC++14 的prompt命令窗口执行安装总可以吧。姑且试一试吧 。但是,却不识别pip命令 ,于是把Anaconda的script 添加到环境变量path中去 。然后执行 :

pip install  D:\Anaconda3\Lib\site-packages\GDAL-2.2.4-cp36-cp36m-win_amd64\GDAL-2.2.4-cp36-cp36m-win_amd64.whl  

试着在编译器中打开之前的较大的tiff文件(约5.24G),读取成功,文件参数变量不在是None值了~~~~



大功告成!



相关链接:

VC++14  build tool : https://www.microsoft.com/en-us/download/details.aspx?id=48159  

GDAL2.2.4 :https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal  选择和自己Python版本和系统位数一致的文件下载

转载本文请联系原作者获取授权,同时请注明本文来自崔学皓科学网博客。

链接地址:https://wap.sciencenet.cn/blog-3314854-1108699.html?mobile=1

收藏

分享到:

当前推荐数:0
推荐到博客首页
网友评论0 条评论
确定删除指定的回复吗?
确定删除本博文吗?