GDAL滤波(python版)

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

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值