文章目录
一、功能介绍二、脚本代码三、工具参数四、使用例系列文章目录:ArcGIS自定义脚本编程
相关文章:【MODIS数据处理#10】例五:用NDVI估算植被覆盖度
一、功能介绍
二、脚本代码
#!/usr/bin/python# -*- coding: UTF-8 -*-# Import arcpy moduleimport arcpyimport os# Check out any necessary licensesarcpy.CheckOutExtension("spatial")in_path = arcpy.GetParameterAsText(0)out_path = arcpy.GetParameterAsText(1)vi_soil = arcpy.GetParameterAsText(2)vi_veg = arcpy.GetParameterAsText(3)arcpy.env.workspace = in_path# Local variables:tifs = [os.path.split(i)[1] for i in os.listdir(in_path) if i.endswith(".tif")]up = vi_soillower = vi_vegvi_range = float(vi_veg)-float(vi_soil)for tif in tifs:condition = r"""Con(("{0}"<={1}),0,Con(("{0}">={2}),1,("{0}"-{1})/{3}))""".format(tif,up,lower,vi_range)arcpy.AddMessage(condition)out_tif = os.path.join(out_path, "{0}".format(tif.split(".")[0] + ".fc.tif"))arcpy.gp.RasterCalculator_sa(condition, out_tif)
三、工具参数
四、使用例
如果运行后的植被覆盖度栅格导入arcmap值存在异常,可以用复制栅格工具将栅格的数据类型更改为32_bit_float.