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 classe d’entités annotation ou de 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
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 de type point, ligne ou surfaciques, des tables, des rasters, des classes d'entités annotations ou des classes d'entités cotation 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 Schema Type (Type de structure).
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 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 Utiliser l'appariement des champs pour réconcilier les différences de structures est sélectionnée (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 des tronçons - aucun ajustement n’est effectué sur la géométrie des entités.
Des couches peuvent être utilisées en tant que 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 chacun des 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})
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. Chaque jeu de données en entrée doit correspondre au type de données du jeu de données cible. | Table View; Raster Layer |
target | Jeu de données existant auquel les données des jeux de données en entrée seront ajoutées. | Table View; Raster Layer |
schema_type (Facultatif) | Spécifie si la structure (définitions de champ) des jeux de données en entrée doit correspondre à la structure 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. Comme les données des jeux de données en entrée sont ajoutées dans un jeu de données cible existant qui a une structure (noms et types de champ) prédéfinie, les champs ne peuvent pas être ajoutés ou supprimés depuis le jeu de données cible. 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 déterminent la manière dont le champ en sortie est renseigné avec des valeurs.
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 |
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
Exemple 1 d'utilisation de l'outil Append (fenêtre Python)
Le script de fenêtre Python suivant montre comment utiliser l'outil 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")
Exemple 2 d’utilisation de l’outil Append (Ajouter) (script autonome)
Le script suivant illustre l'utilisation de l'outil 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 into
emptyFC = arcpy.CreateFeatureclass_management(outLocation, outName, "POLYGON",
"amherst.shp")
# All polygon FCs in the workspace are MA town shapefiles, we 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 into 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 into the empty feature class
arcpy.Append_management(fcList, os.path.join(outLocation, emptyFC), schemaType,
fieldMappings, subtype)
Environnements
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui