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
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.
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ámetro | Explicación | Tipo 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.
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.
| Boolean |
Muestra de código
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")
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)
Entornos
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí