Transférer des attributs (Mise à jour)

Niveau de licence :BasicStandardAdvanced

Récapitulatif

Détecte l'endroit où les entités linéaires source correspondent spatialement aux entités linéaires cible et transfère les attributs spécifiés des entités source vers les entités cible appariées.

Le transfert d'attributs est généralement utilisé pour copier des attributs à partir d'entités contenues dans un jeu de données vers des entités correspondantes dans un autre jeu de données. Vous pouvez, par exemple, l'utiliser pour transférer les noms d'entités routes d'une carte numérisée et d'un jeu de données géré vers des entités au sein d'un nouveau jeu de données qui ont été collectées récemment et qui sont plus précises. Les deux jeux de données sont généralement appelés entités source et entités cible. Cet outil détecte les entités source et les entités linéaires cible correspondantes au sein de la distance de recherche spécifiée et transfère les attributs spécifiés des lignes source vers les lignes cible.

Illustration

Transférer des attributs

Utilisation

Syntaxe

TransferAttributes_edit (source_features, target_features, transfer_fields, search_distance, {match_fields}, {out_match_table})
ParamètreExplicationType de données
source_features

Entités linéaires à partir desquelles transférer des attributs.

Feature Layer
target_features

Entités linéaires vers lesquelles transférer des attributs. Les champs de transfert spécifiés sont ajoutées aux entités cible.

Feature Layer
transfer_fields
[field,...]

Liste des champs source à transférer vers des entités cible. Vous devez spécifier au moins un champ.

Field
search_distance

Distance utilisée pour rechercher des candidats d'appariement. La distance doit être indiquée et elle doit être supérieure à zéro. Vous pouvez choisir une unité préférée. Par défaut, l'unité de l'entité est spécifiée.

Linear unit
match_fields
[[source_field, target_field],...]
(Facultatif)

Liste des champs des entités source et cible. Si elle est renseignée, des candidats à l'appariement sont recherchés dans chaque paire de champs, afin de déterminer la correspondance adéquate.

Value Table
out_match_table
(Facultatif)

Table en sortie contenant des informations d'appariement d'entités complètes.

Table

Exemple de code

Exemple 1 d'utilisation de l'outil Transférer des attributs (fenêtre Python)

Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction Transférer des attributs en mode immédiat.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.TransferAttributes_edit("source_Roads.shp",
                              "target_Roads.shp", "RoadName, PaveType"
                              "25 Feet")
Exemple 2 d'utilisation de l'outil Transférer des attributs (script Python autonome)

Le script autonome suivant dessous est un exemple d'application de la fonction Transférer des attributs dans un environnement de scripts.

# 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.
# ====================================================================================

Environnements

Thèmes connexes

Informations de licence

ArcGIS for Desktop Basic: Annuler
ArcGIS for Desktop Standard: Annuler
ArcGIS for Desktop Advanced: Oui
6/5/2014