Pairwise Integrate (Analysis)


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.

Pairwise 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 Integrate tool documentation for details.


Pairwise 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 Pairwise 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 determine 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 on 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 the XY Tolerance parameter is critical. It is recommended that the input feature class spatial reference properties be set to their default values and Pairwise Integrate be allowed to default to the input feature class properties. For more information on cluster processing, see Cluster processing.

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

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

  • 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

  • This tool honors the Parallel Processing Factor environment. If the environment is not set (the default) or is set to 100, full parallel processing will be enabled and the tool will attempt to distribute the work to all the logical cores on the machine. Setting the environment to 0 will disable parallel processing. Specifying a factor between 1 and 99 will cause the tool to identify the percentage of logical cores to use by applying the formula (Parallel Processing Factor / 100 * Logical Cores) rounded up to the nearest integer. If the result of this formula is 0 or 1, parallel processing will not be enabled.


arcpy.analysis.PairwiseIntegrate(in_features, {cluster_tolerance})
ParameterExplanationData Type

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

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

PairwiseIntegrate example 1 (Python window)

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

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

The following stand-alone script is an example of how to apply the PairwiseIntegrate 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