java gdal tiff_科学网—Python GDAL 对大型 tiff文件(BigGeoTiff)的不支持的解决方案 - 崔学皓的博文...

博主在更新Anaconda后遇到GDAL无法打开大于4GB的大文件,通过Stack Overflow找到解决方案。GDAL 2.0及更高版本理论上支持大文件,但Anaconda的GDAL版本过旧。博主使用pip更新到2.2.4版,过程中遇到VC++14编译器问题,最终通过在VC++14命令提示符中执行pip安装解决。更新后成功读取5.24GB的TIFF文件。
摘要由CSDN通过智能技术生成

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

大功告成!

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

链接地址:http://blog.sciencenet.cn/blog-3314854-1108699.html

上一篇:How to define types of Forest ?

下一篇:Anaconda python3.6 下安装opencv 后import cv2报错问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值