Fusionner (Gestion des données)

Résumé

Combine plusieurs jeux de données en entrée 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

Combiner, outil

Utilisation

  • Utilisez cet outil pour combiner des jeux de données de plusieurs sources dans un nouveau jeu de données en sortie unique. Toutes les classes d’entités en entrée doivent être du même type de géométrie. Par exemple, plusieurs classes d'entités points peuvent être combinées, mais une classe d'entités linéaires ne peut être combinée à une classe d'entités surfaciques.

    Les tables et classes d'entités peuvent être combinées dans un jeu de données en sortie unique. Le type en sortie est déterminé par la première entrée. Si la première entrée est une classe d’entités, la sortie sera une classe d’entités ; si la première entrée est une table, la sortie sera une table. Si une table est fusionnée dans une classe d'entités, les lignes de la table en entrée auront une géométrie nulle.

  • 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.

    En savoir plus sur l'appariement de champs dans les scripts

  • Cet outil ne fractionne ou ne modifie pas les géométries issues 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 Append Annotation Feature Classes (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 Mosaic To New Raster (Mosaïque vers nouveau raster) pour combiner plusieurs rasters dans un nouveau raster en sortie.

Syntaxe

arcpy.management.Merge(inputs, output, {field_mappings}, {add_source})
ParamètreExplicationType de données
inputs
[inputs,...]

Jeux de données en entrée qui seront fusionné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. Les classes d’entités en entrée doivent toutes être du même type de géométrie.

Les tables et classes d'entités peuvent être combinées dans un jeu de données en sortie unique. Le type en sortie est déterminé par la première entrée. Si la première entrée est une classe d’entités, la sortie sera une classe d’entités ; si la première entrée est une table, la sortie sera une table. Si une table est fusionnée dans une classe d'entités, les lignes de la table en entrée auront une géométrie nulle.

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)

Détermine quels champs attributaires se trouveront en sortie. Par défaut, tous les champs des entrées seront inclus.

Il est possible d’ajouter, de supprimer, de renommer, de réorganiser les champs, ainsi que de modifier leurs propriétés.

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.

  • Premier : utilisez la première valeur des champs en entrée.
  • Dernier : utilisez la dernière valeur des champs en entrée.
  • Joindre : concaténez (joignez) les valeurs des champs en entrée.
  • Somme : calculez le total des valeurs des champs en entrée.
  • Moyenne : calculez la moyenne des valeurs des champs en entrée.
  • Médiane : calculez la valeur médiane (milieu) des valeurs des champs en entrée.
  • Mode – Utilisez la valeur avec la plus haute fréquence.
  • Min. : utilisez la valeur minimale de toutes les valeurs des champs en entrée.
  • Max. : utilisez la valeur maximale de toutes les valeurs des champs en entrée.
  • Écart type : utilisez la méthode de classification par écart type sur les valeurs de tous les champs en entrée.
  • Total – Recherchez le nombre d'enregistrements inclus dans le calcul.

Dans Python, vous pouvez utiliser la classe FieldMappings pour définir ce paramètre.

Field Mappings
add_source
(Facultatif)

Spécifie si les informations sur la source seront ajoutées au jeu de données en sortie dans un nouveau champ de texte, MERGE_SRC. Les valeurs situées dans le champ MERGE_SRC indiquent le chemin d’accès au jeu de données en entrée ou le nom de la couche qui constitue la source de chaque enregistrement dans la sortie.

  • NO_SOURCE_INFO Les informations sur la source ne sont pas ajoutées au jeu de données en sortie dans un champ MERGE_SRC. Il s’agit de l’option par défaut.
  • ADD_SOURCE_INFOLes informations sur la source sont ajoutées au jeu de données en sortie dans un champ MERGE_SRC.
Boolean

Exemple de code

Exemple 1 d'utilisation de l'outil Combiner (fenêtre Python)

Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction Merge.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.Merge_management(["majorrds.shp", "Habitat_Analysis.gdb/futrds"], 
                       "C:/output/Output.gdb/allroads", "", "ADD_SOURCE_INFO")
Exemple 2 d'utilisation de l'outil Combiner (script autonome)

Utilisez la fonction Merge pour combiner les entités de deux classes d’entités rues en un jeu de données unique.

# Name: Merge.py
# Description: Use Merge to move features from two street
#              feature classes into a single dataset with field mapping
# import system modules 
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Street feature classes to be merged
oldStreets = "majorrds.shp"
newStreets = "Habitat_Analysis.gdb/futrds"
addSourceInfo = "ADD_SOURCE_INFO"
# 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, 
                       addSourceInfo)

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes