Résumé
Ajoute plusieurs jeux de données en entrée à un jeu de données cible existant. Les jeux de données en entrée peuvent être des classes d’entités, des tables, des shapefiles, des rasters, des annotations ou des classes d’entités de 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
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 de cotations dans 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.
Le paramètre Field Map (Appariement des champs) de l’outil Append (Ajouter) peut servir à contrôler comment 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 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 sélectionnée pour le paramètre Schema Type (Type de structure).
Tous les champs du jeu de données en sortie et leur contenu peuvent être gérés à l'aide du contrôle Appariement des champs.
- Pour modifier l’ordre des champs, sélectionnez un nom de champ et faites-le glisser jusqu’à l’emplacement souhaité.
- Le type de données par défaut d’un champ en sortie est identique au type de données du premier champ en entrée (du même nom) qu’il rencontre. Vous pouvez à tout moment changer manuellement le type de données pour tout autre type de données valide.
- Les règles de combinaison suivantes sont disponibles : 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 votre 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.
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 Agréger.
Si l’option Input schema must match target schema (La structure en entrée doit correspondre à la structure cible) est sélectionnée pour le paramètre Schema Type (Type de structure) (schema_type = "TEST" dans Python), la structure (définitions de champ) 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 l’option Use the Field Map to reconcile schema differences (Utiliser l’appariement des champs pour réconcilier les différences de structures) est sélectionnée pour Schema Type (Type de schéma) (schema_type = "NO_TEST" dans Python), il n’est pas nécessaire que la structure de jeu de données en entrée (définitions de champ) corresponde au jeu de données cible. Toutefois, les champs des jeux de données en entrée qui ne correspondent pas aux champs du jeu de données cible ne seront pas appariés au jeu de données cible à moins que l’appariement soit explicitement défini dans le paramètre Field Map (Appariement des champs).
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 (définitions de champ) prédéfinie, le paramètre Field Map (Appariement des champs) ne permet pas l’ajout ou la suppression de champs dans le jeu de données cible.
Si les références spatiales d'une classe d'entités en entrée et cible ne correspondent pas, l'outil Ajouter projettera les entités dans 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 par l'outil Ajouter.
Cet outil ne peut pas utiliser plusieurs couches en entrée portant le même nom. Pour contourner ce problème, utilisez le bouton de navigation de la boîte de dialogue de l’outil pour rechercher les chemins complets de chacune des valeurs 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.
Syntaxe
arcpy.management.Append(inputs, target, {schema_type}, {field_mapping}, {subtype}, {expression})
Paramètre | Explication | Type 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 seront transférés, mais les entités seront 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.
| 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 peut uniquement être utilisé 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. Plusieurs règles de combinaison permettent de déterminer de quelle manière sont renseignées les valeurs du champ en sortie.
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 d’enregistrements dans les 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 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 |
Sortie dérivée
Nom | Explication | Type de données |
output | Jeu de données cible mis à jour. | Vue tabulaire, couche raster |
Exemple de code
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.Append_management(["north.shp", "south.shp", "east.shp", "west.shp"],
"wholecity.shp", "TEST")
Le script suivant montre comment utiliser la fonction Append.
# Name: Append.py
# Description: Use the Append tool to combine several shapefiles
# Import system modules
import arcpy
import os
# Set environment settings
arcpy.env.workspace = "C:/data"
# Set local variables
outLocation = "C:/Output"
outName = "MA_towns.shp"
schemaType = "NO_TEST"
fieldMappings = ""
subtype = ""
# Process: Create a new empty feature class to append shapefiles to
emptyFC = arcpy.CreateFeatureclass_management(outLocation, outName, "POLYGON",
"amherst.shp")
# All polygon FCs in the workspace are MA town shapefiles, you want to append
# these to the empty FC. The list will resemble ["amherst.shp", "hadley.shp",
# "pelham.shp", "coldspring.shp"]
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(emptyFC)
# 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.shp","TOWNNAME")
fldMap.addInputField("hadley.shp","NAME")
fldMap.addInputField("pelham.shp","TOWN_NAME")
fldMap.addInputField("coldspring.shp","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.shp","POPULATION")
fldMap.addInputField("hadley.shp","POP")
fldMap.addInputField("pelham.shp","POP_2010")
fldMap.addInputField("coldspring.shp","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 empty feature class
arcpy.Append_management(fcList, os.path.join(outLocation, emptyFC), schemaType,
fieldMappings, subtype)
Environnements
- 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 votre champ Global ID (ID global), vous pouvez utiliser l’outil Add Attribute Index (Ajouter un index attributaire).
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?