Summary
Combines feature layers to create a single output layer.
The tool requires that both inputs have the same geometry type (point, line, or polygon) or be tables. If time is enabled on one layer, the other layer must also be time enabled and have the same time type (instant or interval). The result will always contain all fields from the input layer. All fields from the merge layer will be included by default, or you can specify custom merge rules to define the resulting schema. The following are examples:
- You have three layers representing the administrative boundaries of England, Wales, and Scotland and want a single layer of Great Britain. You can use Merge Layers to combine the areas and maintain all fields from each area.
- You have two layers containing parcel information for contiguous townships. You want to merge them into a single layer, keeping only the fields that have the same name and type in the two layers.
Illustration
Usage
Both inputs must have the same geometry type (point, line, or polygon) or be tables.
Both inputs must have the same time type (instant or interval) or not be time enabled.
By default, all fields from both inputs will be copied to the output. Optionally, you can rename, remove, or match the fields from the merge layer to the input layer.
Operation Description Example Rename
The field will be renamed in the output. A text box will appear where you can specify the new name.
You want to merge two layers, each with a field called COUNT. This field represents a count of individuals in one layer and a count of families in the other. The two COUNT fields will be merged by default because they have a matching field name. Use Rename to change the name of the field in the merge layer to MERGE_COUNT to keep the two fields separate in the result layer.
Remove
The field will be removed from the output.
You want to merge two layers but don't want to preserve some fields in the merge layer, such as OBJECTID. Use Remove to prevent those fields from being written to the result layer and keep only fields of interest.
Match
The field names are made equivalent. Values of the field from the layer to merge will be copied to the matched output field.
You want to merge two tabular layers of survey results. The input layer has a field called Name that contains the names of survey participants. An equivalent field in the merge layer is called Participant. Use Match to indicate that these fields are equivalent, and both will be merged into a single field called Name in the result layer.
If the input layer and merge layer contain fields with matching names but mismatched field types, the tool will fail unless the two field types can be successfully merged. If the input field is string and the merge field is numeric, the fields will be merged into a single string field in the output layer. If the input field is a double and the merge field is numeric, the fields will be merged into a single double field in the output layer. In all other cases, Merging Attributes must be used to rename or remove one of the matching fields to run the tool.
You can improve the performance of the Merge Layers tool by doing one or both of the following:
- Set the extent environment so that you only analyze data of interest.
- Use data that is local to where the analysis is being run.
This geoprocessing tool is powered by ArcGIS GeoAnalytics Server. Analysis is completed on your GeoAnalytics Server, and results are stored in your content in ArcGIS Enterprise.
When running GeoAnalytics Server tools, the analysis is completed on the GeoAnalytics Server. For optimal performance, make data available to the GeoAnalytics Server through feature layers hosted on your ArcGIS Enterprise portal or through big data file shares. Data that is not local to your GeoAnalytics Server will be moved to your GeoAnalytics Server before analysis begins. This means that it will take longer to run a tool, and in some cases, moving the data from ArcGIS Pro to your GeoAnalytics Server may fail. The threshold for failure depends on your network speeds, as well as the size and complexity of the data. Therefore, it is recommended that you always share your data or create a big data file share.
Learn more about sharing data to your portal
Learn more about creating a big data file share through Server Manager
Syntax
arcpy.geoanalytics.MergeLayers(input_layer, merge_layer, output_name, {merging_attributes}, {data_store})
Parameter | Explanation | Data Type |
input_layer | The point, line, or polygon features or table to merge with the merge layer. | Record Set |
merge_layer | The point, line, or polygon features or table to merge with the input layer. The merge layer must contain the same feature type and time type as the input layer. | Record Set |
output_name | The name of the output feature service. | String |
merging_attributes [[Merge Field, Action, Input Field],...] (Optional) | A list of values that describe how fields from the merge layer are to be modified and matched with fields in the input layer. All fields from the input layer will be written to the output layer. If no merging attributes are defined, all fields from the merge layer will be written to the output layer. If a field exists in one layer but not the other, the output layer will still contain two fields. The output field will contain null values for the input features that did not have the field. For example, if the input layer contains a field named TYPE but the merge layer does not contain TYPE, the output will contain TYPE, but its values will be null for all the features copied from the merge layer. You can control how fields in the merge layer are written to the output layer using the following merge types:
| Value Table |
data_store (Optional) | Specifies the ArcGIS Data Store where the output will be saved. The default is SPATIOTEMPORAL_DATA_STORE. All results stored in a spatiotemporal big data store will be stored in WGS84. Results stored in a relational data store will maintain their coordinate system.
| String |
Derived Output
Name | Explanation | Data Type |
output | The output layer containing the combined features and attributes from both the input and merge layers. | Record Set |
Code sample
The following Python window script demonstrates how to use the MergeLayers tool.
#-------------------------------------------------------------------------------
# Name: MergeLayers.py
# Description: Merge two layers containing parcel information.
#
# Requirements: ArcGIS GeoAnalytics Server
# Import system modules
import arcpy
# Set local variables
inputFeatures = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/parcels_west/FeatureServer/0"
mergeFeatures = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/east_parcels/FeatureServer/0"
mergingAttributes = [["CODE", "MATCH", "ID"], ["globalid", "REMOVE"]]
outFS = "all_parcels"
dataStore = "SPATIOTEMPORAL_DATA_STORE"
# Execute Merge Layers
arcpy.geoanalytics.MergeLayers(inputFeatures, mergeFeatures, outFS,
mergingAttributes, dataStore)
Environments
- Output Coordinate System
The coordinate system that will be used for analysis. Analysis will be completed in the input coordinate system unless specified by this parameter. For GeoAnalytics Tools, final results will be stored in the spatiotemporal data store in WGS84.
Licensing information
- Basic: Requires ArcGIS GeoAnalytics Server
- Standard: Requires ArcGIS GeoAnalytics Server
- Advanced: Requires ArcGIS GeoAnalytics Server