Uniones uno a muchos en una clase de entidad a una tabla


10

Estoy usando ArcMap 10.2.2 con una licencia avanzada. He usado ArcMap para otros análisis básicos, pero soy bastante nuevo en el programa y solo tengo habilidades básicas de codificación, sin experiencia en SQL fuera de las consultas muy básicas que usan los constructores de código SQL en ArcMap.

Tengo polígonos de rangos geográficos de especies y tengo una tabla con una lista de patógenos / enfermedades transmitidas por esas especies. Ciertas especies portan múltiples patógenos. En un mundo ideal, uniría los polígonos de los rangos a la tabla de especies + patógenos y mantendría los datos poligonales / espaciales, pero no parece que haya una herramienta SIG para hacer esto (voy a más tarde cuenta los agentes patógenos superpuestos, por lo que es importante que cada combinación de especie y agente patógeno tenga su propia característica, en lugar de una característica que tenga la información para múltiples agentes patógenos). Así son mis datos (# 1 y # 2, # 3 es para más adelante):

Tabla de atributos para características espaciales:

tabla de atributos para entidades espaciales

Tabla sin datos espaciales:

tabla sin datos espaciales

(Tenga en cuenta que estos no son datos reales, y las combinaciones de patógenos-especies pueden no ser reales. De hecho, tengo 115 polígonos y 519 filas de tablas. Las especies transportan entre 1-40 patógenos y, por lo tanto, las especies tienen entre 1-40 filas en mi mesa)

Como una ventaja adicional, debido a los análisis futuros que debo hacer, idealmente me gustaría poder hacer esta unión uno a muchos para poder mantener una columna adicional de datos de la tabla (ver más abajo un ejemplo de cómo se vería esto). Sin embargo, esto es menos importante porque si puedo descubrir cómo hacer la unión, puedo rehacer el análisis.

tabla sin datos espaciales, con campo extra

Hay algunas soluciones que encontré para este problema, pero no funcionaron para mí por los motivos que se enumeran a continuación:

Solución 1: blog de David Aalbers : soy demasiado novato para descubrir cómo editar el script más nuevo y cómo importarlo en ArcMap. Probé el script anterior y solo generó una tonelada de polígonos vacíos titulados test, test_1, test_1_1, test_1_1_1, etc.

Solución 2: Unión uno a muchos : intenté usar la herramienta Crear tabla de consulta (y no tengo conocimiento de SQL, aunque utilicé el generador de expresiones) y obtuve el ERROR 000383: Problema con una tabla, no puedo encontrar el espacio de trabajo & Error al ejecutar (MakeQueryTable). Todos mis archivos están en la misma carpeta, pero no están en una geodatabase.


1
Make Query Table funcionará solo con la base de datos
FelixIP

1
Crear tabla de consulta requiere todos los datos en el mismo fgdb.
klewis

Respuestas:


22

Para multiplicar las entidades, haga esto (disponible para aquellos que tienen ArcGIS 10.1 o superior).

  1. Coloque las características y la tabla en la misma geodatabase de archivos (debe convertir los archivos Shapefiles / Excel / DBF en la geodatabase para que esto funcione).
  2. Asegúrese de que sus polígonos tengan un campo de ID único que se conservará (puede crear un campo Largo y calcular el ObjectID en él para que el valor de ObjectID no se pierda).
  3. Haga una unión estándar de la tabla (atributos, sin datos espaciales) a las entidades (datos espaciales) en el campo coincidente. Tenga en cuenta que la tabla de atributos de las características (datos espaciales) tendrá la misma cantidad de características que tenía antes, pero no se preocupe por esto, todos se muestran en el siguiente paso.
  4. Exporte las entidades a la misma geodatabase que una nueva clase de entidad (haga clic con el botón derecho en la capa de la tabla de contenido y elija exportar). Tenga en cuenta que el número de características en la tabla de atributos de las características exportadas ahora tiene el número correcto de características, igual que la tabla original (con atributos, sin datos espaciales) o, en el caso de una unión de muchos a muchos, un conjunto completo de características para todas las combinaciones de características y registros relacionados.

Las características se multiplicarán en una nueva clase de entidad donde cada entidad estará presente (incluso si no tenía una coincidencia en la tabla) y donde hubo una coincidencia 1: M antes, las características se multiplicarán para hacer un 1: 1 coincidencia de cada característica con todas sus entradas de tabla. El campo ID único que creó en el paso 2 le permitirá relacionar los polígonos multiplicados con el conjunto original de polígonos individuales. Con la nueva clase de entidad de entidades multiplicadas, puede hacer selecciones en los campos de la tabla, resúmenes, uniones espaciales, etc.

Si desea generar un valor de ID único que represente cada combinación única de especies y enfermedades, puede usar la versión 10.2 de la herramienta descrita en esta publicación de blog . Tener este tipo de clave le permite usarlo para hacer uniones estándar a tablas de resumen y estadísticas basadas en una relación de múltiples campos como un sustituto para crear una relación real de múltiples campos usando una configuración de Crear tabla de consulta.

Aquí hay una buena referencia de esri: https://support.esri.com/en/technical-article/000001228


¡Funciona perfectamente cuando se exporta a la geodatabase!
MooseGirl

1
Modifiqué mi paso 4 para indicar que la exportación debería realizarse a una nueva clase de entidad en la misma geodatabase que los datos originales. Seguir ese procedimiento siempre debería funcionar, aunque es posible que también se permitan algunas variaciones de dónde se almacenan los datos de origen y de salida.
Richard Fairhurst

Estaba claro antes (aunque las futuras personas desesperadas seguramente apreciarán que se deletree), pero originalmente no me había conectado correctamente a la carpeta de la geodatabase (o algo así) porque no me permitía exportar a la geodatabase. Reinicié y funcionó bien.
MooseGirl

1
Agregué que las características unidas no tendrán el número correcto de atributos y las características exportadas sí. Esto me frustró mucho cuando intenté esto, hasta que pasé por todos los pasos.
nittyjee

Se lee como si faltara un 'no' en el n. ° 3, "... tendrá notla misma cantidad de características ..."
matt wilkie

-2

Consulta SQL:

SELECT spp, disease, type
FROM table1, table2
WHERE table1.bimonial = table2.spp;
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.