¡Hola! En función de sus requisitos, puede utilizar las herramientas adecuadas en el módulo arcpy para procesar por lotes entidades poligonales vectoriales. Aquí hay algunos pasos que pueden conducir a este objetivo:
1. Importe los módulos necesarios y configure el entorno de trabajo
importar arcpy
desde arcpy import env
env.workspace = r"ruta/al/espacio de trabajo"
2. Recorra cada entidad de área y use la herramienta SelectLayerByLocation para seleccionar las entidades de área contenidas en ella
para fc en arcpy.ListFeatureClasses(feature_type="Polygon"):
lyr = arcpy.MakeFeatureLayer_management(fc, "lyr")
arcpy.SelectLayerByLocation_management(lyr, "COMPLETELY_DENTRO", fc)
3. Para los elementos del área seleccionados, calcule la proporción de su área con respecto al área de los elementos incluidos, elimine los elementos en menos del 1 % y escriba sus atributos en los atributos de los elementos incluidos
for sub_fc en arcpy.ListFeatureClasses(feature_type="Polygon"):
sub_lyr = arcpy.MakeFeatureLayer_management(sub_fc, "sub_lyr")
arcpy.SelectLayerByLocation_management(sub_lyr, "COMPLETELY_DENTRO", lyr)
if int(arcpy.GetCount_management(sub_lyr).getOutput( 0)) > 0:
para fila en arcpy.da.SearchCursor(sub_lyr, ["SHAPE@AREA", "*"]):
area_ratio = float(row[0]) / float(arcpy.Describe(lyr).shapeArea )
si area_ratio < 0.01:
arcpy.DeleteRows_management(sub_lyr)
with arcpy.da.UpdateCursor(lyr, ["*"]) como upd_cur:
para upd_row en upd_cur:
if upd_fila[0] == fila[1]:
upd_row[-1] = "Los elementos de la superficie se eliminan y fusionan"
upd_cur.updateRow(upd_row)
4. Limpiar las capas de características seleccionadas para el próximo ciclo
arcpy.ClearWorkspaceCache_management()
¡Espero que esto te ayude a lograr tu objetivo!