I'm using ArcGis 10.1, and when I do a buffer at a point, the created buffer do not match the dimensions I asked for. For example, in the creation of buffers, in the option 'linear unit' I choose 50 meters, so it should create a circle with 100 meters of diameter, but when I measure, it has 127 meters. How can I fix this? It is in a portuguese geographic coordinate system, Datum 73/ Hayford-Gauss. It's units are meters.
-
What is the coordinate system of you input feature class? Is it a geographic coordinate system? If it's a projected system, what are its units?– GISGeCommented Jul 10, 2014 at 9:23
-
I suspect that you are storing your point and buffer feature classes in a geodatabase. Can you edit your question to make it clear whether that is the case and, if so, what type of geodatabase, please?– PolyGeo ♦Commented Jul 10, 2014 at 9:32
-
It's a portuguese geographic coordinate system, Datum 73/ Hayford-Gauss. It's in meters.– Inês ForteCommented Jul 10, 2014 at 9:32
1 Answer
I believe that you are probably encountering the same problem that has been discussed in the old Esri Discussion Forums under the aptly named title of "True Curves, True Evil".
I have a reproducible (but long) test case of this phenomena in a Python/ArcPy script that I used to convince a client that what we were seeing was explainable and could be worked around relatively easily using the same workaround given by the discussion above:
export the feature classes that contain true curves to a shapefile, and then reimport them back to a FGDB
I think this issue has also been discussed more obliquely in an Esri Blog:
By default, the Buffer tool uses the coordinate system of the lines or polygons being buffered. If the data are projected to a Geographic Coordinate System, using angular units like degrees, the results of the buffer operation will not be geometrically correct.
My quick explanation for what causes this is that when you buffer a point location in a file geodatabase using a Projected Coordinate System you are creating a true curve with the correct diameter but as soon as you take it back to a Geographic Coordinate System that perfect circle should distort to an egg shape but because it does not have any XY coordinates stored around its circumference that does not happen and you end up with what you are seeing.
The easy workaround is to copy your buffer (true curve) out to a shapefile (which does not support true curves so inserts a large number of XY coordinates around its circumference) and then copy it back into a feature class (which maintains those many XY coordinates around its circumference). From here on the buffer (no longer a true curve) will behave much more predictably.
My apologies that the above explanation appears complex and gappy, and I have to be honest that I struggle to wrap my head around all of its details, but I am confident that your problem is real and the workaround to it is easy.
-
-
@InêsForte Excellent - as soon as I read your question I thought it had to be the same thing that caused me considerable consternation about 3 months ago.– PolyGeo ♦Commented Jul 10, 2014 at 11:08