Combiner (Gestion des données)
Récapitulatif
Combine plusieurs jeux de données en entrée du même type de données dans un nouveau jeu de données en sortie unique. Cet outil peut combiner des tables ou des classes d'entités ponctuelles, linéaires ou surfaciques.
Utilisez l'outil Ajouter pour combiner des jeux de données en entrée avec un jeu de données existant.
Illustration
Utilisation
-
Utilisez cet outil pour combiner des jeux de données de plusieurs sources dans un nouveau jeu de données en sortie unique. Tous les jeux de données en entrée doivent être du même type (à savoir, que plusieurs classes d'entités points peuvent être combinées, ou plusieurs tables peuvent être combinées, mais une classe d'entités linéaires ne peut être combinée à une classe d'entités surfaciques).
-
Tous les champs du jeu de données en sortie et leur contenu peuvent être gérés à l'aide des commandes Appariement des champs.
-
Cet outil ne planarise pas les entités des jeux de données en entrée. Toutes les entités des jeux de données en entrée demeurent intactes dans le jeu de données en sortie, même si les entités se superposent. Pour combiner, ou planariser, les géométries d'entité, utilisez l'outil Agréger.
-
Si les classes d'entités sont combinées, le jeu de données en sortie se trouve dans le système de coordonnées de la première classe d'entités dans la liste des Jeux de données en entrée, sauf si l'environnement de géotraitement Système de coordonnées en sortie est défini.
-
Cet outil ne prend pas en charge les classes d'entités annotations. Utilisez l'outil Ajouter des classes d’entités annotations pour combiner les classes d'entités annotations.
Cet outil ne prend pas en charge les jeux de données raster. Utilisez l'outil Mosaïque vers nouveau raster pour combiner plusieurs raster dans un nouveau raster en sortie.
Syntaxe
Paramètre | Explication | Type de données |
inputs [inputs,...] |
Jeux de données en entrée qui seront combinés dans un nouveau jeu de données en sortie. Les jeux de données en entrée peuvent être des tables ou des classes d'entités ponctuelles, linéaires ou surfaciques. Le type de données de tous les jeux de données en entrée doit correspondre. | Table View |
output |
Jeu de données en sortie qui contiendra tous les jeux de données en entrée combinés. | Feature Class;Table |
field_mappings (Facultatif) |
Champs et contenus de champ choisis à partir des données en entrée. Chacun des champs uniques en entrée est répertorié dans la fenêtre Appariement des champs. Une fois développée, cette fenêtre affiche la liste de toutes les occurrences de champs en entrée. Pour chaque appariement de champ, vous pouvez ajouter, renommer ou supprimer des champs en sortie et définir des propriétés telles que le type de données et la règle de combinaison. Vous pouvez supprimer également les occurrences d'un champ en sortie, et vous pouvez mettre en forme les valeurs de tout champ en sortie. | Field Mappings |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil Combiner.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.Merge_management(["majorrds.shp", "Habitat_Analysis.gdb/futrds"], "C:/output/Output.gdb/allroads")
Utilisez l'outil Combiner pour déplacer des entités de deux classes d'entités rues dans un jeu de données unique.
# Name: Merge.py
# Description: Use Merge tool to move features from two street
# feature classes into a single dataset with field mapping
# import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Street feature classes to be merged
oldStreets = "majorrds.shp"
newStreets = "Habitat_Analysis.gdb/futrds"
# Create FieldMappings object to manage merge output fields
fieldMappings = arcpy.FieldMappings()
# Add all fields from both oldStreets and newStreets
fieldMappings.addTable(oldStreets)
fieldMappings.addTable(newStreets)
# Add input fields "STREET_NAM" & "NM" into new output field
fldMap_streetName = arcpy.FieldMap()
fldMap_streetName.addInputField(oldStreets,"STREET_NAM")
fldMap_streetName.addInputField(newStreets,"NM")
# Set name of new output field "Street_Name"
streetName = fldMap_streetName.outputField
streetName.name = "Street_Name"
fldMap_streetName.outputField = streetName
# Add output field to field mappings object
fieldMappings.addFieldMap(fldMap_streetName)
# Add input fields "CLASS" & "IFC" into new output field
fldMap_streetClass = arcpy.FieldMap()
fldMap_streetClass.addInputField(oldStreets,"CLASS")
fldMap_streetClass.addInputField(newStreets,"IFC")
# Set name of new output field "Street_Class"
streetClass = fldMap_streetClass.outputField
streetClass.name = "Street_Class"
fldMap_streetClass.outputField = streetClass
# Add output field to field mappings object
fieldMappings.addFieldMap(fldMap_streetClass)
# Remove all output fields from the field mappings, except fields "Street_Class", "Street_Name", & "Distance"
for field in fieldMappings.fields:
if field.name not in ["Street_Class","Street_Name","Distance"]:
fieldMappings.removeFieldMap(fieldMappings.findFieldMapIndex(field.name))
# Since both oldStreets and newStreets have field "Distance", no field mapping is required
# Use Merge tool to move features into single dataset
uptodateStreets = "C:/output/Output.gdb/allroads"
arcpy.Merge_management([oldStreets, newStreets], uptodateStreets, fieldMappings)