网上查了一堆资料,五花八门,总结了一下可能的原因:
① gdal不支持该格式
使用命令“gdalinfo --formats” 即可查看当前环境中的gdal所能支持的数据格式。如下图(没截完整,下面还有一大串)。
这个是很常见的回复,网上许多回答都说低版本的 gdal 不支持 hdf5,让你重装高版本的gdal。可惜我的文件不是 hdf5 哈哈。
②hdf 文件损坏
可以到另一个python环境下面读一下这个文件,或者用gis软件读取试试。
③ gdal 与 python / linux 版本冲突
我最后是定位到了这个问题。机缘巧合看到一个论坛(Failed to open MODIS .hdf4 files - Science - Pangeo)里,最后面的回复:
一开始我是抱着试试的心态,用conda,不用pip,重新安装了一下我的gdal。
conda真是好东西!输出的信息一下子就让人 懂了O(∩_∩)O哈哈~
我之前用pip安装了whl,暴力装上了,但用的时候就会有问题。安装了不冲突的gdal之后,就成功打开文件啦~
题外话:我发现linux系统和Windows系统下面,库的版本是有差异的。比如我的本机Windows上装的是gdal3.2.3和numpy1.19.1,linux服务器上装的却是gdal3.0.2和numpy1.21.5。