Necesito una forma de fusionar programáticamente celdas de cuadrícula (polígono 15x15m) que están directamente una encima de la otra y sumar algunos de sus atributos.
Estoy trabajando en ArcGIS 10.1 con los datos almacenados como una clase de entidad poligonal.
Los datos son el resultado de un estudio de peatones en una cuadrícula predefinida. En ocasiones, las personas que realizan la inspección de peatones se desvían y graban algo en una columna o fila adyacente a la que están trabajando (o la posición del GPS se desvía). Esto da como resultado que se registren dos conjuntos de datos para cada celda cuando los datos de múltiples unidades GPS se agregan en una sola clase de entidad. Necesito una forma de recorrer cada celda, verificar si hay características duplicadas, si luego se combinan sus atributos (algunos enteros, algunos textos), y luego elimine la única característica que no obtuvo los datos combinados.
Las herramientas 'Eliminar idéntico' y 'Buscar idéntico' no hacen lo que estoy buscando, y hacerlo manualmente no es una opción ya que la clase de entidad a menudo tiene más de 10,000 características.
Sé cómo iterar a través de la clase de entidad usando Python y verificar para determinar si hay entidades duplicadas en esa ubicación. Lo que no sé hacer es tratar de fusionar las características y actualizar los atributos. Si alguien puede ofrecer alguna dirección sobre cómo lograr esto, lo agradecería enormemente.
EDITAR - Más descripción del estado Antes / Después: en la imagen a continuación hay dos características seleccionadas: polígonos cuadrados idénticos de 15x15 metros, necesito agregar todos los campos enteros (los que tienen TOT_ como prefijo) y agregar GPS_UNIT, INICIALES , y campos de cadena REC_DATE.
Es difícil de mostrar ya que las características se superponen directamente.
EDITAR 2: descubrí que puedo identificar fácilmente las características duplicadas calculando sus centros XY, concatenándolos en un campo de cadena como [X] & ',' & [Y] y luego abriendo la base de datos en acceso y usando una consulta Buscar duplicados para identificar cuáles de las células se han duplicado. Sin embargo, no he podido encontrar una buena manera de fusionar los atributos para cada una de las celdas en una sola fila. ¡Ayuda con cómo hacerlo, ya sea en python o en un entorno de base de datos, sería muy bienvenido!
Respuestas:
Como sabe cómo iterar y encontrar las características que desea fusionar, crearía una función para hacer la fusión que probablemente podría ser arcpy.Dissovle_management (). Disuelva y probablemente pueda usar los parámetros de agregación para combinar los atributos, luego elimine esas características del original y actualice los datos nuevamente con un cursor de inserción.
¿Cómo identifica qué características deben fusionarse?
fuente
Terminé resolviendo este problema después de migrar a Postgres y tener algunas herramientas más poderosas a la mano. Mi solución fue simplemente eliminar características adicionales con campos GEOM idénticos, dejando una, por supuesto, y luego recalcular los valores de los otros datos recopilados durante el trabajo de campo. Esto me dio un conjunto de datos sin características espacialmente coincidentes y totales precisos en las tablas de atributos. El código PHP completo que utilicé está debajo; Estoy seguro de que lo mismo podría lograrse en Python, pero PHP era la ruta más fácil para mí en ese momento.
fuente
Como solo desea fusionar atributos para celdas (en realidad polígonos) que son idénticos, usaría Union y mantendría todos los atributos. De esa manera, puede recorrer todos los polígonos (celdas) resultantes y tener acceso a ambos conjuntos de atributos originales para escribir los nuevos valores que desee. Si ambas clases de entidad originales utilizan los mismos nombres de atributo, es posible que deba cambiar el nombre de los campos antes de la Unión para que ambos permanezcan disponibles.
En realidad, una rápida relectura de su pregunta me dice que solo tiene una clase de entidad de entrada. La unión aún puede ser útil porque puede ejecutarse contra una única clase de entidad como se describe aquí .
fuente