栅格数据处理与NumPy、SciPy的地图代数应用
1. 回调函数
在处理长时间运行的进程时,我们通常希望了解进程的执行进度。在处理批量文件时,我们可能会让代码打印出当前正在处理的文件名,但对于GDAL函数(如计算统计信息或图像变形),这种方法就不太适用了,因为一旦调用这些函数,具体的处理过程就不在我们的掌控范围内。
幸运的是,GDAL开发者考虑到了这一点,许多GDAL函数都接受回调函数作为参数。回调函数是一种被传递给另一个函数,并在该函数内部被调用的函数。
1.1 使用预定义回调函数
GDAL提供了一个预定义的回调函数 gdal.TermProgress_nocb ,它可以在进程运行时定期打印进度信息。例如,在计算统计信息时,可以这样使用:
band.ComputeStatistics(False, gdal.TermProgress_nocb)
OGR层的一些方法(如 Intersection 和 Union )也接受回调参数。使用时,导入GDAL并传递 gdal.TermProgress_nocb 即可。
我们还可以使用这个函数来打印自己函数的进度。例如,在批量处理文件时:
for i in range(len(list_of_files)):
process_file(list_of_files[i])
超级会员免费看
订阅专栏 解锁全文
2630

被折叠的 条评论
为什么被折叠?



