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.
A l'aide de la commande Appariement des champs, les champs de type BLOB ne peuvent être transmis qu'à un champ en sortie de type BLOB, et à aucun autre type de champ.
-
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.
-
Cet outil n'effectue pas d'ajustement des tronçons - aucun ajustement n'est effectué sur la géométrie des entités.
-
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.
-
Des couches peuvent être utilisées comme 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 Combiner.
-
Cet outil ne peut pas utiliser plusieurs couches en entrée portant le même nom. Bien qu'ArcMap autorise l'affichage de couches portant le même nom, ces couches ne peuvent pas être utilisées. 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 chaque jeu de données en entrée.
-
La classe d'entités annotations n'est pas un type de données en entrée valide.
Les jeux de données raster ne sont pas des entrées valides. 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. Les règles de combinaison permettent de spécifier la manière dont les valeurs de plusieurs champs en entrée sont combinées en une seule valeur en sortie. Vous pouvez utiliser plusieurs règles de combinaison :
| 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.CreateObject("FieldMappings") # Create FieldMap objects to add new fields to merge output fldMap_streetClass = arcpy.CreateObject("FieldMap") fldMap_streetName = arcpy.CreateObject("FieldMap") # 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.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 input fields "CLASS" & "IFC" into new output field 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 "Street_Class" and "Street_Name" output fields to FieldMappings object fieldMappings.AddFieldMap(fldMap_streetName) fieldMappings.AddFieldMap(fldMap_streetClass) # Remove all output fields from the field map, 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)