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

Illustration de l'outil Combiner

Utilisation

Syntaxe

Merge_management (inputs, output, {field_mappings})
ParamètreExplicationType 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 :

  • Premier – Utilisez les valeurs du premier champ en entrée pour remplir les enregistrements du champ en sortie.
  • Dernier – Utilisez les valeurs du dernier champ en entrée pour remplir les enregistrements du champ en sortie.
  • Joindre - Concaténez (joignez) les valeurs de tous les champs en entrée pour remplir les enregistrements du champ en sortie.
  • Somme - Calculez le total des valeurs de tous les champs en entrée.
  • Moyenne - Calculez la moyenne des valeurs de tous les champs en entrée.
  • Médiane - Calculez la valeur médiane (milieu).
  • Mode – Utilisez la valeur avec la plus haute fréquence.
  • Min. – Utilisez la valeur minimale des valeurs de tous les champs en entrée.
  • Max. – Utilisez la valeur maximale des valeurs de tous les champs en entrée.
  • Ecart 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.

Field Mappings

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 l'outil Combiner.

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

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)

Environnements

Rubriques connexes

Informations de licence

ArcView : Oui
ArcEditor : Oui
ArcInfo : Oui

7/10/2012