# Integrate tool's XY tolerance

3717
8
01-12-2016 10:17 AM
New Contributor III

Hi,

I'm wondering how the Integrate tool takes into account the XY tolerance that is specified.

For example, I am running the Integrate tool on a point dataset, as I want to move points that are within a certain distance from each other so that they are coincident.  Then I can run the Collect Events tool to get a final result that sums up the total number of points that are coincident throughout the dataset.

However, I can't figure out how the XY tolerance works.  I entered an XY tolerance of 3km, and expected the result to move any points that are within 3km of each other, but leave points that are further than 3 km away.  Instead, it's moving points that are as much as 8.48km apart so that they are coincident (but as soon as the points are 8.49km apart, then the tool leaves them alone).

I'm using ArcGIS 10.2, and my point dataset is in NAD83 UTM Zone 12.

Any explanation for how this XY tolerance works would be appreciated!

Tags (2)
1 Solution

Accepted Solutions
MVP Frequent Contributor

I've run into this before.  It's not obvious at first, but the movement can be greater than the tolerance in some cases.  I had to dig to find this tidbit:

The maximum distance a coordinate could move to its new location during such operations is the square root of 2 times the x,y tolerance. The clustering algorithm is iterative, so it is possible in some cases for coordinate locations to shift more than this distance.

(I added the underline for emphasis)

Source:  Feature class basics—ArcGIS Help | ArcGIS for Desktop (scroll all the way down to the "X, y Tolerance" section).

Chris Donohue, GISP

8 Replies
MVP Legendary Contributor

kind of a big value...

"The value for XY Tolerance is critical—a tolerance that is too large may collapse and delete polygons or lines, or move vertices that should not be moved. To minimize error, the value you choose for x,y tolerance should be as small as possible"

New Contributor III

The exact value of the XY tolerance isn't the point for my question.  I realize that you have to choose the value wisely depending on exactly what you are trying to do with your data.  I'm working at a very small scale, so 3km actually isn't that large.

My question is more that when I put in 3km as the tolerance, the actual tolerance seems to be greater than 8km.  I could replicate the same thing at a different scale, and specify an XY tolerance of 3m instead - but it will still move points that are more than 8m apart in my dataset, and I'd like to know why that is.  It's not acting as I would expect, so I seem to be missing something with how it works.

MVP Legendary Contributor

Can you show your point pattern.  I am just concerned that there comment implies a limitation is spacing relative to some other value that isn't documented (ie spacing relative to dataset extent for instance)

MVP Frequent Contributor

I've run into this before.  It's not obvious at first, but the movement can be greater than the tolerance in some cases.  I had to dig to find this tidbit:

The maximum distance a coordinate could move to its new location during such operations is the square root of 2 times the x,y tolerance. The clustering algorithm is iterative, so it is possible in some cases for coordinate locations to shift more than this distance.

(I added the underline for emphasis)

Source:  Feature class basics—ArcGIS Help | ArcGIS for Desktop (scroll all the way down to the "X, y Tolerance" section).

Chris Donohue, GISP

New Contributor III

Thanks, Chris!  That explains my results, and is exactly the explanation I was looking for.

In my case, with the 3km tolerance, the coordinate could move 4.24km, so when that's doubled, it means two points that are 8.48km apart could each move 4.24km to a new location between the original points.

MVP Esteemed Contributor

In the days of ArcInfo Workstation, this was known as "fuzzy creep".  This happened a lot when doing thins like "Clean", so whenever possible we tried to do a "Build".  Of course this has nothing to do with this question really...just a bit of trivia.

MVP Frequent Contributor

Yeah, that dang Fuzzy Tolerance.  That brings back memories....

Fuzzy tolerance is the minimum distance separating all arc coordinates (nodes and vertices) in a coverage. The fuzzy tolerance unit of measure is the same as that of the input coverages.

The default is determined in this order:

• Tolerance values are read from the existing coverage tolerance (TOL) file.

• If no tolerance file exists and the width of the coverage's boundary (BND) is between 1 and 100, the tolerance is 0.002.

• Otherwise, the tolerance is 1/10,000 of the width or height of the coverage's boundary (BND), whichever is greater.

Chris Donohue, GISP

by
New Contributor

hi, I have the same problem, but i want to set the tolerance precisely. now the movement is not stable.

do you know how to set?

thanks.