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!
Solved! Go to Solution.
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
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"
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.
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)
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
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.
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.
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:
ArcGIS Desktop Help 9.2 - How the default fuzzy tolerance is calculated
Chris Donohue, GISP
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.
This is an ancient topic but still valid. I have an enhancement request for this tool. The process and maximum movement makes sense but it is bit hazy to figure out after process how big the movement in real life there was. The good addon would be if each movement will be somehow stored in table. So some sort of Distance statistics telling how far each point was moved to new location.
That would help user to control is there some movements that got out of control.