def gdal_sieve(src_filename, threshold=100):
"""
基于python GDAL栅格滤波
:param src_filename: 输入需要处理的文件
:param threshold: 滤波的值大小
:return:
"""
# 4表示对角像素不被视为直接相邻用于多边形成员资格,8表示对角像素不相邻
connectedness = 4
gdal.AllRegister()
print('需要处理滤波的栅格文件:{},阈值(分辨率):{}'.format(src_filename, threshold))
dataset = gdal.Open(src_filename, gdal.GA_Update)
if dataset is None:
logger.error('{}栅格文件打开失败'.format(src_filename))
sys.exit(1)
# 获取需要处理的源栅格波段
src_band = dataset.GetRasterBand(1)
mask_band = src_band.GetMaskBand()
dst_band = src_band
prog_func = gdal.TermProgress_nocb
# 调用gdal滤波函数
result = gdal.SieveFilter(src_band, mask_band, dst_band, threshold, connectedness, callback=prog_func)
print('调用gdal滤波函数执行后返回结果:{}'.format(result))
src_ds = None
GDAL滤波(python版)
最新推荐文章于 2023-09-16 23:33:14 发布
该博客介绍了如何利用Python的GDAL库对栅格数据进行滤波操作。通过`gdal_sieve`函数,可以设定阈值和连接度参数,对输入栅格文件进行滤波,从而去除小斑块或者噪声。该函数调用了GDAL的SieveFilter方法,处理完成后返回滤波结果。
摘要由CSDN通过智能技术生成