Arcpy procesa elementos de polígonos vectoriales en lotes y fusiona los polígonos pequeños encerrados en el polígono

¡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!

Supongo que te gusta

Origin blog.csdn.net/weixin_58851039/article/details/131161399
Recomendado
Clasificación