Ajouter (Gestion des données)

Synthèse

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

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 à un jeu de données existant. Cet outil ajoute des classes d’entités ponctuelles, linéairees 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 Field Map (Appariement des champs) pour contrôler la manière dont les informations attributaires des champs des jeux de données en entrée sont transférées vers le jeu de données cible. Le paramètre Field Map (Appariement des champs) peut être utilisé uniquement si l’option Use the Field Map to reconcile schema differences (Utiliser l’appariement des champs pour réconcilier les différences de structures) est spécifiée pour le paramètre Schema Type (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.
    • Utilisez le bouton Slice Text (Texte de tranche) sur les champs de la source du texte pour préciser les caractères d’une valeur en entrée à extraire vers 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 à l’aide de scripts Python.

  • 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é, utilisez l’outil Union.

  • Si le paramètre Field Matching Type (Type d’appariement de champs) est défini sur Input fields must match target fields (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 cible auquel les entités sont ajoutées.

    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), il n’est pas nécessaire que les structures correspondent. 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 sauf si l’appariement est défini dans le paramètre Field Map (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 contiennent des valeurs nulles.

    Si le paramètre Field Matching Type (Type d’appariement de champs) est défini sur Skip and warn if schema does not match (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 cible 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 omis.

  • Puisque les données des jeux de données en entrée sont écrites dans un jeu de données cible existant dotée d’une structure prédéfinie, vous ne pouvez pas utiliser le paramètre Field Map (Appariement des champs) pour ajouter des champs au jeu de données cible ou pour en retirer.

  • Vous pouvez utiliser cet outil pour insérer de nouveaux enregistrements et mettre à jour des enregistrements existants dans un jeu de données cible lors d’une même opération (qui équivaut à une opération de base de données UPSERT). Utilisez le paramètre Matching Fields for Update (Appariement de champs pour la mise à jour) afin de spécifier les champs du jeu de données en entrée qu’il convient d’apparier aux champs du jeu de données cible. Dans le cas des enregistrements qui comportent des valeurs de champ correspondantes, les champs de l’enregistrement cible sont mis à jour avec les valeurs des champs dotés du même nom dans l’enregistrement en entrée. La géométrie est mise à jour si le paramètre Update Geometry (Mettre à jour la géométrie) est coché.

  • Les jeux de données cible et en entrée peuvent inclure des références spatiales différentes. Si tel est le cas, l’outil projette les entités en entrée dans le système de coordonnées de la cible. Dans un souci d’optimisation des 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, il se peut que l’outil applique une transformation par défaut. Dans Python, il n’existe aucune transformation par défaut.

  • Cet outil ne procède pas à l’appariement des arêtes ; aucun ajustement n’est effectué sur la géométrie des entités.

  • Il est possible d’utiliser des couches de carte 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.

  • Il n’est pas possible d’utiliser plusieurs couches en entrée portant le même nom dans cet outil. Utilisez à la place le bouton de navigation de la fenêtre Geoprocessing (Géotraitement) pour accéder aux chemins complets de chacune des valeurs de Input Datasets (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 des performances optimales, cet outil peut être utilisé directement sur la base de données, le serveur ou le data store principal des couches d’entités Web. Dans le cas de services d’entités qui référencent une géodatabase, cet outil peut être utilisé avec une connexion à une base de données pour procéder à des opérations de chargement de données volumineuses directement sur la base de données sous-jacente. Dans le cas de services hébergés sur ArcGIS Enterprise, vous pouvez utiliser l’opération append à partir de la page des éléments de la couche d’entités ou depuis ArcGIS REST API.

    Dans un souci d’optimisation des performances avec des services hébergés sur ArcGIS Online, les administrateurs et les propriétaires de service peuvent utiliser cet outil avec ArcGIS REST API lorsque la propriété supportAppend est définie sur true. Les fonctionnalités d’ajout des 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

Jeux de données en entrée dont les données seront ajoutées dans le 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 les classes d’entités peuvent être combinées. Si une classe d’entités est ajoutée à une table, les attributs sont transférés ; les entités sont toutefois supprimées. Si une table est ajoutée à une classe d’entités, les lignes de la table en entrée présentent une géométrie nulle.

Table View; Raster Layer
Jeu de données cible

Jeu de données existant auquel les données des jeux de données en entrée sont 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 les 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 sauf si l’appariement est explicitement défini dans le paramètre Field Map (Appariement des champs).
  • Skip and warn if schema does not match (Ignorer et avertir si la structure ne correspond pas)Les 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 au jeu de données cible, ce jeu de données en entrée est omis avec un message d’avertissement.
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).

Puisque les jeux de données en entrée sont ajoutés à un jeu de données existant qui possède des champs prédéfinis, vous ne pouvez pas ajouter, supprimer ou modifier le type des champs dans l’appariement des champs.

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

Field Mappings
Sous-type
(Facultatif)

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

String
Expression
(Facultatif)

Expression SQL employée pour sélectionner un sous-ensemble d’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 aucun enregistrement ne correspond à l’expression pour un jeu de données en entrée, 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
Matching Fields for Update (Champs d’appariement pour la mise à jour)
(Facultatif)

Champs des jeux de données en entrée utilisés pour la correspondance avec le 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 (Mettre à jour la géométrie)
(Facultatif)

Indique si la géométrie du jeu de données cible est mise à jour avec la géométrie des jeux de données en entrée si les valeurs de champ du paramètre Matching Fields for Update (Appariement de champs pour la mise à jour) correspondent.

  • Coché : la géométrie du jeu de données cible est mise à jour si les valeurs de champ du paramètre Matching Fields for Update (Appariement de champs pour la mise à jour) correspondent.
  • Décoché : 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,...]

Jeux de données en entrée dont les données seront ajoutées dans le 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 les classes d’entités peuvent être combinées. Si une classe d’entités est ajoutée à une table, les attributs sont transférés ; les entités sont toutefois supprimées. Si une table est ajoutée à une classe d’entités, les lignes de la table en entrée présentent une géométrie nulle.

Table View; Raster Layer
target

Jeu de données existant auquel les données des jeux de données en entrée sont 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 les 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 sauf si l’appariement est explicitement défini dans le paramètre Field Map (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 au jeu de données cible, ce jeu de données en entrée est omis avec un message d’avertissement.
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.

Puisque les jeux de données en entrée sont ajoutés à un jeu de données existant qui possède des champs prédéfinis, vous ne pouvez pas ajouter, supprimer ou modifier le type des champs dans l’appariement des champs.

L’appariement des champs peut servir à combiner les valeurs de deux champs en entrée ou plus 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 affectée à toutes les nouvelles données ajoutées au jeu de données cible.

String
expression
(Facultatif)

Expression SQL employée pour sélectionner un sous-ensemble d’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 aucun enregistrement ne correspond à l’expression pour un jeu de données en entrée, 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 utilisés pour la correspondance avec le 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 du jeu de données cible est mise à jour avec la géométrie des jeux de données en entrée si les valeurs de champ du paramètre match_fields correspondent.

  • UPDATE_GEOMETRYLa géométrie du jeu de données cible est mise à jour si les valeurs de champ 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 Ajouter (fenêtre Python)

Le script de fenêtre Python ci-dessous 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 illustre l’utilisation de 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 Global ID (ID global), vous pouvez utiliser l’outil Ajouter un index attributaire.