GDAL滤波(python版)

该博客介绍了如何利用Python的GDAL库对栅格数据进行滤波操作。通过`gdal_sieve`函数,可以设定阈值和连接度参数,对输入栅格文件进行滤波,从而去除小斑块或者噪声。该函数调用了GDAL的SieveFilter方法,处理完成后返回滤波结果。
摘要由CSDN通过智能技术生成
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值