小斑块去除
指定波段中小于指定像元个数的细小图斑清除,并且使用周围的像元值来替换。
使用方法
这里我们采用gdal.SieveFilter()方法进行小斑块去除。
- 参数说明(未列完)
参数 | 说明 |
---|---|
srcBand | 输入数据波段 |
maskBand | 设置掩码波段(只对掩码区域进行处理) |
dstBand | 输出数据波段 |
threshold | 去除板块的最大像元个数 |
connectedness | 图斑连通方式,通常指定为4或8 |
- 代码实现
def SieveFilterTheRaster():
# 参数说明 输入数据波段 、设置掩码波段(只对掩码区域进行处理)、输出数据波段、去除板块的最大像元个数、图斑连通方式
threshold = 2
connectedness = 4
options = []
format = 'GTiff'
mask = 'none'
inputfile=r'G:/studyprojects/gdal/GdalStudy/Files/images/CHA.tif'
src_ds = gdal.Open(inputfile, gdal.GA_Update)
srcband = src_ds.GetRasterBand(1)
dstband = srcband
if mask is 'default':
maskband = srcband.GetMaskBand()
elif mask is 'none':
maskband = None
else:
mask_ds = gdal.Open(mask)
maskband = mask_ds.GetRasterBand(1)
prog_func = test()
result = gdal.SieveFilter(srcband, maskband, dstband,
threshold, connectedness,
callback=prog_func)