Agregar unión (Administración de datos)
Resumen
Une una capa a otra capa o tabla (donde capa es una capa de entidades, vista de tabla o capa ráster con una tabla de atributos ráster) basándose en un campo común.
Los registros en la Tabla a unir se hacen concordar con los registros en el Nombre de capa de entrada. Se realiza una concordancia cuando los valores del campo de unión de entrada y del campo de unión de salida son iguales. Esta unión es temporal.
Ilustración
Uso
-
La entrada debe ser una capa de entidades, una vista de tabla o una capa ráster que tiene una tabla de atributos; no puede ser una clase de entidad o tabla.
-
Los registros de la Tabla a unir se pueden hacen concordar con más de un registro en la capa o vista de tabla de entrada. Para obtener más información sobre uniones de uno a uno, de muchos a uno, de uno a muchos y de muchos a muchos, vea Acerca de unir y relacionar tablas.
Cuando une tablas, la opción predeterminada es mantener todos los registros. Si un registro de la tabla objetivo no coincide con otro en la tabla de unión, se establecen valores nulos determinados en ese registro para todos los campos que se anexan a la tabla de destino desde la tabla de unión.
Con la opción de conservar únicamente los registros coincidentes, si un registro de la tabla de destino no tiene una coincidencia en la tabla de unión, ese registro se quita de la tabla de destino resultante. Si la tabla objetivo es la tabla de atributos de una capa, las entidades que no tienen datos unidos no se muestran en el mapa.
-
La Tabla a unir puede ser de cualquiera de los siguientes tipos: una tabla de geodatabase (de ArcSDE, de archivos o personal), un archivo dBASE, una tabla INFO o una tabla OLE DB.
-
La capa o vista de tabla de entrada debe tener un campo ObjectID. La Tabla a unir no necesita contener un campo ObjectID.
Las propiedades de campos, tales como los alias, la visibilidad y el formato de número se mantienen cuando se agrega o se quita una unión.
Si una unión con el mismo nombre de tabla ya existe, por ejemplo, si la capa A está unida a una tabla B, al ejecutar nuevamente la herramienta para unir la tabla B dará como resultado una advertencia de que la unión ya existe.
-
La unión permanece sólo por lo que dure la sesión. Para conservar la unión y utilizarla en otra sesión, guarde la capa en un archivo de capa, con la herramienta Guardar en archivo de capa. Esto sólo se aplica a las capas; las vistas de tablas no se pueden guardar de esta forma.
-
En la capa o vista de tabla resultante, los campos de la capa o vista de tabla de entrada recibirán de prefijo el nombre de la entrada y un punto (.) y, por defecto, todos los campos de la tabla a unir recibirán de prefijo el nombre de la tabla a unir más un punto.
- Por ejemplo, al unir landuse, que tiene campos A y B a lookup_tab, que tiene campos C y D, resultará en una capa o vista de tabla con los siguientes campos: landuse.A, landuse.B, lookup_tab.C y lookup_tab.D.
- Para las clases de entidad de cobertura y tablas INFO, el separador de tabla y nombre de campo es dos puntos (:) en lugar de un punto.
-
Para hacer una unión permanente, considere utilizar la herramienta Campo de unión.Campo Unión Otra forma de hacer que la unión sea permanente es guardar la capa de entidad unida en una nueva clase de entidad o la vista de tabla unida en una nueva tabla. Al guardar los resultados en una nueva clase de entidad o tabla, puede utilizar la configuración de entorno Nombres de campos calificados para controlar si los nombres de campos de salida unidos califican con el nombre de la tabla de la que procede el campo.
-
Indexar los campos de la capa o vista de tabla de entrada y de la Tabla a unir sobre la que se basará la unión puede mejorar el rendimiento. Esto se puede realizar con la herramienta Agregar índice del atributo o haciendo clic con el botón derecho del ratón en la entrada en ArcCatalog y utilizando el cuadro de diálogo para agregar un índice al campo deseado.
Obtenga más información sobre sugerencias de rendimiento para la unión de datos
-
Si los campos de la capa o vista de tabla de entrada se modifican (se les cambia el nombre o se ocultan) con el parámetro Información de campo de las herramientas Crear capa de entidades o Crear vista de tabla, estas modificaciones de campos no se trasladarán a la capa o vista de tabla unida de salida.
-
El nombre de la Tabla a unir no puede empezar con un valor numérico.
Obtenga más información sobre las razones por las cuales la unión de tablas puede fallar
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_layer_or_view |
Capa o vista de tabla a la que se unirá la tabla a unir. | Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View |
in_field |
Campo en la capa o vista de tabla de entrada sobre el que se basará la unión. | Field |
join_table |
Tabla o vista de tabla que se unirá a la capa o vista de tabla de entrada. | Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View |
join_field |
El campo en la tabla a unir que contiene los valores sobre los cuales se basará la unión. | Field |
join_type (Opcional) |
Especifica qué se realizará con los registros en la entrada que coincide con un registro en la tabla a unir.
| Boolean |
Ejemplo de código
La siguiente secuencia de comandos de la ventana de Python demuestra cómo utilizar la función AddJoin en el modo inmediato.
import arcpy from arcpy import env env.workspace = "C:/data" arcpy.MakeFeatureLayer_management ( "Habitat_Analysis.gdb/vegtype", "veg_layer") arcpy.AddJoin_management( "veg_layer", "HOLLAND95", "vegtable.dbf", "HOLLAND95") arcpy.CopyFeatures_management( "veg_layer", "Habitat_Analysis.gdb/vegjoin")
Esta secuencia de comandos independiente muestra la función AddJoin como parte de un flujo de trabajo para unir una tabla a una clase de entidad y después extraer las entidades deseadas.
# Name: AttributeSelection.py # Purpose: Join a table to a featureclass and select the desired attributes # Import system modules import arcpy from arcpy import env try: # Set environment settings env.workspace = "C:/data" env.qualifiedFieldNames = False # Set local variables inFeatures = "Habitat_Analysis.gdb/vegtype" layerName = "veg_layer" joinTable = "vegtable.dbf" joinField = "HOLLAND95" expression = "vegtable.HABITAT = 1" outFeature = "Habitat_Analysis.gdb/vegjoin" # Create a feature layer from the vegtype featureclass arcpy.MakeFeatureLayer_management (inFeatures, layerName) # Join the feature layer to a table arcpy.AddJoin_management(layerName, joinField, joinTable, joinField) # Select desired features from veg_layer arcpy.SelectLayerByAttribute_management(layerName, "NEW_SELECTION", expression) # Copy the layer to a new permanent feature class arcpy.CopyFeatures_management(layerName, outFeature) except Exception, e: # If an error occurred, print line number and error message import traceback, sys tb = sys.exc_info()[2] print "Line %i" % tb.tb_lineno print e.message