¿Arreglando miles de pequeños polígonos superpuestos?

21

Estoy usando ArcMap 10.3.

Tengo una capa de diferentes tipos de uso de la tierra. Descubrí que muchos polígonos se superponen entre sí y, como resultado, el mismo polígono tiene dos tipos diferentes de uso de la tierra.

Utilizando @ radouxju's respuesta , Construí una topología para la capa de uso de la tierra (con la regla de no superposición). Luego, utilicé la fusión para arreglar los polígonos superpuestos grandes.

Sin embargo, tengo miles de pequeños polígonos superpuestos. Puedo arreglarlos todos manualmente, lo que tomará tiempo.

¿Hay una forma más rápida de corregir todos estos errores?

He actualizado el mapa para mostrar todos los tipos de uso del suelo. Los polígonos se superponen entre sí; no astillas.

    
pregunta aelwan 10.11.2015 - 02:53

8 respuestas

6

La preocupación planteada por @Adam Cara es muy válida. Sin embargo, cuando miré la auto-intersección, parecía que la mayoría de ellos eran bien pequeños en el límite entre dos polígonos masivos. O los bits / islas desconectados de un polígono grande que se encuentra dentro de otro. En este caso, el borrado de las superposiciones, y la asignación de las superposiciones disueltas, el atributo del vecino más cercano (lo que ocurra primero) puede funcionar.

Process:

arcpy.Intersect_analysis("Landuse2b #","D:/Scratch/mpart.shp","ALL","#","INPUT")
arcpy.MultipartToSinglepart_management("mpart","D:/Scratch/spart.shp")
arcpy.Dissolve_management("spart","D:/Scratch/dissolved_1.shp","#","#","SINGLE_PART","DISSOLVE_LINES")
arcpy.Erase_analysis("Landuse2b","dissolved_1","D:/Scratch/erased.shp","#")
arcpy.DeleteField_management("spart","FID_Landus;OBJECTID;Lnduse2013;Shape_Leng;Shape_Area")
arcpy.SpatialJoin_analysis("spart","erased","D:/Scratch/sj_1.shp","JOIN_ONE_TO_ONE","KEEP_ALL"…..)
arcpy.Merge_management("sj;erased","D:/Scratch/merge_1.shp"….)
arcpy.Dissolve_management("merge_1","D:/Scratch/dissolved.shp","Lnduse2013","#","SINGLE_PART","DISSOLVE_LINES")

Test :

arcpy.Intersect_analysis("dissolved #","D:/Scratch/test.shp","ALL","#","INPUT")

Message:

  • Ejecutando: Intersecta "disuelto #" D: \ Scratch \ test.shp ALL # INPUT
  • Hora de inicio: viernes 22 de abril 10:16:07 2016
  • Funciones de lectura ...
  • características de craqueo ...
  • Características de ensamblaje ...
  • ADVERTENCIA 000117: Se generó una advertencia de salida vacía.
  • Sucedió el viernes 22 de abril 10:16:09 2016 (Tiempo transcurrido: 2,34 segundos)

Tenga en cuenta que este mensaje significa que no hay intersecciones en la salida final Disolver

Resultar

enlace

    
respondido por el FelixIP 22.04.2016 - 00:19
7

Si tus polígonos están astillados, el comando eliminar funciona bien para fusionarlos en el polígono de área más grande o en el borde más largo.

Si los polígonos se superponen, puede haber una forma más fácil, pero seleccionaría los solapados en una capa separada, luego los uniré nuevamente, creando las astillas y usando el comando de eliminación.

    
respondido por el Bryan Waller 10.11.2015 - 06:17
6
  1. Seleccione un área pequeña y conviértala en dos archivos de formas para ver si este proceso está funcionando.
  2. Cree un nuevo campo llamado prueba (número) en s1 y s2.
  3. Intersecta dos archivos de formas S1 y S2.
  4. Las áreas que se solapan se identificarán en un archivo separado, por ejemplo. denominado Common1 (Área sombreada en la figura).
  5. Calcule la prueba de campo como 1 en común.
  6. Unión S1 y común
  7. Seleccione 1 desde el campo de prueba y elimine el área sombreada.
  8. Ahora fusiona s2 y común. El comando de borrado se puede usar para borrar el área común.
