Agregar unión (Administración de datos)
Resumen
Une una capa a otra capa o tabla (donde "capa" es una capa de entidad, 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.
-
Si los valores en el Campo de unión de salida no son únicos, sólo se utilizará la primera ocurrencia de cada valor.
-
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.
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.
- En ArcMap, haga clic con el botón derecho del ratón en la capa o vista de tabla de entrada; seleccione Datos > Exportar datos; especifique la clase de entidad, el shapefile, la tabla o la tabla dBASE de salida.
- Si la entrada es una capa de entidad, utilice la herramienta Copiar entidades; si la entrada es una vista de tabla, utilice la herramienta Copiar filas.
-
Esta herramienta no se limita a ArcMap; funciona en capas y vistas de tablas en ArcCatalog y en secuencias de comandos. La herramienta Crear capa de entidades crea una capa a partir de una clase de entidad, y la herramienta Crear vista de tabla crea la vista de una tabla a partir de una tabla de entrada o clase de entidad.
-
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.
-
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.
-
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, si se une "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.
-
Puede guardar los resultados de Añadir unión a una nueva clase de entidad al utilizar la herramienta Copy_Features o Copy_Rows. Al guardar resultados con estas herramientas de copiado, 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.
-
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.
-
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.
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 # Author: ESRI # 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