Combiner (Gestion des données)

Synthèse

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 Append (Ajouter) pour combiner des jeux de données en entrée avec un jeu de données existant.

Illustration

Illustration de l’outil Fusionner

Utilisation

  • Utilisez cet outil pour combiner des jeux de données de plusieurs sources dans un nouveau jeu de données en sortie unique. Le type de géométrie de toutes les classes d’entités en entrée doit néanmoins être identique. Par exemple, plusieurs classes d’entités ponctuelles peuvent être combinées, mais une classe d’entités linéaires ne peut pas être combinée à une classe d’entités surfaciques.

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

  • Utilisez le paramètre Field Map (Appariement des champs) pour gérer les champs et leur contenu dans le jeu de données en sortie.

    • Ajoutez et supprimez des champs de la liste des champs, réorganisez la liste des champs et renommez des champs.
    • Le type de données par défaut d’un champ en sortie est le même que le type de données du premier champ en entrée (du même nom) qu’il rencontre. Vous pouvez modifier le type de données en un autre type de données valide.
    • Utilisez une action pour identifier la manière dont les valeurs d’un ou de plusieurs champs en entrée sont fusionnés en un seul champ en sortie. Les actions disponibles sont First (Premier), Last (Dernier), Concatenate (Concaténer), Sum (Somme), Mean (Moyenne), Median (Médiane), Mode, Minimum, Maximum, Standard Deviation (Écart type) et Count (Total).
    • Lorsque vous utilisez l’action Concatenate (Concaténer), vous pouvez spécifier un délimiteur, comme une virgule ou d’autres caractères. Cliquez au début de la zone de texte Delimiter (Délimiteur) pour ajouter les caractères de délimitation.
    • L’option Standard Deviation (Écart type) n’est pas valide pour une seule valeur en entrée.
    • Utilisez le bouton Slice Text (Texte de tranche) sur les champs de la source du texte pour préciser les caractères d’une valeur en entrée à extraire vers le champ en sortie. Pour accéder au bouton Slice Text (Texte de tranche), survolez un champ de texte dans la liste des champs en entrée, puis spécifiez les positions des caractères de début et de fin.
    • Il est également possible d’apparier des champs à l’aide de scripts Python.

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

  • 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 Input Datasets (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 raster dans un nouveau raster en sortie.

Paramètres

ÉtiquetteExplicationType de données
Jeux de données en entrée

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 géométrie des classes d’entités en entrée doit néanmoins être identique.

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

Table View
Jeu de données en sortie

Jeu de données en sortie qui contiendra tous les jeux de données en entrée combinés.

Feature Class;Table
Appariement des champs
(Facultatif)

Utilisez l’appariement des champs pour réconcilier les différences de structures et faire correspondre des champs attributaires entre plusieurs jeux de données. Par défaut, la sortie inclut tous les champs des jeux de données en entrée.

Utilisez l’appariement des champs pour ajouter, supprimer, renommer et réorganiser les champs, ainsi que pour modifier d’autres propriétés des champs.

L’appariement des champs peut aussi servir à combiner les valeurs de deux champs en entrée ou plus en un seul champ en sortie.

Field Mappings
Ajouter des informations sur la source dans la sortie
(Facultatif)

Indique si les informations source seront ajoutées au jeu de données en sortie dans un nouveau champ de texte MERGE_SRC. Les valeurs dans le champ MERGE_SRC indiquent le chemin du jeu de données en entrée ou le nom de la couche qui est la source de chaque enregistrement dans la sortie.

  • Désactivé : les informations 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.
  • Activé : les informations source sont ajoutées au jeu de données en sortie dans un champ MERGE_SRC.
Boolean

arcpy.management.Merge(inputs, output, {field_mappings}, {add_source})
NomExplicationType 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 géométrie des classes d’entités en entrée doit néanmoins être identique.

Les tables et les classes d’entités peuvent être combinées dans un jeu de données en sortie unique. Le type de sortie est déterminé par la première entrée. Si la première entrée est une classe d’entités, la sortie est une classe d’entités. Si la première entrée est une table, la sortie est une table. Si une table est combinée à une classe d’entités, les lignes de la table en entrée présentent 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)

Utilisez l’appariement des champs pour réconcilier les différences de structures et faire correspondre des champs attributaires entre plusieurs jeux de données. Par défaut, la sortie inclut tous les champs des jeux de données en entrée.

Utilisez l’appariement des champs pour ajouter, supprimer, renommer et réorganiser les champs, ainsi que pour modifier d’autres propriétés des champs.

L’appariement des champs peut aussi servir à combiner les valeurs de deux champs en entrée ou plus en un seul champ en sortie.

Dans Python, utilisez la classe FieldMappings pour définir ce paramètre.

Field Mappings
add_source
(Facultatif)

Indique si les informations source seront ajoutées au jeu de données en sortie dans un nouveau champ de texte MERGE_SRC. Les valeurs dans le champ MERGE_SRC indiquent le chemin du jeu de données en entrée ou le nom de la couche qui est la source de chaque enregistrement dans la sortie.

  • NO_SOURCE_INFOLes informations 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 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 suivant illustre l’utilisation de la fonction Merge.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.management.Merge(["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 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 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.management.Merge([oldStreets, newStreets], uptodateStreets, fieldMappings, 
                       addSourceInfo)