respondido por el Shampa 11.11.2015 - 17:42
6

¿Ha considerado dividir las clases individuales de uso de la tierra en archivos de forma separados para trabajar con ellos de esa manera? Primero pensé en hacer una intersección pero vi que fallaba arriba. Sin embargo, si tiene siete shapefiles separados, puede manipularlos más fácilmente.

La pregunta principal que tengo es si hay superposición, ¿tienes una jerarquía para qué clase gana y debería aparecer al final? Por ejemplo: si se superponen los cultivos y los productos lácteos, ¿cuál mantienes? Una vez que haya establecido esta jerarquía, intersecte 2 clases a la vez, comenzando con la más baja y terminando con la más alta. Si su salida está vacía en una intersección dada, eso significa que no se intersecan.

    
respondido por el Adam Kara 21.04.2016 - 13:32
5

Una vez que haya creado una topología, habrá identificado los errores.

En la lista que muestra los errores, puede seleccionar todos los errores del mismo tipo, haga clic con el botón derecho en esta lista y elija una "solución". En su caso, la solución sería "crear entidad", que creará un nuevo polígono si se superponen dos polígonos. Este es el primer paso (tenga en cuenta que puede lograr un resultado similar utilizando la herramienta de unión con su capa de uso del suelo como una sola entrada, luego la herramienta de varias partes a una sola parte (pero las superposiciones aún se superpondrán, por lo que debe eliminar una de el valor del atributo), o convierta su polígono en líneas y luego de nuevo en polígono (pero luego pierde el atributo, necesita una unión espacial para recuperar los atributos))

El segundo paso consistiría en eliminar los polígonos pequeños. El problema es que realmente no tiene una regla para decidir qué valor de atributo desea conservar. Mi herramienta favorita es la eliminar herramienta , donde puede elegir en qué polígono vecino se fusionarán los polígonos pequeños (según el límite compartido más grande o el área más grande)

Último comentario: si tiene una regla para la clase de uso de suelo prioritario, seleccione iterativamente los polígonos pequeños (que no tienen una etiqueta) por ubicación para asignar cada clase de uso de suelo al disminuir el orden de prioridad y use la calculadora de campo para asignar su etiqueta.

    
respondido por el radouxju 24.04.2016 - 12:06
4

Si bien estoy de acuerdo con los demás en cuanto a si los polígonos se superponen o se desvían, por lo que veo aquí con esta imagen, les está mostrando a todos. Te recomendaría cambiar los colores de simbología para el uso de la tierra. De esta manera usted puede ver cuál debe ser ir o el otro. El color que nos mostró en rosa es realmente difícil de leer y puede llevarle mucho tiempo.

En la segunda parte, seleccionaría todos los polígonos superpuestos o divergentes y los exportaría a un nuevo shapefile. De esta manera usted puede identificarlos en uso de la tierra.

    
respondido por el PROBERT 22.11.2015 - 16:38
4

Una solución posible, si tiene Spatial Analyst o 3D Analyst, es que convierta los polígonos de uso terrestre a una imagen raster con la herramienta (Conversión de polígono a raster) para asegurarse de que no salga ningún polígono superpuesto, ya que no puede obtener píxeles superpuestos. . Luego, vuelva a convertir los ráster a polígonos usando la herramienta (Raster to Polygon), si aún lo necesita en formato vectorial. En este caso, elija un tamaño de celda de alta resolución (tamaño de celda detallado) para obtener polígonos de buena calidad, pero debe tener en cuenta la memoria. Es posible que deba intentarlo varias veces cambiando el tamaño de la celda hasta que esté satisfecho con los resultados. Es posible que deba suavizar los polígonos de salida, si no es perfecto, pero eso depende si tiene al menos la Licencia estándar para ArcGIS Desktop. Sé que no es una tarea fácil, pero puede resolver su problema.

    
respondido por el ahmadhanb 21.04.2016 - 09:43
4

Verifique los pocos espacios o las superposiciones entre los polígonos para encontrar la tolerancia y use la herramienta Integrar de Arctoolbox con los valores de tolerancia adecuados.

    
respondido por el Venug 24.04.2016 - 11:41

Lea otras preguntas en las etiquetas