首页
学习
活动
专区
圈层
工具
发布

GDAL错误
EN

Stack Overflow用户
提问于 2014-05-26 03:38:13
回答 2查看 8.3K关注 0票数 1

我试过从Rutger Kassies那里运行这个脚本。

代码语言:javascript
复制
import gdal
import matplotlib.pyplot as plt

ds = gdal.Open('HDF4_SDS:sample:"A2002037045000.L2_LAC.SAMPLE.hdf":01')
data = ds.ReadAsArray()
ds = None

fig, ax = plt.subplots(figsize=(6,6))

ax.imshow(data[0,:,:], cmap=plt.cm.Greys, vmin=1000, vmax=6000)

但是,总会出现一个错误:

代码语言:javascript
复制
Traceback (most recent call last):
File "D:\path\to\python\stackoverflow.py", line 5, in <module>
data = ds.ReadAsArray()
AttributeError: 'NoneType' object has no attribute 'ReadAsArray'

剧本怎么了?我是不是遗漏了什么?在安装GDAL时,我遵循了下面的指令http://pythongisandstuff.wordpress.com/2011/07/07/installing-gdal-and-ogr-for-python-on-windows/

使用windows 7/32位/Python2.7。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2014-05-26 08:46:55

gdal.Open()正在失败,并返回“None”。这会产生有时违反直觉的消息"NoneType‘对象没有属性.“。引用Python: Attribute Error - 'NoneType' object has no attribute 'something'的话说,"NoneType的意思是,与您认为正在使用的任何类或对象的实例不同,您实际上没有得到任何类或对象。这通常意味着上面调用的任务或函数失败或返回了意外的结果。“

显然,GDAL已正确安装。可能是文件不可读,或者HDF驱动程序有问题。您是否收到了如下错误消息:

`HDF4_SDS:sample:"A2002037045000.L2_LAC.SAMPLE.hdf":01‘不存在于文件系统中,也不被识别为受支持的数据集名称。

要获得更多信息,您可以尝试类似的操作,而不是脚本中的gdal.Open()行:

代码语言:javascript
复制
gdal.UseExceptions()
ds=None
try:
    ds = gdal.Open('HDF4_SDS:sample:"A2002037045000.L2_LAC.SAMPLE.hdf":01')
except RuntimeError, err:
    print "Exception: ", err
    exit(1)

此外,脚本末尾还有一个额外的“}”。

票数 3
EN

Stack Overflow用户

发布于 2014-05-26 22:02:50

默认情况下,osgeo.gdal在出错时返回None,通常不会引发信息丰富的异常。gdal.UseExceptions()

试着做这样的事情:

代码语言:javascript
复制
from osgeo import gdal
gdal.UseExceptions()

source_path = r'HDF4_SDS:sample:"D:\path\to\file\A2002037045000.L2_LAC.SAMPLE.hdf":01'
try:
    ds = gdal.Open(source_path)
except RuntimeError as ex:
    raise IOError(ex)

最后一点只是重新引发异常,作为一个IOError而不是RuntimeException

解决方案是将source_path修改为数据源的工作路径,例如,我看到

`HDF4_SDS:sample:"A2002037045000.L2_LAC.SAMPLE.hdf":01‘:IOError不存在于文件系统中,也不被识别为受支持的数据集名称。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23862356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档