Resumen
Busca el lugar dónde las entidades de línea de origen coinciden espacialmente con las de destino y transfiere los atributos especificados de las entidades de origen a las entidades de destino coincidentes.
La transferencia de atributos se utiliza normalmente para copiar los atributos desde las entidades de un dataset a las entidades correspondientes de otro dataset. Por ejemplo, se puede utilizar para transferir los nombres desde entidades de carretera de un dataset previamente conservado y digitalizado a entidades de un nuevo dataset que se han capturado recientemente y son más precisas. Para referirse a los dos datasets se suelen utilizar los términos entidades de origen y entidades de destino. Esta herramienta busca las entidades de línea de origen y destino correspondientes dentro de una distancia de búsqueda especificada y transfiere los atributos especificados de las líneas de origen a las líneas de destino.
Ilustración
Uso
La unión de las extensiones de entrada se utiliza como extensión de procesamiento. Los recuentos de las entidades de origen y destino que participan se notifican en los mensajes de procesamiento.
Se deben especificar uno o más campos en el parámetro Transferir campos. Si un campo de transferencia tiene el mismo nombre que un campo de la tabla de entidad de destino, al campo de transferencia unido se le anexará _1 (o bien _2, _3, y así sucesivamente) para que sea único.
Cuando varias entidades de origen coinciden con una o más entidades de destino, los valores de campo de solo una de las entidades de origen se transfiere a las entidades de destino. Si falta un valor de campo de origen, no se producirá la transferencia de atributos.
El parámetro Distancia de búsqueda se utiliza para buscar candidatos que coinciden. Utilice una distancia que sea lo suficientemente grande para captar la mayoría de cambios entre las entidades correspondientes, pero no demasiado para generar el procesamiento innecesario de un exceso de candidatos y obtener potencialmente coincidencias erróneas.
La Tabla de concordancia de salida es opcional. Esta tabla de concordancia proporciona exhaustiva información de coincidencia de entidades, incluidos los FID de origen y destino, los grupos coincidentes, las relaciones coincidentes y el nivel de confianza de la correspondencia derivada de las condiciones coincidentes de espacio y atributo. Esta información puede servir para comprender las situaciones coincidentes y facilitar la inspección posterior, la postedición y los análisis adicionales. Consulte Acerca de la geocodificación de entidades y la tabla de coincidencias para obtener información detallada.
La precisión de la coincidencia de entidades depende de la calidad de los datos y la complejidad y la similitud de las dos entradas.
Como entrada durante el procesamiento previo, debe minimizar los errores de datos y seleccionar las entidades relevantes. En general, siempre es útil que dentro de un dataset de entrada, las entidades sean topológicamente correctas, tengan una geometría válida y sean de parte simple y no duplicadas; de lo contrario, pueden producirse errores inesperados.
Sintaxis
TransferAttributes_edit (source_features, target_features, transfer_fields, search_distance, {match_fields}, {out_match_table})
Parámetro | Explicación | Tipo de datos |
source_features | Entidades de línea desde las que se transfieren atributos. | Feature Layer |
target_features | Entidades de línea a las que se transfieren atributos. Los campos de transferencia especificados se agregan a las entidades de destino. | Feature Layer |
transfer_fields [field,...] | Lista de campos de origen que se transfieren a entidades de destino. Se debe especificar al menos un campo. | Field |
search_distance | Distancia utilizada para buscar candidatos que coinciden. Se debe especificar una distancia, que debe ser mayor que cero. Puede elegir la unidad que prefiera; el valor predeterminado es la unidad de la entidad. | Linear unit |
match_fields [[source_field, target_field],...] (Opcional) | Listas de campos de entidades de origen y de destino. Si se especifican, cada pareja de campos se comprueba para candidatos coincidentes con el fin de ayudar a determinar la concordancia adecuada. | Value Table |
out_match_table (Opcional) | Tabla de salida que contiene información completa de coincidencia de entidades. | Table |
Ejemplo de código
Ejemplo 1 de TransferAttributes (ventana de Python)
La siguiente secuencia de comandos de la ventana de Python demuestra cómo utilizar la función TransferAttributes en el modo inmediato.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.TransferAttributes_edit("source_Roads.shp",
"target_Roads.shp", "RoadName, PaveType"
"25 Feet")
Ejemplo 2 de TransferAttributes (secuencia de comandos de Python independiente)
La siguiente secuencia de comandos independiente es un ejemplo imple de cómo aplicar la función TransferAttributes en un entorno de secuencias de comandos.
# Name: TransferAttributes_example_script2.py
# Description: Performs attribute transfer from newly updated roads (source) to existing
# base roads (target). Where the source and target features are matched in
# many-to-one or many-to-many (m:n) relationships, attributes are transferred
# from only one of the m source features to the n target features. This script
# includes a post-process that flags resulting target features with the m:n
# match relationships. You can inspect the flagged features and retrieve the
# attributes from the desired source features if necessary.
# Author: Esri
# -----------------------------------------------------------------------
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.overwriteOutput = True
env.workspace = r"D:\conflationTools\ScriptExamples\data.gdb"
# Set local variables
sourceFeatures = "updateRoads"
targetFeatures = "baseRoads"
transfer_fields = "RD_NAME; RD_ID"
search_distance = "300 Feet"
match_fields = "RD_NAME FULLNAME"
outMatchTable = "ta_mtbl"
# Make a copy of the targetFeatures for attribute transfer
targetCopy = targetFeatures + "_Copy"
arcpy.CopyFeatures_management(targetFeatures, targetCopy)
# Performs attribute transfer
arcpy.TransferAttributes_edit(sourceFeatures, targetCopy, transfer_fields, search_distance, match_fields, outMatchTable)
# ====================================================================================
# Note 1: The result of TransferAttributes may contain errors; see tool reference.
# Additional analysis steps may be necessary to check the results; these steps
# are not included in this script.
#
# The following process identifies m:n matches between source and target features
# and flag features in targetCopy for inspection.
# ====================================================================================
# Add a field srcM_inMN to the match table to store the m count of source features in m:n relationship
field_srcM_inMN = "srcM_inMN"
arcpy.AddField_management(outMatchTable, field_srcM_inMN)
codeblock = """
def getM(fld):
x = fld.split(\":\")[0]
if x.isnumeric():
if int(x) > 0:
return int(x)
return -1
"""
# Calculate values for srcM_inMN
arcpy.CalculateField_management(outMatchTable, field_srcM_inMN, "getM(!FM_MN!)", "PYTHON_9.3", codeblock)
# Make a table view of the match table, selecting srcM_inMN values greater than 1
# (excluding 1:n relationships which don't need to be inspected)
arcpy.MakeTableView_management(outMatchTable, "mtable_view", field_srcM_inMN + "> 1")
# For the selected records, transfer srcM_inMN and SRC_FID fields and values to the targetCopy
arcpy.JoinField_management(targetCopy, "OBJECTID", "mtable_view", "TGT_FID", field_srcM_inMN + "; SRC_FID")
# ====================================================================================
# Note 2: Now the fields srcM_inMN and SRC_FID are in the copy of the target features.
# The srcM_inMN values are the counts of matched source features; the SRC_FID
# values indicate the source feature IDs from which the transferred attributes
# come from.
#
# At this point you can interactively review the transferred attributes for the
# flagged features. If you want to replace any of them by those from a different
# source feature, you would need to make the edits as needed.
# ====================================================================================
Entornos
Información sobre licencias
- ArcGIS for Desktop Basic: No
- ArcGIS for Desktop Standard: No
- ArcGIS for Desktop Advanced: Sí