将浮点类栅格转为整型栅格通常有两种方法。在使用ArcPy进行批处理时,通常使用Int()函数。
1 Spatial Analysis工具 -> 地图代数 -> 栅格计算器
点击箭头处的Int,在框内选择需要转变成整型的栅格即可。
2 Spatial Analysis工具 -> 数学分析 -> 转为整型(注意,不是逻辑运算)
在输入输出框中设置路径即可。
3 ArcPy处理
此处将输入栅格的值乘以100后转成整型,代码如下:
import arcpy
from arcpy import env
from arcpy.sa import *
# 获取该正在运行程序的绝对路径
path = os.path.abspath(os.path.dirname(sys.argv[0])) + "\\"
r_input= path + "clip\\TRMM_2013062c.tif"
r_output = path + "clip\\TRMM_2013062ci.tif"
arcpy.CheckOutExtension("Spatial")
outInt = Int(Raster(r_input) * 100)
outInt.save(r_output)
注意,arcpy.CheckOutExtension("Spatial")
用来检查ArcGIS空间分析扩展许可,没有该语句会报错:
Traceback (most recent call last): File "xxx.pyw", line 103, in <module> outInt = Int(Raster(cliptrmm) * 100) File "D:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\sa\Functions.py", line 4297, in Times in_raster_or_constant2) File "D:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\sa\Utils.py", line 47, in swapper result = wrapper(*args, **kwargs) File "D:\Program Files (x86)\ArcGIS\Desktop10.2\arcpy\arcpy\sa\Functions.py", line 4294, in Wrapper ["Times", in_raster_or_constant1, in_raster_or_constant2]) RuntimeError: ERROR 000824: \u8be5\u5de5\u5177\u672a\u83b7\u5f97\u8bb8\u53ef\u3002
欢迎大家批评指正。