¿Eliminando solo agujeros de anillos de polígonos usando ArcGIS Desktop?

13

Estoy usando ArcGIS Desktop 10.0.

Tengo un truco para eliminar los orificios de dona, que es convertir el polígono en línea y luego crear un polígono fuera de las líneas y al final, fusionarlas todas. El inconveniente de esta estrategia es que al eliminar otros agujeros y áreas vacías que en realidad están vacías y deben mantenerse vacías. Vea abajo la imagen:

    
pregunta Arash 15.07.2013 - 05:44

6 respuestas

22

Probaría la herramienta Union con NO_GAPS:

  

NO_GAPS: se creará una función para las áreas en la salida que   Están completamente encerrados por polígonos. Esta característica tendrá en blanco.   atributos.

Luego, puede seleccionar las entidades con atributos en blanco debajo de un tamaño de umbral y calcular sus atributos para que sean iguales al polígono original, o copiarlos / pegarlos en la ventana Atributo del editor.

Las características con atributos en blanco por encima del umbral de tamaño deben eliminarse.

Desde allí, la herramienta Dissolve debe completar el trabajo.

    
respondido por el PolyGeo 15.07.2013 - 08:19
7

La solución de PolyGeo es una que he empleado y funciona bien (+1). Otra alternativa es amortiguar sus polígonos por una pequeña cantidad y luego eliminar el búfer del resultado por la misma cantidad (por ejemplo, + 1m y luego -1m). Esto también funciona bien, pero conlleva un pequeño riesgo de unirse accidentalmente a los polígonos que se encuentran en la misma cantidad que el búfer. También puede aumentar su recuento de vértices (lo que puede o no ser un problema).

También puede escribir una secuencia de comandos para una solución robusta iterando sobre cada polígono, creando polígonos temporales basados en los anillos interiores y probando estos para sus áreas. Si están por debajo de su umbral, luego retire ese anillo interior de la geometría y actualice su fila. Esta solución es más trabajo que la solución de PolyGeo o mi hackeo de búfer anterior, pero posiblemente sea un enfoque "más puro".

    
respondido por el MappaGnosis 15.07.2013 - 10:32
5

Puede usar la herramienta "Eliminar parte de polígono" (Herramientas de administración de datos - > Generalización) en ArcToolbox. Puede especificar el área / porcentaje de agujero mínimo para eliminar.

    
respondido por el Kadir Şahbaz 22.04.2014 - 13:15
2

Aquí hay otra forma de eliminar lagos de polígonos (como la capa de mapa de código postal de Navteq). Esto también es útil para limpiar las capas de mapa de territorio que se han generado al disolver la capa de mapa de código postal por el código de territorio.

  1. Use una "Unión" de geoprocesamiento en la capa del mapa del polígono y elimine la casilla de verificación "Brechas permitidas" (que está marcada de forma predeterminada). Esto crea polígonos para todos los orificios de "anillos" en los polígonos.
  2. En la capa del mapa de Unión resultante, agregue campos para ID, X e Y. La ID debe estar separada del nombre / ID de los polígonos que tienen los orificios de dona que desea eliminar.
  3. En la tabla de atributos, use la Calculadora de campo para calcular el ID del campo ObjectID y use "Calcular geometría" para completar los valores de X e Y.
  4. Separe los polígonos de anillos de los otros polígonos seleccionando (Seleccionar por atributos) aquellos donde el campo de nombre es nulo.
  5. Exporta los registros seleccionados a una nueva tabla. (menú desplegable de opciones de tabla - > Exportar ...)
  6. Use la opción "Agregar XY" para crear una capa de evento. (haga clic con el botón derecho en la capa - > Mostrar datos XY ....
  7. Exporte la capa de eventos a una nueva clase de entidad. (haga clic con el botón derecho en la capa - > Datos - > Exportar datos)
  8. Haga una unión espacial entre la nueva capa de puntos y la capa del mapa del polígono ORIGINAL que no tiene los polígonos de anillos. Use la opción "más cercana" para que el nombre del polígono circundante se agregue a la tabla de atributos de los polígonos de anillos.
  9. Use una combinación de tabla estándar entre la capa de punto unida y la capa de mapa resultante de la Unión (según el campo de ID). (haga clic con el botón derecho en la capa - > Une y relaciona - > Unir - > Unir datos de otra capa en función de la ubicación espacial)
  10. Use la Calculadora de campo en la tabla de atributos para calcular los nombres de polígonos nulos desde la capa de puntos unidos.
  11. Ejecutar un geoprocesamiento "Disolver" basado en el nombre del polígono para combinar los polígonos de anillos con el polígono llamado más grande.

Tenga en cuenta que esto no corregirá el problema de los ríos que se cortan en el contorno del polígono, pero mejora la capa del mapa original al eliminar los orificios interiores de la dona.

    
respondido por el Susan 20.12.2013 - 14:40
2

Si los polígonos en la clase de entidad contienen otros polígonos en la misma clase de entidad (por ejemplo, Lesotho dentro de Sudáfrica) y si necesita eliminar la edición manual a favor de ModelBuilder, etc., utilizando "Eliminar parte de polígono" es la solución más rápida. Configuración de herramientas:

- "Condición (opcional)" = ÁREA  - "Área (opcional)" = un número muy grande (por ejemplo, 1e + 100)  - "Eliminar solo las partes contenidas (opcional)" = [seleccionado]

Esto producirá una Sudáfrica en la que se ha completado el área de Lesotho, esencial para los flujos de trabajo, como la salida de vértices para su uso en las imágenes de Polygon en Tableau.

    
respondido por el Chuck 05.08.2015 - 20:42
0

Ya que no se ha mencionado hasta ahora y parece ser la herramienta adecuada para lo que está intentando lograr: Polígonos agregados

Establezca minimum_hole_size en el tamaño mínimo de un agujero poligonal que desee mantener. Los más pequeños serán eliminados.

PS. El valor opcional minimum_area en la misma herramienta hace lo mismo para las partes de polígono que no son agujeros.

    
respondido por el ZZZ 06.05.2016 - 18:56

Lea otras preguntas en las etiquetas