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.

  • Vous pouvez utiliser 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.

  • Pour gérer les champs dans le jeu de données en sortie, ainsi que le contenu de ces champs, utilisez le paramètre Appariement des champs.

    • Les règles de combinaison disponibles sont : premier, dernier, joindre, somme, moyenne, médiane, mode, minimum, maximum, écart type, et total.
    • Lorsque vous utilisez la règle de combinaison Join (Joindre), vous pouvez spécifier un délimiteur (espace, virgule, point, tiret, etc.). Pour utiliser un espace, vérifiez que le pointeur de la souris se trouve au début de la zone de saisie et appuyez une fois sur la barre d’espacement.
    • Vous pouvez spécifier les positions de début et de fin des champs de texte à l'aide de l'option de format.
    • N’exécutez pas d’écart type sur une entrée unique car les valeurs ne peuvent pas être divisées par zéro. L'écart type n'est pas une option valide pour les entrées uniques.

    En savoir plus sur l'appariement de champs dans les scripts

  • 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.

  • Comme les données des jeux de données en entrée sont écrites dans un jeu de données cible existant qui a 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. La géométrie est mise à jour si le paramètre Mettre à jour la géométrie est activé.

  • Si les références spatiales d’une classe d’entités en entrée et d’une classe d’entités cible ne correspondent pas, l’outil Ajouter projettera les entités de la classe d’entités en entrée dans le système de coordonnées utilisé par la classe d’entités cible.

  • 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. À la place, utilisez le bouton de navigation de la boîte de dialogue de l’outil pour rechercher les chemins complets de chacune des valeurs Jeux de données en entrée.

  • 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.

  • 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 non 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 du jeu de données en entrée doivent correspondre au 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 de chaque jeu 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 du jeu de données en entrée correspondent aux champs du jeu de données cible. 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 explicitement défini dans le paramètre Appariement des champs.
  • Ignorer et avertir si la structure ne correspond pasLes champs de chaque jeu 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)

Contrôle la manière dont les champs attributaires émanant des jeux de données en entrée sont transférés ou appariés au jeu de données cible.

Ce paramètre peut être utilisé uniquement 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).

Étant donné que les jeux de données en entrée sont ajoutés à un jeu de données cible existant comportant des champs prédéfinis, vous ne pouvez ni ajouter, ni retirer, ni modifier le type des champs dans l’appariement des champs. Vous pouvez définir des règles de combinaison pour chaque champ en sortie.

Les règles de combinaison permettent de spécifier la manière dont les valeurs de deux champs en entrée ou plus sont combinées ou fusionnées en une seule valeur en sortie. Les règles de combinaison suivantes permettent de déterminer de quelle manière sont renseignées les valeurs du champ en sortie :

  • Premier : utilisez la première valeur des champs en entrée.
  • Dernier : utilisez la dernière valeur des champs en entrée.
  • Joindre : concaténez (joignez) les valeurs des champs en entrée.
  • Somme : calculez le total des valeurs des champs en entrée.
  • Moyenne : calculez la moyenne des valeurs des champs en entrée.
  • Médiane : calculez la valeur médiane (milieu) des valeurs des champs en entrée.
  • Mode – Utilisez la valeur avec la plus haute fréquence.
  • Min. : utilisez la valeur minimale de toutes les valeurs des champs en entrée.
  • Max. : utilisez la valeur maximale de toutes les valeurs des champs en entrée.
  • Écart type : utilisez la méthode de classification par écart type sur les valeurs de tous les champs en entrée.
  • Total – Recherchez le nombre d'enregistrements inclus dans le calcul.

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’enregistrements correspondant à l'expression, aucun enregistrement de ce jeu de données ne sera ajouté à la 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)

Les champs du jeu de données en entrée sont utilisés pour apparier le jeu de données cible. Si les valeurs de ces champs correspondent, les enregistrements du jeu 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)

Spécifie si la géométrie dans le jeu de données cible est mise à jour selon la géométrie du jeu 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

Sortie obtenue

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

Jeu de données cible mis à jour.

Table View; Raster Layer

arcpy.management.Append(inputs, target, {schema_type}, {field_mapping}, {subtype}, {expression}, {match_fields}, {update_geometry})
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 du jeu de données en entrée doivent correspondre au champs du jeu de données cible pour que des données soient ajoutées.

  • TESTLes champs de chaque jeu 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 du jeu de données en entrée correspondent aux champs du jeu de données cible. 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 explicitement défini dans le paramètre Appariement des champs.
  • TEST_AND_SKIPLes champs de chaque jeu 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)

Contrôle la manière dont les champs attributaires émanant des jeux de données en entrée sont transférés ou appariés au jeu de données cible.

Ce paramètre n’est utilisable que si le paramètre schema_type est défini sur NO_TEST.

Étant donné que les jeux de données en entrée sont ajoutés à un jeu de données cible existant comportant des champs prédéfinis, vous ne pouvez ni ajouter, ni retirer, ni modifier le type des champs dans l’appariement des champs. Vous pouvez définir des règles de combinaison pour chaque champ en sortie.

Les règles de combinaison permettent de spécifier la manière dont les valeurs de deux champs en entrée ou plus sont combinées ou fusionnées en une seule valeur en sortie. Les règles de combinaison suivantes permettent de déterminer de quelle manière sont renseignées les valeurs du champ en sortie :

  • Premier : utilisez la première valeur des champs en entrée.
  • Dernier : utilisez la dernière valeur des champs en entrée.
  • Joindre : concaténez (joignez) les valeurs des champs en entrée.
  • Somme : calculez le total des valeurs des champs en entrée.
  • Moyenne : calculez la moyenne des valeurs des champs en entrée.
  • Médiane : calculez la valeur médiane (milieu) des valeurs des champs en entrée.
  • Mode – Utilisez la valeur avec la plus haute fréquence.
  • Min. : utilisez la valeur minimale de toutes les valeurs des champs en entrée.
  • Max. : utilisez la valeur maximale de toutes les valeurs des champs en entrée.
  • Écart type : utilisez la méthode de classification par écart type sur les valeurs de tous les champs en entrée.
  • Total – Recherchez le nombre d'enregistrements inclus dans le calcul.

Dans Python, vous pouvez utiliser 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’enregistrements correspondant à l'expression, aucun enregistrement de ce jeu de données ne sera ajouté à la 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
[match_fields,...]
(Facultatif)

Les champs du jeu de données en entrée sont utilisés pour apparier le jeu de données cible. Si les valeurs de ces champs correspondent, les enregistrements du jeu de données en entrée mettent à jour les enregistrements correspondants du jeu de données cible.

Value Table
update_geometry
(Facultatif)

Spécifie si la géométrie dans le jeu de données cible est mise à jour selon la géométrie du jeu 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

Sortie obtenue

NomExplicationType de données
output

Jeu de données cible mis à jour.

Table View; Raster Layer

Exemple de code

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

Le script ci-dessous pour la fenêtre Python illustre l’utilisation de 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 Ajouter (fenêtre Python)

Le script de fenêtre Python ci-dessous illustre l’utilisation de 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 thing 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.