GDAL / OGR
测试GDAL/OGR是否安装
import sys
try:
from osgeo import ogr, osr, gdal
except:
sys.exit('ERROR: cannot find GDAL/OGR modules')
检查已安装的GDAL / OGR版本
import sys
from osgeo import gdal
version_num = int(gdal.VersionInfo('VERSION_NUM'))
if version_num < 3000400:
sys.exit('ERROR: Python bindings of GDAL 3.04 or later required')
启用python异常
默认情况下,发生错误时,GDAL / OGR Python绑定不会引发异常。相反,它们返回错误值(例如None),并将错误消息写入sys.stdout。您可以通过调用UseExceptions()函数来启用异常:
from osgeo import gdal
# Enable GDAL/OGR exceptions
gdal.UseExceptions()
# open dataset that does not exist
ds = gdal.Open('test.tif')
# results in python RuntimeError exception that
# `test.tif' does not exist in the file system
您可以在运行时的任何时候使用以下命令禁用GDAL / OGR异常:
from osgeo import gdal
gdal.DontUseExceptions()
安装GDAL / OGR错误处理程序
import sys
try:
from osgeo import ogr, osr, gdal
except:
sys.exit('ERROR: cannot find GDAL/OGR modules')
# example GDAL error handler function
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__':
# install error handler
gdal.PushErrorHandler(gdal_error_handler)
# Raise a dummy error
gdal.Error(1, 2, 'test error')
#uninstall error handler
gdal.PopErrorHandler()
结果:
Error Number: 2
Error Type: Debug
Error Message: test error