Ajouter (Gestion des données)

Synthèse

Ajoute plusieurs jeux de données en entrée à un jeu de données cible existant, ou le met à jour le cas échéant. Les jeux de données en entrée peuvent être des classes d’entités, des tables, des shapefiles, des rasters, des classes d’entités annotations ou cotations.

Pour combiner des jeux de données en entrée dans un nouveau jeu de données en sortie, utilisez l’outil Combiner.

Illustration

Illustration de l’outil Ajouter

Utilisation

  • Utilisez cet outil pour ajouter de nouvelles entités ou d’autres données de plusieurs jeux de données dans un jeu de données existant. Cet outil permet d’ajouter des classes d’entités ponctuelles, linéaires ou surfaciques, des tables, des rasters, des classes d’entités annotations ou des classes d’entités cotation à un jeu de données existant du même type. Par exemple, plusieurs tables peuvent être ajoutées à une table existante, ou plusieurs rasters peuvent être ajoutés à un jeu de données raster existant, mais une classe d'entités lignes ne peut pas être ajoutée à une classe d'entités points.

  • Utilisez le paramètre Appariement des champs pour contrôler la façon dont les informations attributaires des champs du jeu de données en entrée sont transférées dans le jeu de données cible. Le paramètre Appariement des champs peut être utilisé uniquement si l’option Utiliser l’appariement des champs pour réconcilier les différences de structures est sélectionnée pour le paramètre Type de structure.

  • Utilisez le paramètre Field Map (Appariement des champs) pour apparier ou faire correspondre les champs des jeux de données en entrée aux champs du jeu de données cible.

    • Utilisez une action pour identifier la manière dont les valeurs d’un ou de plusieurs champs du jeu de données en entrée sont appariés à un seul champ du jeu de données cible.
    • Les actions disponibles sont First (Premier), Last (Dernier), Concatenate (Concaténer), Sum (Somme), Mean (Moyenne), Median (Médiane), Mode, Minimum, Maximum, Standard Deviation (Écart type) et Count (Total).
    • Lorsque vous utilisez l’action Concatenate (Concaténer), vous pouvez spécifier un délimiteur, comme une virgule ou d’autres caractères. Cliquez au début de la zone de texte Delimiter (Délimiteur) pour ajouter les caractères de délimitation.
    • L’option Standard Deviation (Écart type) n’est pas valide pour une seule valeur en entrée.
    • L’option Export (Exporter) Exporter permet d’enregistrer un appariement des champs sous forme de fichier .fieldmap.
    • L’option Load (Charger) Import permet de charger un fichier .fieldmap. La couche d’entités ou le jeu de données spécifié dans le fichier doit correspondre à celui utilisé dans l’outil. Sinon, le paramètre Field Map (Appariement des champs) est réinitialisé.
    • Utilisez le bouton Slice Text (Texte de tranche) Couper sur les champs de la source du texte pour sélectionner les caractères d’une valeur en entrée à extraire dans le champ cible. Pour accéder au bouton Slice Text (Texte de tranche), survolez un champ de texte dans la liste des champs en entrée, puis spécifiez les positions des caractères de début et de fin.
    • Il est également possible d’apparier des champs dans un script Python.

  • Dans Python, si vous utilisez l’objet FieldMappings pour le paramètre field_mapping, ajoutez d’abord les champs du jeu de données cible. Les champs en entrée sont appariés à la structure des champs cibles. Lorsque les champs en entrée sont ajoutés en premier, l’appariement des champs peut être réinitialisé ou avoir un comportement inattendu.

    fieldmappings = arcpy.FieldMappings() 
    fieldmappings.addTable(target) 
    fieldmappings.addTable(input)
  • Cet outil ne planarise pas les entités lorsqu'elles sont ajoutées au jeu de données cible. Toutes les entités de la classe d'entités en entrée et de la classe d'entités cible restent intactes après l'ajout, même en cas de superposition des entités. Pour combiner, ou planariser, les géométries d’entités, utilisez l’outil Agréger.

  • Si le paramètre Type d’appariement de champs est défini sur Les champs en entrée doivent correspondre aux champs cible, la structure des jeux de données en entrée doit correspondre à celle du jeu de données pour ajouter des entités.

    Si le paramètre Type d’appariement de champs est défini sur Utiliser l’appariement des champs pour réconcilier les différences de champs, la structure des jeux de données en entrée n’a pas besoin de correspondre. Les champs du jeu de données en entrée qui ne correspondent pas aux champs du jeu de données cible ne sont pas appariés au jeu de données cible à moins que l’appariement soit défini dans le paramètre Appariement des champs. Les champs du jeu de données cible qui ne sont pas appariés aux champs des jeux de données en entrée contiendront des valeurs nulles.

    Si le paramètre Type d’appariement de champs est défini sur Ignorer et avertir si la structure ne correspond pas, la structure des jeux de données en entrée doit correspondre à celle du jeu de données pour que les entités soient ajoutées. Si un jeu de données en entrée contient des champs qui ne correspondent pas aux champs du jeu de données cible, ce jeu de données en entrée est alors omis.

  • Le nombre de lignes ajoutées s’affiche dans les messages de l’outil et est renvoyé par le paramètre Nombre de lignes ajoutées.

  • Les données des jeux de données en entrée étant écrites dans un jeu de données cible existant qui possède une structure prédéfinie, vous ne pouvez pas utiliser le paramètre Appariement des champs pour ajouter ou supprimer des champs dans le jeu de données cible.

  • Vous pouvez utiliser cet outil pour insérer de nouveaux enregistrements et mettre à jour les enregistrements existants dans un jeu de données cible au cours d’une même opération (qui équivaut à une opération de base de données UPSERT). Utilisez le paramètre Champs d’appariement pour la mise à jour pour spécifier les champs du jeu de données en entrée à apparier aux champs du jeu de données cible. Pour les enregistrements avec des valeurs de champs d’appariement, les champs dans l’enregistrement cible sont mis à jour selon les valeurs des champs portant le même nom dans l’enregistrement en entrée. Le nombre de lignes mises à jour et les champs appariés s’affichent dans les messages de l’outil et sont renvoyés par le paramètre Nombre de lignes mises à jour. La géométrie est mise à jour si le paramètre Mettre à jour la géométrie est activé.

  • Les jeux de données en entrée et cible comportent différentes références spatiales. Si c’est le cas, l’outil projette les entités en entrée sur le système de coordonnées de la cible. Pour de meilleurs résultats, spécifiez une transformation géographique appropriée à l’aide de l’environnement Transformations géographiques. Si le jeu de données cible est une couche de carte, l’outil peut appliquer une transformation par défaut. Dans Python, il n’existe pas de transformation par défaut.

  • Cet outil n’effectue pas d’ajustement de tronçons ; aucun ajustement de la géométrie des entités ne sera effectuée.

  • Des couches peuvent être utilisées en tant que valeurs du paramètre Input Datasets (Jeux de données en entrée). Si une couche a une sélection, seuls les enregistrements sélectionnés (entités ou lignes de table) sont utilisés.

  • Vous ne pouvez pas utiliser plusieurs couches en entrée portant le même nom avec cet outil. Au lieu de cela, utilisez le bouton de navigation de la fenêtre Géotraitement pour accéder aux chemins complets de chacune des valeurs Jeux de données en entrée.

  • Si le jeu de données en entrée et le jeu de données cible ont le même nom, les performances de l’outil s’en trouvent diminuées.

  • Pour utiliser le paramètre Sous-type, un champ de sous-type doit être défini et des codes de sous-type doivent être affectés pour le jeu de données cible. Dans le paramètre Sous-type, indiquez une description de sous-type pour affecter ce sous-type à toutes les nouvelles données ajoutées au jeu de données cible.

  • Utilisez le paramètre Appliquer des domaines pour appliquer des domaines attributaires aux champs du jeu de données cible. Lorsque ce paramètre est activé, l’outil respecte les valeurs de domaine définies dans le jeu de données cible. Les données des champs d’entrée qui ne sont pas conformes à ces valeurs de domaine ne sont pas ajoutées.

  • Pour assurer des performances optimales, cet outil peut être utilisé directement sur le Data Store, le serveur ou la base de données principaux pour des couches d’entités Web. Pour les services d’entités qui font référence à une géodatabase, cet outil peut être utilisé avec une connexion à une base de données pour effectuer les opérations de chargement de données de grande ampleur directement dans la base de données sous-jacente. Pour les services hébergés sur ArcGIS Enterprise, vous pouvez utiliser l’opération append à partir de la page des éléments de couche d’entités ou viaArcGIS REST API.

    Pour bénéficier de performances optimales avec les services hébergés sur ArcGIS Online, les administrateurs et les propriétaires de services peuvent utiliser cet outil avec ArcGIS REST API lorsque la propriété supportAppend a la valeur true. Les fonctionnalités d’ajout de services d’entités doivent être activées pour que les utilisateurs qui ne sont pas administrateurs puissent utiliser l’outil Ajouter avec ArcGIS REST API.

Paramètres

ÉtiquetteExplicationType de données
Jeux de données en entrée

Les jeux de données en entrée dont les données seront ajoutées au jeu de données cible. Les jeux de données en entrée peuvent être des classes d'entités de type point, ligne ou surfaciques, des tables, des rasters, des classes d'entités annotations ou des classes d'entités cotation.

Les tables et classes d'entités peuvent être combinées. Lorsqu’une classe d’entités est ajoutée à une table, les attributs sont transférés. En revanche, les entités sont supprimées. Si une table est ajoutée dans une classe d’entités, les lignes de la table en entrée auront une géométrie nulle.

Table View; Raster Layer
Jeu de données cible

Jeu de données existant dans lequel les données des jeux de données en entrée seront ajoutées.

Table View; Raster Layer
Type d’appariement de champs
(Facultatif)

Indique si les champs des jeux de données en entrée doivent correspondre aux champs du jeu de données cible pour que des données soient ajoutées.

  • Les champs en entrée doivent correspondre aux champs cibleLes champs des jeux de données en entrée doivent correspondre aux champs du jeu de données cible. Une erreur est renvoyée si les champs ne correspondent pas.
  • Utiliser l’appariement des champs pour réconcilier les différences de champsIl n’est pas nécessaire que les champs des jeux de données en entrée correspondent aux champs du jeu de données cible. Les champs des jeux de données en entrée qui ne correspondent pas aux champs du jeu de données cible ne sont pas appariés au jeu de données cible à moins que l’appariement soit explicitement défini dans le paramètre Appariement des champs.
  • Ignorer et avertir si la structure ne correspond pasLes champs des jeux de données en entrée doivent correspondre aux champs du jeu de données cible. Si l’un des jeux de données en entrée contient des champs qui ne correspondent pas aux champs du jeu de données cible, ce jeu de données en entrée sera omis et un message d’avertissement apparaît.
String
Appariement des champs
(Facultatif)

Le paramètre d’appariement des champs contrôle le transfert ou l’appariement des champs des jeux de données en entrée vers le jeu de données cible. Il ne peut être utilisé que si le paramètre Field Matching Type (Type d’appariement de champs) est défini sur Use the field map to reconcile field differences (Utiliser l’appariement des champs pour réconcilier les différences de champs).

Les jeux de données en entrée étant ajoutés à un jeu de données cible existant qui possède des champs prédéfinis, vous ne pouvez pas ajouter, supprimer, réorganiser ou modifier les propriétés des champs dans l’appariement des champs.

L’appariement des champs peut servir à combiner les valeurs d’un ou de plusieurs champs en entrée en un seul champ en sortie.

Field Mappings
Sous-type
(Facultatif)

Description de sous-type à affecter à toutes les nouvelles données ajoutées au jeu de données cible.

String
Expression
(Facultatif)

Expression SQL permettant de sélectionner un sous-ensemble des enregistrements des jeux de données en entrée. Si plusieurs jeux de données en entrée sont spécifiés, ils seront tous évalués à l’aide de cette expression. Si un jeu de données en entrée ne contient pas d’enregistrement correspondant à l’expression, aucun enregistrement de ce jeu de données n’est ajouté au jeu de données cible.

Pour plus d’informations sur la syntaxe SQL reportez-vous à la rubrique Référence SQL pour les expressions de requête utilisées dans ArcGIS.

SQL Expression
Champs d’appariement pour la mise à jour
(Facultatif)

Champs des jeux de données en entrée à utiliser pour l’appariement au jeu de données cible. Si les valeurs de ces champs correspondent, les enregistrements des jeux de données en entrée mettent à jour les enregistrements correspondants du jeu de données cible.

Value Table
Mettre à jour la géométrie
(Facultatif)

Indique si la géométrie dans le jeu de données cible est mise à jour selon la géométrie des jeux de données en entrée lorsque les valeurs de champs du paramètre Champs d’appariement pour la mise à jour correspondent.

  • Activé - La géométrie dans le jeu de données cible est mise à jour si les valeurs de champs du paramètre Champs d’appariement pour la mise à jour correspondent.
  • Désactivé - La géométrie n’est pas mise à jour. Il s’agit de l’option par défaut.
Boolean
Appliquer des domaines
(Facultatif)

