Fusionar (Administración de datos)

Resumen

Combina varios datasets de entrada en un único dataset de salida nuevo. Esta herramienta puede combinar tablas o clases de entidad de punto, de línea o de polígono.

Utilice la herramienta Incorporar para combinar los datasets de entrada con un dataset existente.

Ilustración

Herramienta Fusionar

Uso

  • Utilice esta herramienta para combinar datasets de varias fuentes en un nuevo dataset de salida único. Todas las clases de entidad de entrada deben ser del mismo tipo de geometría. Por ejemplo, se pueden fusionar varias clases de entidad de punto, pero no se puede fusionar una clase de entidad de línea con una clase de entidad poligonal.

    Las tablas y clases de entidad se pueden combinar en un solo dataset de salida. El tipo de salida lo determina la primera entrada. Si la primera entrada es una clase de entidad, la salida será una clase de entidad; si la primera entrada es una tabla, la salida será una tabla. Si se fusiona una tabla a una clase de entidad, las filas de la tabla de entrada tendrán una geometría nula.

  • Los campos del dataset de salida y el contenido de esos campos se pueden controlar utilizando el Mapa de campo.

    • Para cambiar el orden de campos, seleccione un nombre de campo y arrástrelo a la posición que prefiera.
    • El tipo de datos predeterminado de un campo de salida coincide con el tipo de datos del primer campo de entrada (de ese nombre) que encuentre. El tipo de datos se puede cambiar por cualquier otro tipo de datos válido de forma manual en cualquier momento.
    • Están disponibles las siguientes reglas de fusión: primero, último, unir, sumar, valor medio, mediana, modo, mínimo, máximo, desviación estándar y recuento.
    • Cuando utiliza la regla de fusión Unir, puede especificar un delimitador como un espacio, una coma, un punto, un guion, etc. Para utilizar un espacio, asegúrese de que el puntero del ratón esté al comienzo del cuadro de entrada y pulse la barra espaciadora una vez.
    • Puede especificar las posiciones inicial y final de los campos de texto usando la opción de formato.
    • No realice la desviación estándar en una sola entrada, ya que los valores no se pueden dividir por cero, por lo que esta no es una opción válida para las entradas individuales.

    Más información sobre la asignación de campos en scripts

  • Esta herramienta no divide ni modifica las geometrías de los datasets de entrada. Todas las entidades de los datasets de entrada permanecerán intactas en el dataset de salida, aún si las entidades se superponen. Para combinar o planarizar geometrías de entidad, utilice la herramienta Combinación.

  • Si se están fusionando las clases de entidades, el dataset de salida estará en el sistema de coordenadas de la primera clase de entidad en la lista Datasets de entrada, a menos que se establezca el entorno de geoprocesamiento Sistema de coordenadas de salida.

  • Esta herramienta no admite clases de entidad de anotación. Use la herramienta Incorporar clases de entidad de anotación para combinar clases de entidad de anotación.

  • Esta herramienta no admite datasets ráster. Utilice la herramienta De mosaico a nuevo ráster para combinar varios rásteres en un nuevo ráster de salida.

Sintaxis

arcpy.management.Merge(inputs, output, {field_mappings}, {add_source})
ParámetroExplicaciónTipo de datos
inputs
[inputs,...]

Los datasets de entrada que se fusionarán en un nuevo dataset de salida. Los datasets de entrada pueden ser tablas o clases de entidades de punto, de línea o de polígono. Todas las clases de entidad de entrada deben ser del mismo tipo de geometría.

Las tablas y clases de entidad se pueden combinar en un solo dataset de salida. El tipo de salida lo determina la primera entrada. Si la primera entrada es una clase de entidad, la salida será una clase de entidad; si la primera entrada es una tabla, la salida será una tabla. Si se fusiona una tabla a una clase de entidad, las filas de la tabla de entrada tendrán una geometría nula.

Table View
output

Dataset de salida que contendrá todos los datasets de entrada combinados.

Feature Class;Table
field_mappings
(Opcional)

Controla qué campos de atributos estarán en la salida. De forma predeterminada se incluirán todos los campos de las entradas.

Se puede añadir, eliminar y reordenar los campos, además de cambiar su nombre y sus propiedades.

Las reglas de fusión le permiten especificar cómo los valores de dos o más campos de entrada se fusionan o se combinan en un único valor de salida. Hay varias reglas de fusión que puede utilizar para determinan cómo se rellena con valores el campo de salida.

  • Primero: utilizar el primer valor de los campos de entrada.
  • Último: utilizar el último valor de los campos de entrada.
  • Unir: concatenar (unir) los valores de los campos de entrada.
  • Sumar: calcular el total de los valores de los campos de entrada.
  • Valor medio: calcular el valor medio (promedio) de los valores de los campos de entrada.
  • Mediana: calcular el valor de la mediana (mitad) de los valores de los campos de entrada.
  • Modo: utilizar el valor con la mayor frecuencia.
  • Mín.: usar el valor mínimo de todos los valores de los campos de entrada.
  • Máx.: usar el valor máximo de todos los valores de los campos de entrada.
  • Desviación estándar: utilizar el método de clasificación de la desviación estándar en todos los valores de campos de entrada.
  • Conteo: buscar la cantidad de registros incluidos en los cálculos.

En Python puede utilizar la clase FieldMappings para definir este parámetro.

Field Mappings
add_source
(Opcional)

Especifica si se agregará información del origen al dataset de salida en un nuevo campo de texto, MERGE_SRC. Los valores del campo MERGE_SRC indicarán el nombre de la capa o la ruta del dataset de entrada que son el origen de cada registro de la salida.

  • NO_SOURCE_INFO No se agregará información del origen al dataset de salida en un campo MERGE_SRC. Esta es la opción predeterminada.
  • ADD_SOURCE_INFOSe agregará información del origen al dataset de salida en un campo MERGE_SRC.
Boolean

Muestra de código

Ejemplo 1 de Fusionar (ventana de Python)

El siguiente script de la ventana de Python muestra cómo utilizar la función 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")
Ejemplo 2 de Fusionar (script independiente)

Utilice la función Merge para mover entidades de dos clases de entidad de calle a un solo dataset.

# 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)

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados