¿Calcular área dominante en polígono usando ArcGIS Desktop?

8

Primero, tengo un archivo de forma que consiste en cuadrículas cuadradas y cada cuadrícula tiene una ID. En segundo lugar, tengo un archivo shape que consta de diferentes zonas (con ID).

Una ID de cuadrícula en el primer archivo de forma puede contener muchas ID de zona del segundo archivo de forma.

Quiero saber cuál es la ID de zona dominante dentro de una cuadrícula y registrar eso en una tabla. Solo quiero saber la zona dominante (en términos del área) y no el resto de las zonas que cruzan esa cuadrícula. Al final, me gustaría una tabla de 2 columnas con todas las ID de cuadrícula en la primera columna y la ID de zona dominante correspondiente (o la zona más grande en términos de área) en la segunda columna.

Aquí hay una figura de muestra. Simplemente mirando la figura, podría decir que en la ID de cuadrícula 1, la zona / área dominante es la ID de zona 1. En la ID de cuadrícula 2, la zona / área dominante es la ID de zona 2. Y en la ID de cuadrícula 3, la zona dominante / area es Zone ID 3. Me gustaría tener una tabla con dos columnas, con cada cuadrícula mostrando solo la ID del área dominante.

ingrese la descripción de la imagen aquí

GISnuevo
fuente

Respuestas:

8

ENTRADA:

ingrese la descripción de la imagen aquí

Después de disolver las zonas, use el siguiente FLUJO DE TRABAJO:

arcpy.Intersect_analysis("GRID #;ZONE #","D:/Scratch.gdb/intersect")
arcpy.Sort_management("intersect", "D:/Scratch.gdb/sorted","Shape_Area DESCENDING")
# DELETE MINORITIES USING GRID ID 
arcpy.DeleteIdentical_management("sorted", "ID")

SALIDA MUESTRA "CLASIFICADO" Y REJILLA:

ingrese la descripción de la imagen aquí

Transfiera el ID de la zona dominante a la capa de cuadrícula desde "ordenado", utilizando atributos de unión por, si es necesario.

Actualización importante un año después: cada zona debe ser un polígono único, potencialmente multiparte. Si este no es el caso, la capa de zonas original debe disolverse por nombre de zona.

FelixIP
fuente
6

Ok, creo que sigo la pregunta. Intenté esto con un conjunto de datos de prueba. Estoy usando una geodatabase para que se calcule el área (recomendado). Si debe usar un shapefile, calcule un campo con geometría para shape_area antes de realizar el paso 2. Tengo una capa de polígono llamada Poly y una cuadrícula de red llamada FNET. Poly tiene un campo (MTYPE) y valores de 1 (granate), 2 (verde) o 3 (morado) (colores de la primera captura de pantalla).

ingrese la descripción de la imagen aquí

Paso 1. Intersecar las 2 capas. Operación de intersección

Ahora el resultado de ese primer paso le proporciona campos FID para cada capa (en mi caso, es FID_FNET y FID_Poly).

Captura de pantalla que muestra cómo se conserva el FID para cada uno (325 es la celda de la cuadrícula y tiene uno de cada uno de 1, 2 y 3). Captura de pantalla que muestra cómo se conserva el FID para cada uno

Paso 2. RESUMEN (lo siento, la captura de pantalla se parece a "Estadísticas" pero usa Resumir).

Resumir (mostrando la tabla)

Paso 2 (continuación). Haga un resumen en FID_FNET y configúrelo como en la siguiente captura de pantalla para obtener un máximo en el campo Shape_Area ...

Parámetros para resumir

Paso 3. Haz una unión usando la salida de la operación de intersección y la tabla (une la tabla a la intersección) y basa la unión en shape_area desde la salida de intersección y el "Max_shape_area" de la tabla.

Los valores nulos pueden ignorarse (son los que NO eran máximos) o eliminarse (mejor aún). ¡y el resultado usando la tabla unida es una lista de registros FID_FNET que también tienen un FID_POLY que coincide con el valor más grande (MAX) para cada celda de la cuadrícula!

Esta última captura de pantalla muestra cómo configuro la unión. UNIRSE

jbchurchill
fuente
Muchas gracias @jbchurchill. Lo probaré en mi conjunto de datos y le informaré más adelante si funciona.
GISnuevo
Seguí cada paso. Tengo el archivo de intersección con aproximadamente 34,000 registros. Después del paso del resumen, obtuve una tabla con 30,000 registros. Cuando intenté unirme a ellos, solo se unió a menos de 100. Estoy confundido de lo que pasó con el resto. ¿Puede ArcMap unir tantos registros?
GISnuevo
En realidad, las áreas que no coinciden son las "áreas no dominantes" sobrantes, por lo que no debería preocuparse por ellas. Si no, están fuera del área superpuesta.
jbchurchill
Esto es increíble. No estaba buscando el máximo, pero esto todavía me ayudó mucho. Me pregunto, el área de forma en la tabla resumida, ¿cuál es la unidad de la misma?
AndrewLebron
@AndrewLebron es (por diseño) siempre igual a las unidades horizontales para la clase de entidad, así que eche un vistazo a las propiedades de la entrada.
jbchurchill