GDAL/OGR一般使用¶
检测安装¶
from osgeo import gdal
查看版本¶
gdal.VersionInfo('VERSION_NUM')
# '2040100'
开启python异常¶
默认情况下,发生错误时,GDAL/OGR Python绑定不会引发异常。相反,它们返回错误值(例如None),并将错误消息写入sys.stdout。你可以通过调用UseExceptions()函数来开启异常:
from osgeo import gdal
# 开启异常
gdal.UseExceptions()
# 打开不存在的数据集
ds = gdal.Open('test.tif')
# 开启异常前
ERROR 4: test.tif: No such file or directory
# 开启异常后
RuntimeError Traceback (most recent call last)
<ipython-input-5-6ef000fdc647> in <module>
----> 1 gdal.Open("test.tif")
c:\program files\python37\lib\site-packages\osgeo\gdal.py in Open(*args)
3114 def Open(*args):
3115 """Open(char const * utf8_path, GDALAccess eAccess) -> Dataset"""
-> 3116 return _gdal.Open(*args)
3117
3118 def OpenEx(*args, **kwargs):
RuntimeError: test.tif: No such file or directory
你可以在运行的任何时候使用以下命令禁用GDAL/OGR异常:
gdal.DontUseExceptions()
安装GDAL OGR错误处理¶
安装GDAL错误处理程序功能,以捕获GDAL错误、类和消息。仅适用于GDAL 1.10以上的版本。
from osgeo import ogr, osr, gdal
# GDAL错误处理方法
def gdal_error_handler(err_class, err_num, err_msg):
errtype = {
gdal.CE_None:'None',
gdal.CE_Debug:'Debug',
gdal.CE_Warning:'Warning',
gdal.CE_Failure:'Failure',
gdal.CE_Fatal:'Fatal'
}
err_msg = err_msg.replace('\n',' ')
err_class = errtype.get(err_class, 'None')
print('Error Number: %s' % (err_num))
print('Error Type: %s' % (err_class))
print('Error Message: %s' % (err_msg))
if __name__=='__main__':
# 安装错误处理
gdal.PushErrorHandler(gdal_error_handler)
# 抛出一个假的错误
gdal.Error(1, 2, 'test error')
# 卸载错误处理
gdal.PopErrorHandler()