Producing a buffer of specified area

913
2
Jump to solution
07-27-2013 04:01 PM
DaveHunt
New Contributor III
Hello,

I am a new-ish ArcGIS user and this is my first post to the forums.  Almost certainly, I am posting in the wrong place, but here goes.

I want to create a buffer around points in a point shapefile, but rather than specify the buffer distance, I want to specify the area around the points and have the distance determined from that area (A = pi r**2, solve for r and use that as the traditional buffer distance).  So, for example, if I had a point and specified that I want a buffer area of 1 hectare (10,000 sq mtrs), it would give me a buffer around that point of 56.4 meters.

Is there an existing tool in ArcGIS that will accomplish this?

Thanks in advance.
Dave
0 Kudos
1 Solution

Accepted Solutions
RichardFairhurst
MVP Honored Contributor
Hello,

I am a new-ish ArcGIS user and this is my first post to the forums.  Almost certainly, I am posting in the wrong place, but here goes.

I want to create a buffer around points in a point shapefile, but rather than specify the buffer distance, I want to specify the area around the points and have the distance determined from that area (A = pi r**2, solve for r and use that as the traditional buffer distance).  So, for example, if I had a point and specified that I want a buffer area of 1 hectare (10,000 sq mtrs), it would give me a buffer around that point of 56.4 meters.

Is there an existing tool in ArcGIS that will accomplish this?

Thanks in advance.
Dave


I do not believe there is a tool to do this.  However, if every point will have the same area, it is a relatively simple python script or model builder model where the user could input an area and the script would perform the math to solve for r and that calculated r value would be used as the buffer distance for all points.  Writing the math equation in python or VB Script to solve that equations is not a significantly difficult thing to create and store for reuse.

If you want different areas for each point, then you would have to store the buffer radius values in a field in addition to a field storing the area represented.  The Field Calculator would populate the buffer distance by solving for r based on the area field value.  That buffer distance field would then be the input to the buffer tool.  If you did not want to store the buffer distances in a field that represented different areas associated with each point, then the only way to do that would be to have Python read each point, determine the radius based on the area field, perform the math to solve for r and create the buffer one point at a time, which would be slower then the buffer distance field, but less likely to become unsynchronized.  (An alternative way to overcome that would be to store an SQL statement that could be used to find unsynchronized values if you went with the two field approach so that you would not constantly have to recalculate all records, only those that became unsynchronized).

Essentially, even if ESRI gave you a tool to do this for you, they would have to do the math to solve for r from an input area.  Since they don't provide that, there are several tools to perform the math operation in a stored script, calculation, or model that would accomplish what ESRI has not done for you that could seem very similar to a tool ESRI provides out of the box.

View solution in original post

0 Kudos
2 Replies
RichardFairhurst
MVP Honored Contributor
Hello,

I am a new-ish ArcGIS user and this is my first post to the forums.  Almost certainly, I am posting in the wrong place, but here goes.

I want to create a buffer around points in a point shapefile, but rather than specify the buffer distance, I want to specify the area around the points and have the distance determined from that area (A = pi r**2, solve for r and use that as the traditional buffer distance).  So, for example, if I had a point and specified that I want a buffer area of 1 hectare (10,000 sq mtrs), it would give me a buffer around that point of 56.4 meters.

Is there an existing tool in ArcGIS that will accomplish this?

Thanks in advance.
Dave


I do not believe there is a tool to do this.  However, if every point will have the same area, it is a relatively simple python script or model builder model where the user could input an area and the script would perform the math to solve for r and that calculated r value would be used as the buffer distance for all points.  Writing the math equation in python or VB Script to solve that equations is not a significantly difficult thing to create and store for reuse.

If you want different areas for each point, then you would have to store the buffer radius values in a field in addition to a field storing the area represented.  The Field Calculator would populate the buffer distance by solving for r based on the area field value.  That buffer distance field would then be the input to the buffer tool.  If you did not want to store the buffer distances in a field that represented different areas associated with each point, then the only way to do that would be to have Python read each point, determine the radius based on the area field, perform the math to solve for r and create the buffer one point at a time, which would be slower then the buffer distance field, but less likely to become unsynchronized.  (An alternative way to overcome that would be to store an SQL statement that could be used to find unsynchronized values if you went with the two field approach so that you would not constantly have to recalculate all records, only those that became unsynchronized).

Essentially, even if ESRI gave you a tool to do this for you, they would have to do the math to solve for r from an input area.  Since they don't provide that, there are several tools to perform the math operation in a stored script, calculation, or model that would accomplish what ESRI has not done for you that could seem very similar to a tool ESRI provides out of the box.
0 Kudos
DaveHunt
New Contributor III
rfairhur24, thanks for the detailed response.  I suspected as much.  I do want radii to vary based on a field associated with each point (population), so a Python script appears to be the way to go.  Thanks for the overall outline.

Dave
0 Kudos