Integrate (Data Management)


Analyzes the coordinate locations of feature vertices among features in one or more feature classes. Those that fall within a specified distance of one another are assumed to represent the same location and are assigned a common coordinate value (in other words, they are colocated). The tool also adds vertices where feature vertices are within the x,y tolerance of an edge and where line segments intersect.

Integrate performs the following processing tasks:

  • Vertices within the x,y tolerance of one another will be assigned the same coordinate location.
  • When a vertex of one feature is within the x,y tolerance of an edge of any other feature, a new vertex will be inserted on the edge.
  • When line segments intersect, a vertex will be inserted at the point of intersection for each feature involved in the intersection.

An alternate tool exists for vector data integration. See the Pairwise Integrate documentation for details.


Integrate illustration



    This tool modifies the input data. See Tools that modify or update the input data for more information and strategies to avoid undesired data changes.

  • If there are input features selected, this tool will execute only on those selected features.

  • This tool performs the same kind of work as a topology in that it moves features within an x,y tolerance and inserts vertices where features intersect. Consider using a topology to perform this type of operation, because a topology allows you to specify rules and conditions about how features relate to each other.

    Use Integrate rather than a topology in the following circumstances:

    • You do not need to specify rules about how features are moved and you want all features to coalesce within a specified tolerance.
    • You want lines to have vertices wherever they intersect.
    • You are working with nongeodatabase features, such as shapefiles, or with features from different geodatabases (features in a topology must all come from the same feature dataset).

  • Many potential problems present in the data may be resolved during integration. Handling of extremely small overshoots or undershoots, automatic sliver removal of duplicate segments, and coordinate thinning along boundary lines may be resolved.

  • It is recommended that you not use the XY Tolerance parameter. When not specified, the tool will check the input feature classes' spatial reference to identify the x,y tolerance to use during integration. The input data spatial reference should be set to its default x,y resolution and x,y tolerance. For more information about spatial references, see The properties of a spatial reference.

    The XY Tolerance parameter is not intended to be used to generalize geometry shapes; it is intended to integrate line work and boundaries within the context of a properly set input feature class spatial reference. Setting the XY Tolerance parameter away from the default for the input spatial reference could cause features to move too much, or too little, resulting in geometry issues. If the correct spatial reference properties are used, running the Integrate tool can minimize the amount of movement in the data during subsequent topological operations (such as overlay and dissolve).

    The value for XY Tolerance is critical. It is recommended that the input feature class spatial reference properties be set to their default and Integrate be allowed to default to the input feature class properties. For more information about cluster processing, see Cluster processing.

  • The Integrate tool only accepts simple feature classes as input (point, multipoint, line, or polygon).

  • To undo changes to the input features, use the Integrate tool in an edit session.

  • When processing datasets that contain individual features with a very large number of vertices (for example, hundreds of thousands to millions of vertices in a single feature), some geometric processing operations may run out of memory. For details, see Geoprocessing with large datasets.

  • The output data element of this tool is a derived multivalue output. To use this tool's output with another tool, use its input directly and set its output as a precondition of the other tool.

    Learn more about setting a precondition

Syntax, {cluster_tolerance})
ParameterExplanationData Type
[[Feature Layer, Long],...]

The feature classes to be integrated. When the distance between features is small in comparison to the tolerance, the vertices or points will be clustered (moved to be coincident). The feature class or layer with the lower rank will snap to the feature from the feature class or layer with the higher rank (with 1 being a higher rank than 2). Features in the feature class with a rank of 1 may move when a large x,y tolerance is used. For more information, see Priority ranks and geoprocessing tools.

Value Table

The distance that determines the range in which feature vertices are made coincident. To minimize undesired movement of vertices, the x,y tolerance should be fairly small. If no value is specified, the xy tolerance from the first dataset in the list of inputs will be used.


Changing this parameter's value may cause failure or unexpected results. It is recommended that this parameter not be modified. It has been removed from view in the tool dialog. By default, the input feature class's spatial reference x,y tolerance property is used.

Linear Unit

Derived Output

NameExplanationData Type

The updated input features.

Feature Layer

Code sample

Integrate example 1 (Python window)

The following Python window script demonstrates how to use the Integrate function in immediate mode.

import arcpy

arcpy.env.workspace = "C:/data"
arcpy.CopyFeatures_management("Habitat_Analysis.gdb/vegtype", "C:/output/output.gdb/vegtype")
Integrate example 2 (stand-alone script)

The following stand-alone script is an example of how to apply the Integrate function in a scripting environment.

# Description: Run Integrate on a feature class
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/Habitat_Analysis.gdb"
# Set local variables
inFeatures = "vegtype"
integrateFeatures = "C:/output/output.gdb/vegtype"
# Execute CopyFeatures (since Integrate modifies the original data,
#  this ensures the original is preserved)
arcpy.CopyFeatures_management(inFeatures, integrateFeatures)
# Execute Integrate

Licensing information

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

Related topics