Indique si les règles de domaine de champs sont appliquées.

  • Activée : les règles de domaine de champ sont appliquées. Si un champ ne peut pas être mis à jour, sa valeur reste inchangée et les messages de l’outil incluent un message d’avertissement.
  • Désactivée : les règles de domaine de champ ne sont pas appliquées. Il s'agit du paramètre par défaut.
Boolean

Sortie obtenue

ÉtiquetteExplicationType de données
Jeu de données cible mis à jour

Jeu de données cible mis à jour.

Table View; Raster Layer
Nombre de lignes ajoutées

Nombre de lignes ajoutées au jeu de données cible.

Long
Nombre de lignes mises à jour

Nombre de lignes mises à jour dans le jeu de données cible.

Long

arcpy.management.Append(inputs, target, {schema_type}, {field_mapping}, {subtype}, {expression}, {match_fields}, {update_geometry}, {enforce_domains})
NomExplicationType de données
inputs
[inputs,...]

Les jeux de données en entrée dont les données seront ajoutées au jeu de données cible. Les jeux de données en entrée peuvent être des classes d'entités de type point, ligne ou surfaciques, des tables, des rasters, des classes d'entités annotations ou des classes d'entités cotation.

Les tables et classes d'entités peuvent être combinées. Lorsqu’une classe d’entités est ajoutée à une table, les attributs sont transférés. En revanche, les entités sont supprimées. Si une table est ajoutée dans une classe d’entités, les lignes de la table en entrée auront une géométrie nulle.

Table View; Raster Layer
target

Jeu de données existant dans lequel les données des jeux de données en entrée seront ajoutées.

Table View; Raster Layer
schema_type
(Facultatif)

Indique si les champs des jeux de données en entrée doivent correspondre aux champs du jeu de données cible pour que des données soient ajoutées.

  • TESTLes champs des jeux de données en entrée doivent correspondre aux champs du jeu de données cible. Une erreur est renvoyée si les champs ne correspondent pas.
  • NO_TESTIl n’est pas nécessaire que les champs des jeux de données en entrée correspondent aux champs du jeu de données cible. Les champs des jeux de données en entrée qui ne correspondent pas aux champs du jeu de données cible ne sont pas appariés au jeu de données cible à moins que l’appariement soit explicitement défini dans le paramètre Appariement des champs.
  • TEST_AND_SKIPLes champs des jeux de données en entrée doivent correspondre aux champs du jeu de données cible. Si l’un des jeux de données en entrée contient des champs qui ne correspondent pas aux champs du jeu de données cible, ce jeu de données en entrée sera omis et un message d’avertissement apparaît.
String
field_mapping
(Facultatif)

Le paramètre d’appariement des champs contrôle le transfert ou l’appariement des champs des jeux de données en entrée vers le jeu de données cible. Il ne peut être utilisé que si le paramètre schema_type est défini sur NO_TEST.

Les jeux de données en entrée étant ajoutés à un jeu de données cible existant qui possède des champs prédéfinis, vous ne pouvez pas ajouter, supprimer, réorganiser ou modifier les propriétés des champs dans l’appariement des champs.

L’appariement des champs peut servir à combiner les valeurs d’un ou de plusieurs champs en entrée en un seul champ en sortie.

Dans Python, utilisez la classe FieldMappings pour définir ce paramètre.

Field Mappings
subtype
(Facultatif)

Description de sous-type à affecter à toutes les nouvelles données ajoutées au jeu de données cible.

String
expression
(Facultatif)

Expression SQL permettant de sélectionner un sous-ensemble des enregistrements des jeux de données en entrée. Si plusieurs jeux de données en entrée sont spécifiés, ils seront tous évalués à l’aide de cette expression. Si un jeu de données en entrée ne contient pas d’enregistrement correspondant à l’expression, aucun enregistrement de ce jeu de données n’est ajouté au jeu de données cible.

Pour plus d’informations sur la syntaxe SQL reportez-vous à la rubrique Référence SQL pour les expressions de requête utilisées dans ArcGIS.

SQL Expression
match_fields
[[target_field, input_field],...]
(Facultatif)

Champs des jeux de données en entrée à utiliser pour l’appariement au jeu de données cible. Si les valeurs de ces champs correspondent, les enregistrements des jeux de données en entrée mettent à jour les enregistrements correspondants du jeu de données cible.

Value Table
update_geometry
(Facultatif)

Indique si la géométrie dans le jeu de données cible est mise à jour selon la géométrie des jeux de données en entrée lorsque les valeurs de champs du paramètre match_fields correspondent.

  • UPDATE_GEOMETRYLa géométrie dans le jeu de données cible est mise à jour si les valeurs de champs du paramètre match_fields correspondent.
  • NOT_UPDATE_GEOMETRYLa géométrie n’est pas mise à jour. Il s’agit de l’option par défaut.
