Estoy tratando de escribir un código en Python para varios rasters, sin embargo, me pregunto si hay una forma más rápida de hacer esto.
Estoy generando varios rasters a partir de una declaración condicional para cada valor en el archivo raster. Luego, a partir de estos rasters, estoy realizando estadísticas focales. Estoy guardando todos los rasters intermedios de la declaración condicional y usándolos en las estadísticas focales. ¿Hay alguna forma de evitar eso? ¿Puedo hacer que el código a continuación sea más automático?
# Importar el módulo arcpy
import arcpy
from arcpy.sa import *
#
arcpy.CheckOutExtension("espacial")
arcpy.env.overwriteOutput = True
arcpy.env.workspace = "D:\\_Work\\Test-Model.gdb"
#
CropMap = "ArchivoRaster"
#
#
# Paso 1
# Seleccionar cultivos
select_crop = "select_crop_136"
arcpy.gp.Con_sa(CropMap, "1", select_crop, "0", "Value = 136")
#
select_crop = "select_crop_146"
arcpy.gp.Con_sa(CropMap, "1", select_crop, "0", "Value = 146")
#
select_crop = "select_crop_147"
arcpy.gp.Con_sa(CropMap, "1", select_crop, "0", "Value = 147")
#
#
# Total de cultivos
tot_crop = "tot_crop_136"
arcpy.gp.Con_sa(CropMap, "1", tot_crop, "1", "Value = 136")
#
tot_crop = "tot_crop_146"
arcpy.gp.Con_sa(CropMap, "1", tot_crop, "1", "Value = 146")
#
tot_crop = "tot_crop_147"
arcpy.gp.Con_sa(CropMap, "1", tot_crop, "1", "Value = 147")
#
#
# Paso 2
# Estadísticas focales
#
vecindario = NbrRectangle(1000, 1000, "MAP")
#
inRaster_sel_136 = "select_crop_136"
foc_select_136 = FocalStatistics(inRaster_sel_136, vecindario, "SUM","")
#
inRaster_tot_136 = "tot_crop_136"
foc_tot_136 = FocalStatistics(inRaster_tot_136, vecindario, "SUM", "")
#
# y así sucesivamente para todos los rasters en el Paso 1