3 votos

¿Borrar idénticos por tamaño?

Tengo una clase de características con algunos campos idénticos. Ahora sólo necesito un polígono que tenga el mismo ID y que sea el de mayor tamaño. ¿Existe la posibilidad de eliminar los polígonos que son idénticos por tamaño para que sólo queden los polígonos más grandes (de los que tienen el mismo ID)?

Por ejemplo:

ID   shape area

1    5
2    4
2    3
3    11
4    7
5    8
5    10

y sólo necesito los polígonos de mayor tamaño, es decir, el primero, el segundo, el cuarto, el quinto y el último.

2voto

Cocoro Cara Puntos 21

Yo utilizaría la herramienta de disolución.

  1. Abrir la caja de herramientas
  2. Herramientas de gestión de datos/Generalización/Disolución
  3. Elija su archivo como entrada
  4. Disolver en los campos relevantes (no estoy seguro de cómo son todos tus datos, así que no puedo dar una buena recomendación aquí).
  5. En la parte de estadísticas seleccione el campo ID y luego Tipo de estadística: MAX

Ejecute la herramienta y debería obtener los resultados que busca.

2voto

Hotpepper Puntos 613

Este script (python) comprobará los registros en su capa y añadirá los IDs y sus tamaños a un diccionario y terminará con cada ID asociado con el valor más grande, luego seleccionará y borrará cualquier cosa que no esté en ese diccionario.

import arcpy
dict_IDs ={}
layer = arcpy.SearchCursor("YourLayer")

for i in layer:
    record= i.getValue('Id')
    if record in dict_IDs:
        if dict_IDs[record]<i.getValue('size'):
            dict_IDs[record]=i.getValue('size')
    else:
        dict_IDs[record]=i.getValue('size')

for record_id in dict_IDs:
    qry="Id= "+str(record_id)+" and size <> "+str(dict_IDs[record_id])
    arcpy.SelectLayerByAttribute_management("YourLayer","ADD_TO_SELECTION",qry)

arcpy.DeleteRows_management("YourLayer")

0voto

John Kramlich Puntos 286

A menos que haya entendido mal lo que pregunta, una sola herramienta puede hacer esto, es la Borrar idénticos herramienta. La única salvedad es que requiere un nivel de licencia Advance (ArcInfo).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X