在一些情况下,我们需要将唯一值影像在一定范围内的分为一类,在范围外的分为另外一类,Acrgis Pro也提供了唯一值的重分类的操作,但是对于数量很多的唯一值,一个个手动更改显得费时费力;利用Arcpy可以批量对影像的唯一值进行重分类,这里以二分类为例。
本文的分类要求:将影像值为0的分类为1,将值不为0的分类为-1。
Arcgis Pro唯一值重分类界面:
显然手动更改费时费力!
利用Arcpy进行重分类代码如下:
import arcpy
# 设置环境参数
arcpy.env.workspace = "./workspace"
arcpy.env.overwriteOutput = True
# 输入栅格影像
# 这里使用的栅格影像值范围是-712~715
input_raster = "./data/raw.tif"
# 设置重分类规则
# 在重分类规则中,定义了像素值为0的为一类,值不为0的为另一类
reclass_field = "Value"
remap = arcpy.sa.RemapValue([[0, 1], [-712, -1, -1], [1, 715, -1]])
# 进行重分类
reclassified_raster = arcpy.sa.Reclassify(input_raster, reclass_field, remap)
# 保存重分类后的栅格影像
output_raster = "./reclassed.tif"
reclassified_raster.save(output_raster)
print("Reclassification complete.")