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
gdal
.UseExceptions
()
ds
= gdal
.Open
('test.tif')
您可以在运行时的任何时候使用以下命令禁用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')
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
()
结果:
Error Number: 2
Error Type: Debug
Error Message: test error