18 votos

¿Contar y rasterizar los solapamientos de polígonos en ArcGIS Desktop?

¿Cómo se toma una capa vectorial con polígonos superpuestos y se convierte en una trama en la que cada celda cuenta el número de polígonos que contiene esa celda?

Estamos buscando polígonos de áreas quemadas por incendios entre 1976 y 2000 y queremos ver cuántos incendios estarían contenidos en cada celda raster.

23voto

cjstehno Puntos 131

Hazlo en tres pasos: descomponer los polígonos en sus partes componentes, contar los solapamientos y convertirlos en ráster. Así se evita el enorme coste computacional que supone convertir por separado cada polígono en una trama y combinar esas tramas.

  1. Union (en el Geoprocessing ) rompe los polígonos en sus partes.

    Por desgracia, cada solapamiento es duplicado en la salida: tiene una copia idéntica para cada polígono original que lo cubre. Por lo tanto,

  2. Dissolve (de nuevo en el Geoprocessing ) fusionará las partes superpuestas, proporcionó puedes encontrar una manera de identificarlos de forma única. Lee el diálogo: hacia el final, tendrás una opción para calcular "estadísticas". Elija cualquier campo que pueda haber identificado el original polígonos y pedir un cuenta.

    En muchos casos, la combinación del área del polígono y el perímetro identificará de forma exclusiva las partes. Si no es así, puede añadir más propiedades geométricas en campos adicionales, como las coordenadas del centroide, hasta que haya acumulado suficiente información para distinguir cada característica.

    La capa resultante tiene una característica para cada solapamiento de polígono y algún tipo de campo de "recuento" que cuenta el número de solapamientos.

  3. Convertirlo en un raster, utilizando el campo "count" para los atributos.


Por ejemplo, aquí hay algunos polígonos superpuestos y sus identificadores con la tabla de atributos mostrada:

enter image description here

Tras el segundo paso, tenemos un registro para cada región solapada junto con un recuento que ya puede utilizarse para simbolizar la cantidad de solapamiento:

enter image description here

El resto es fácil y es sólo un solo operación de rasterización.

0 votos

Este método vectorial también funciona muy bien, excepto cuando se aplica a cientos de miles de polígonos con muchos solapamientos en un ordenador con memoria limitada...

0 votos

@ccn Cuando hay más polígonos de los que ArcGIS puede manejar, divide el conjunto de datos en partes que puede proceso. El resultado serán varias tramas -pero no miles o millones de ellas- que luego se pueden sumar fácilmente. Otra ventaja de utilizar Union es que con casi el mismo flujo de trabajo puede abordar la situación en la que los polígonos residen en múltiples conjuntos de datos (lo que suele ser un mal diseño de la base de datos, pero desgraciadamente es común): simplemente se unen todos los conjuntos de datos de entrada a la vez.

0 votos

@ccn (Continuación) el punto que planteas se reduce a esto: cuándo es mejor rasterizar los polígonos y usar operaciones raster para fusionarlos en comparación con usar operaciones vectoriales ( union ) seguido de la rasterización? Las operaciones vectoriales se atascan cuando las características se digitalizan con más detalle del necesario, dotándolas de demasiados vértices. En estas circunstancias extremas, el enfoque de rasterización podría ser mejor (aunque simplificar primero los polígonos podría ser una opción superior). En todas las demás situaciones, sin embargo, rasterizar cada polígono por separado es un enorme desperdicio de ordenador y tiempo humano.

1voto

skamradt Puntos 13049

El siguiente post tiene una pregunta algo similar que podría encontrar una solución relacionada: ¿Creación de una superficie ráster de solapamientos a partir de shapefiles de polígonos vectoriales? .

Para este enfoque rasterizado, rápido y sencillo de calcular, tendrá que (1) separar los polígonos superpuestos en capas separadas (presumiblemente por año para los polígonos de incendios) utilizando Seleccionar por atributos en ModelBuilder con un iterador o una herramienta script, (2) convertir cada Polígono a Raster con la asignación de la celda MAXIMUM_COMBINED_AREA (asegurando la misma tamaño de la célula , rasterización rápida y que el extensión sigue siendo el mismo que el conjunto de polígonos) - utilizando un valor de campo constante (por ejemplo, utilizar el campo del año o las filas que tienen todos los 1s) para convertir en (de nuevo utilizar ModelBuilder con un iterador o Python script para ayudar a automatizar), y luego (3) aplicar la siguiente herramienta de Spatial Analyst: Estadísticas de las células - utilice el tipo de estadística VARIETY si cada trama tiene un valor único como el año o SUM si todos los valores de las celdas de las tramas son 1s - asegúrese de comprobar que se ignoran los NoData.

Los rásteres intermedios (de la conversión anterior) pueden ser eliminados o están listos para ser utilizados en posteriores análisis de ráster.

0 votos

(Véase mi comentario a La respuesta de Aaron .)

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