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