Boolean
enforce_domains
(Facultatif)

Indique si les règles de domaine de champs sont appliquées.

  • ENFORCE_DOMAINSLes règles de domaine de champ sont appliquées.
  • NO_ENFORCE_DOMAINSLes règles de domaine de champ ne sont pas appliquées. Il s’agit de l’option par défaut.
Boolean

Sortie obtenue

NomExplicationType de données
output

Jeu de données cible mis à jour.

Table View; Raster Layer
appended_row_count

Nombre de lignes ajoutées au jeu de données cible.

Long
updated_row_count

Nombre de lignes mises à jour dans le jeu de données cible.

Long

Exemple de code

Exemple 1 d’utilisation de l’outil Append (fenêtre Python)

Le script ci-dessous pour la fenêtre Python montre comment utiliser la fonction Append en mode immédiat.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.management.Append(["north.shp", "south.shp", "east.shp", "west.shp"], 
                        "wholecity.shp", "TEST")
Exemple 2 d’utilisation de l’outil Append (fenêtre Python)

Le script ci-dessous pour la fenêtre Python montre comment utiliser la fonction Append avec les paramètres match_fields et update_geometry en mode immédiat.

import arcpy
arcpy.env.workspace = "C:/data/zoning.gdb"
arcpy.management.Append("Zoning_update_2040", "Zoning_2020", "TEST", 
                        match_fields=[["ZONEID", "ZONEID"]], update_geometry="UPDATE_GEOMETRY")
Exemple 3 d’utilisation de l’outil Ajouter (script autonome)

Le script suivant montre comment utiliser la fonction Append.

# Name: Append.py
# Description: Use the Append tool to combine several polygon feature classes

# Import system modules 
import arcpy
import os

# Set environment settings
arcpy.env.workspace = "C:/data/towns.gdb"

# Set local variables
outLocation = "C:/data/output.gdb"
outName = "MA_towns.shp"
schemaType = "NO_TEST"
fieldMappings = ""
subtype = ""

# Process: Append to an existing "amherst" polygon feature class
target = os.path.join(outLocation, "amherst")

# All polygon FCs in the workspace are MA town FCs, you want to append these
# to the target FC. The list will resemble ["amherst", "hadley", "pelham",
# "coldspring"]

fcList = arcpy.ListFeatureClasses("", "POLYGON")

# Create FieldMappings object to manage merge output fields
fieldMappings = arcpy.FieldMappings()

# Add the target table to the field mappings class to set the schema
fieldMappings.addTable(target)

# Add input fields for the town name to TOWNNAME field that matches the 
# target dataset since each input dataset has a different field name for 
# this info
fldMap = arcpy.FieldMap()
fldMap.addInputField("amherst","TOWNNAME")
fldMap.addInputField("hadley","NAME")
fldMap.addInputField("pelham","TOWN_NAME")
fldMap.addInputField("coldspring","TOWN")

# Set name of new output field "TOWNNAME"
townName = fldMap.outputField
townName.name, townName.aliasName, townName.type = "TOWNNAME", "TOWNNAME", "TEXT"
fldMap.outputField = townName

# Add output field to field mappings object
fieldMappings.addFieldMap(fldMap)

# Do the same for the POPULATION field
fldMap = arcpy.FieldMap()
fldMap.addInputField("amherst","POPULATION")
fldMap.addInputField("hadley","POP")
fldMap.addInputField("pelham","POP_2010")
fldMap.addInputField("coldspring","POP")

# Set name of new output field "POPULATION"
pop = fldMap.outputField
pop.name, pop.aliasName, pop.type = "POPULATION", "POPULATION", "LONG"
fldMap.outputField = pop

# Add output field to field mappings object
fieldMappings.addFieldMap(fldMap)

# Process: Append the feature classes to the target feature class
arcpy.management.Append(fcList, os.path.join(outLocation, "amherst"), schemaType, 
                        fieldMappings, subtype)

Environnements

Cas particuliers

Conserver les ID globaux

Pour l'outil Ajouter, cet environnement s'applique uniquement aux données de géodatabase d'entreprise et fonctionne uniquement sur les données dont le champ ID global comporte un index unique. Si le champ ID global ne possède pas d'index unique, l'outil risque d'échouer. Pour ajouter un index unique dans un champ ID global, vous pouvez utiliser l’outil Ajouter un index attributaire.

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes