Estoy utilizando ArcMap 10.8.1.
Tengo archivos shape que son una serie de polígonos superpuestos de huellas de imágenes de drones. Quiero hacer un bucle a través de cada shapefile, y para cada shapefile hacer un bucle y rasterizar cada polígono/fila en cada uno de esos shapefiles. Escribí un código que adapté de aquí ( Polígono a trama: Creación de 1 raster por cada polígono en la clase de característica ) donde yo:
- encontrar una lista de todos los shapefiles que terminan en
"*footprints.shp"
en un lugar intermedioSTEPS
carpeta - crear una subcarpeta de salida en
STEPS\rasterfootprints
para que cada archivo que procese contenga las huellas rasterizadas - BuscarCursor a través y crear rásteres de cada polígono en el shapefile.
Se ejecuta el siguiente código:
import arcpy
import math
import os
root = r"C:\users\myusername\Desktop\ORTHO_FOOTPRINT_AUTOMATION" #change the filepath here
inputs = root + r"\INPUT_CSVS" #input directory of geotag CSVs
steps = root + r"\STEPS" #location of temporary file storage of intermediate processing steps
rfoots = root + r"\STEPS\rasterfootprints" #subfolder in steps to store the 100's of rasterized individual photo footprints
outputs = root + r"\OUTPUT_SHAPEFILES" #location of final
arcpy.env.workspace = steps
arcpy.env.overwriteOutput = True
shplist = arcpy.ListFiles("*footprints.shp")
for shp in shplist:
prefix = shp.rsplit('footprints.shp')[0]
os.makedirs(rfoots + '\\' + prefix)
outfolder= (rfoots + '\\' + prefix)
PIDname = "PID" #Sequential PhotoID field
InFeatures=shp
with arcpy.da.SearchCursor(shp, PIDname) as sCur:
for row in sCur:
out_Raster = "PID{}.tif".format(row[0])
arcpy.MakeFeatureLayer_management(shp, "Layer") # make a new layer
arcpy.PolygonToRaster_conversion(shp, "COUNT", os.path.join(outfolder, out_Raster))
arcpy.Delete_management("Layer")
Pero parece ignorar el cursor de búsqueda a través del campo "PID"
(tipo:Largo) y produce la misma trama de toda el área (es decir, una trama de TODAS las huellas de las fotos) para cada archivo que debería ser de una sola foto.
Cuando debería darme algo como esto (creado a partir de la ejecución manual en QGIS):
Este es el aspecto de mi tabla de atributos:
¿Qué tengo que cambiar en mi script?